* [ruby-dev:47420] [ruby-trunk - Bug #8524][Open] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない
@ 2013-06-13 5:57 ngoto (Naohisa Goto)
2013-06-14 12:36 ` [ruby-dev:47432] [ruby-trunk - Bug #8524] " knu (Akinori MUSHA)
2013-06-17 3:59 ` [ruby-dev:47444] " knu (Akinori MUSHA)
0 siblings, 2 replies; 4+ messages in thread
From: ngoto (Naohisa Goto) @ 2013-06-13 5:57 UTC (permalink / raw
To: ruby developers list
Issue #8524 has been reported by ngoto (Naohisa Goto).
----------------------------------------
Bug #8524: r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない
https://bugs.ruby-lang.org/issues/8524
Author: ngoto (Naohisa Goto)
Status: Open
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version:
ruby -v: -
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
r40755以降、Solarisでは、以下のように .ext/include/アーキテクチャ/ruby/config.h が作成されません。
原因は、r40755にて以下の行が./tool/ifchange に追加されたためです。
@@ -30,6 +37,7 @@
rm -f "$temp"
else
echo "$target updated"
+ ${keepsuffix:+ mv -f "$target" "${target}${keepsuffix}" }
mv -f "$temp" "$target"
fi
この tool/ifchangeは #!/bin/sh なのに、基本的な/bin/shでは解釈できない(bash依存?)記述が追加されたため、Solarisのようにピュアな/bin/shを持つOSでは、そこで処理がストップし、しかしconfigureではエラーを検知できないらしく、そのままconfig.hが作成されないままconfigureが正常終了してしまうのが原因のようです。
$ ./configure --prefix=/hoge/hoge/hoge
(中略)
checking for nroff... /usr/bin/nroff
.ext/include/sparc64-solaris2.10/ruby/config.h updated
./tool/ifchange: bad substitution
verconf.h updated
./tool/ifchange: bad substitution
ruby library version = 2.1.0
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating Makefile
config.status: creating ruby-2.1.pc
$ make V=1
CC = cc
LD = /usr/ccs/bin/ld
LDSHARED = cc -G
CFLAGS = -xO1 -xtarget=sparc64viiplus -m64
XCFLAGS = -DRUBY_EXPORT
CPPFLAGS = -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include -I. -I.ext/include/sparc64-solaris2.10 -I./include -I.
DLDFLAGS = -m64 -L/usr/local/64/lib -R/usr/local/64/lib -m64
SOLIBS =
cc: Sun C 5.12 SunOS_sparc 2011/11/16
make: *** No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h', needed by `main.o'. Stop.
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-dev:47432] [ruby-trunk - Bug #8524] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない
2013-06-13 5:57 [ruby-dev:47420] [ruby-trunk - Bug #8524][Open] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない ngoto (Naohisa Goto)
@ 2013-06-14 12:36 ` knu (Akinori MUSHA)
2013-06-14 13:06 ` [ruby-dev:47433] " SATOH Fumiyasu
2013-06-17 3:59 ` [ruby-dev:47444] " knu (Akinori MUSHA)
1 sibling, 1 reply; 4+ messages in thread
From: knu (Akinori MUSHA) @ 2013-06-14 12:36 UTC (permalink / raw
To: ruby developers list
Issue #8524 has been updated by knu (Akinori MUSHA).
${var:+val} がサポートされていないってのはちょっとした驚きでした。少なくともSUSv2/UNIX98では定義されているので。
OpenIndianaだと/bin/shはksh93になっているようで、エラーは出ませんでした。
後学のために教えていただきたいのですが、 ${var+val} だとOKでしょうか。
あと、 ${var:-val} / ${var-val} もよく使うので気になります…。
----------------------------------------
Bug #8524: r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない
https://bugs.ruby-lang.org/issues/8524#change-39930
Author: ngoto (Naohisa Goto)
Status: Closed
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version:
ruby -v: -
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
r40755以降、Solarisでは、以下のように .ext/include/アーキテクチャ/ruby/config.h が作成されません。
原因は、r40755にて以下の行が./tool/ifchange に追加されたためです。
@@ -30,6 +37,7 @@
rm -f "$temp"
else
echo "$target updated"
+ ${keepsuffix:+ mv -f "$target" "${target}${keepsuffix}" }
mv -f "$temp" "$target"
fi
この tool/ifchangeは #!/bin/sh なのに、基本的な/bin/shでは解釈できない(bash依存?)記述が追加されたため、Solarisのようにピュアな/bin/shを持つOSでは、そこで処理がストップし、しかしconfigureではエラーを検知できないらしく、そのままconfig.hが作成されないままconfigureが正常終了してしまうのが原因のようです。
$ ./configure --prefix=/hoge/hoge/hoge
(中略)
checking for nroff... /usr/bin/nroff
.ext/include/sparc64-solaris2.10/ruby/config.h updated
./tool/ifchange: bad substitution
verconf.h updated
./tool/ifchange: bad substitution
ruby library version = 2.1.0
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating Makefile
config.status: creating ruby-2.1.pc
$ make V=1
CC = cc
LD = /usr/ccs/bin/ld
LDSHARED = cc -G
CFLAGS = -xO1 -xtarget=sparc64viiplus -m64
XCFLAGS = -DRUBY_EXPORT
CPPFLAGS = -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include -I. -I.ext/include/sparc64-solaris2.10 -I./include -I.
DLDFLAGS = -m64 -L/usr/local/64/lib -R/usr/local/64/lib -m64
SOLIBS =
cc: Sun C 5.12 SunOS_sparc 2011/11/16
make: *** No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h', needed by `main.o'. Stop.
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-dev:47433] Re: [ruby-trunk - Bug #8524] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない
2013-06-14 12:36 ` [ruby-dev:47432] [ruby-trunk - Bug #8524] " knu (Akinori MUSHA)
@ 2013-06-14 13:06 ` SATOH Fumiyasu
0 siblings, 0 replies; 4+ messages in thread
From: SATOH Fumiyasu @ 2013-06-14 13:06 UTC (permalink / raw
To: ruby developers list
さとうふみやす @ OSSTech です。
At Fri, 14 Jun 2013 21:36:17 +0900,
knu (Akinori MUSHA) wrote:
> ${var:+val} がサポートされていないってのはちょっとした驚きでした。少なくともSUSv2/UNIX98では定義されているので。
Solaris 10 (それより古いのも含む) の /bin/sh は ${var:+val} は
サポートしています。ただし、val 部分に空白文字を含めることができません。
空白等を含めるにはクォートする必要があります。
$ /bin/sh -c 'var=foo; echo ${var:+val val}'
/bin/sh: 置換が正しくありません。
$ /bin/sh -c 'unset var; echo ${var:+val val}'
/bin/sh: 置換が正しくありません。
$ /bin/sh -c 'var=foo; echo ${var:+"val val"}'
val val
$ /bin/sh -c 'var=foo; echo ${var:+"val" "val val"}'
/bin/sh: 置換が正しくありません。
> r40755以降、Solarisでは、以下のように .ext/include/アーキテクチャ/ruby/config.h が作成されません。
>
> 原因は、r40755にて以下の行が./tool/ifchange に追加されたためです。
>
> @@ -30,6 +37,7 @@
> rm -f "$temp"
> else
> echo "$target updated"
> + ${keepsuffix:+ mv -f "$target" "${target}${keepsuffix}" }
> mv -f "$temp" "$target"
> fi
これは、
if [ -n "$keepsuffix" ]; then
mv -f "$target" "${target}${keepsuffix}"
fi
とするか、
${keepsuffix:+mv} ${keepsuffix:+-f} ${keepsuffix:+"$target"} ${keepsuffix:+"${target}${keepsuffix}"}
とする必要があります。
--
-- Name: SATOH Fumiyasu @ OSS Technology Corp. (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- GitHub Home: https://GitHub.com/fumiyas/
-- PGP Fingerprint: BBE1 A1C9 525A 292E 6729 CDEC ADC2 9DCA 5E1C CBCA
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-dev:47444] [ruby-trunk - Bug #8524] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない
2013-06-13 5:57 [ruby-dev:47420] [ruby-trunk - Bug #8524][Open] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない ngoto (Naohisa Goto)
2013-06-14 12:36 ` [ruby-dev:47432] [ruby-trunk - Bug #8524] " knu (Akinori MUSHA)
@ 2013-06-17 3:59 ` knu (Akinori MUSHA)
1 sibling, 0 replies; 4+ messages in thread
From: knu (Akinori MUSHA) @ 2013-06-17 3:59 UTC (permalink / raw
To: ruby developers list
Issue #8524 has been updated by knu (Akinori MUSHA).
なるほど、ありがとうございます。
場合によっては sh -c "${var:+"command arg"}" という手もあるのかな。
----------------------------------------
Bug #8524: r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない
https://bugs.ruby-lang.org/issues/8524#change-39984
Author: ngoto (Naohisa Goto)
Status: Closed
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version:
ruby -v: -
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
r40755以降、Solarisでは、以下のように .ext/include/アーキテクチャ/ruby/config.h が作成されません。
原因は、r40755にて以下の行が./tool/ifchange に追加されたためです。
@@ -30,6 +37,7 @@
rm -f "$temp"
else
echo "$target updated"
+ ${keepsuffix:+ mv -f "$target" "${target}${keepsuffix}" }
mv -f "$temp" "$target"
fi
この tool/ifchangeは #!/bin/sh なのに、基本的な/bin/shでは解釈できない(bash依存?)記述が追加されたため、Solarisのようにピュアな/bin/shを持つOSでは、そこで処理がストップし、しかしconfigureではエラーを検知できないらしく、そのままconfig.hが作成されないままconfigureが正常終了してしまうのが原因のようです。
$ ./configure --prefix=/hoge/hoge/hoge
(中略)
checking for nroff... /usr/bin/nroff
.ext/include/sparc64-solaris2.10/ruby/config.h updated
./tool/ifchange: bad substitution
verconf.h updated
./tool/ifchange: bad substitution
ruby library version = 2.1.0
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating Makefile
config.status: creating ruby-2.1.pc
$ make V=1
CC = cc
LD = /usr/ccs/bin/ld
LDSHARED = cc -G
CFLAGS = -xO1 -xtarget=sparc64viiplus -m64
XCFLAGS = -DRUBY_EXPORT
CPPFLAGS = -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include -I. -I.ext/include/sparc64-solaris2.10 -I./include -I.
DLDFLAGS = -m64 -L/usr/local/64/lib -R/usr/local/64/lib -m64
SOLIBS =
cc: Sun C 5.12 SunOS_sparc 2011/11/16
make: *** No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h', needed by `main.o'. Stop.
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-06-17 4:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-13 5:57 [ruby-dev:47420] [ruby-trunk - Bug #8524][Open] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない ngoto (Naohisa Goto)
2013-06-14 12:36 ` [ruby-dev:47432] [ruby-trunk - Bug #8524] " knu (Akinori MUSHA)
2013-06-14 13:06 ` [ruby-dev:47433] " SATOH Fumiyasu
2013-06-17 3:59 ` [ruby-dev:47444] " knu (Akinori MUSHA)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).