ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [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).