#8783 closed bug (fixed)

make ghc-pwd-bindist script /bin/sh compatible for Solaris

Reported by: maeder Owned by:
Priority: normal Milestone: 7.8.3
Component: libraries (other) Version: 7.8.1-rc2
Keywords: Cc: kgardas
Operating System: Solaris Architecture: Unknown/Multiple
Type of failure: Building GHC failed Test Case:
Blocked By: Blocking:
Related Tickets: Differential Revisions:

Description

http://www.haskell.org/ghc/dist/7.8.1-rc1/ghc-7.8.20140130-i386-unknown-solaris2.tar.bz2 has a ghc-pwd-bindist script containing

#!/bin/sh
export LD_LIBRARY_PATH="libraries/directory/dist-install/build:libraries/unix/dist-install/build:libraries/time/dist-install/build:libraries/old-locale/dist-install/build:libraries/filepath/dist-install/build:libraries/bytestring/dist-install/build:libraries/deepseq/dist-install/build:libraries/array/dist-install/build:libraries/base/dist-install/build:libraries/integer-gmp/dist-install/build:libraries/ghc-prim/dist-install/build:rts/dist/build:$LD_LIBRARY_PATH"
exec "utils/ghc-pwd/dist-install/build/tmp/ghc-pwd" ${1+"$@"}

that fails during configure under Solaris with:

checking for path to top of build tree... utils/ghc-pwd/dist-install/build/tmp/ghc-pwd-bindist: LD_LIBRARY_PATH=libraries/directory/dist-install/build:libraries/unix/dist-install/build:libraries/time/dist-install/build:libraries/old-locale/dist-install/build:libraries/filepath/dist-install/build:libraries/bytestring/dist-install/build:libraries/deepseq/dist-install/build:libraries/array/dist-install/build:libraries/base/dist-install/build:libraries/integer-gmp/dist-install/build:libraries/ghc-prim/dist-install/build:rts/dist/build:: is not an identifier
configure: error: cannot determine current directory

see more under
http://www.haskell.org/pipermail/glasgow-haskell-users/2014-February/024669.html

Attachments (2)

0001-fix-SHELL-makefile-variable-to-be-set-by-the-configu.patch (792 bytes) - added by kgardas 16 months ago.
0001-do-not-confuse-configure-by-a-bash-shell.patch (968 bytes) - added by maeder 15 months ago.
fix for solaris with old /bin/sh

Download all attachments as: .zip

Change History (48)

comment:1 Changed 17 months ago by maeder

It has nothing do to with libraries/Cabal/Cabal/Distribution/Simple/Program/Script.hs (although being wrong, too), but is caused by "$$($1_$2_BINDIST_WRAPPER)" in rules/shell-wrapper.mk. The variable $(SHELL) is not the one set by ./configure.

prependLibraryPath from rules/library-path.mk creates the non-Bourne export statement.

comment:2 follow-up: Changed 17 months ago by maeder

The $(SHELL) setting from configure is not taken, because mk/config.mk.in contains /bin/sh hard-coded.
A fix might be:

-SHELL                  = /bin/sh
+SHELL                  = @SHELL@

comment:3 Changed 17 months ago by maeder

Another fix could be made in rules/library-path.mk

-prependLibraryPath = export LD_LIBRARY_PATH="$1:$$LD_LIBRARY_PATH"
+prependLibraryPath = LD_LIBRARY_PATH="$1:$$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH

What an adventure discovering the build secrets!

comment:4 in reply to: ↑ 2 Changed 16 months ago by maeder

  • difficulty changed from Unknown to Easy (less than 1 hour)
  • Milestone set to 7.8.1
  • Operating System changed from Unknown/Multiple to Solaris
  • Type of failure changed from None/Unknown to Building GHC failed
  • Version changed from 7.8.1-rc1 to 7.8.1-rc2

Replying to maeder:

The $(SHELL) setting from configure is not taken, because mk/config.mk.in contains /bin/sh hard-coded.
A fix might be:

-SHELL                  = /bin/sh
+SHELL                  = @SHELL@

I propose to commit this change in line 655 of mk/config.mk.in as it is still relevant for me and ghc-7.8.1-rc2. Could someone do this?

comment:5 Changed 16 months ago by kgardas

I see that /bin/sh is hardcoded, but how exactly fails your Solaris build? I should have noted here at least too so I'm curious how our envs differ...

comment:6 follow-up: Changed 16 months ago by maeder

I try to cross-compile for x86_64-pc-solaris2.

inplace/bin/hsc2hs: LD_LIBRARY_PATH=/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/process-1.1.0.2:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/directory-1.2.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/unix-2.6.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/time-1.4.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/old-locale-1.0.0.5:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/filepath-1.3.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/containers-0.5.0.0:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/bytestring-0.10.0.2:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/deepseq-1.3.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/array-0.4.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/base-4.6.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/integer-gmp-0.5.0.0:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/ghc-prim-0.3.0.0:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3:: ist kein Kennzeichner
gmake[1]: *** [compiler/stage1/build/Fingerprint.hs] Fehler 1

The message "ist kein Kennzeichner" is the german version of the above "is not an identifier".

comment:7 in reply to: ↑ 6 Changed 16 months ago by kgardas

Replying to maeder:

I try to cross-compile for x86_64-pc-solaris2.

inplace/bin/hsc2hs: LD_LIBRARY_PATH=/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/process-1.1.0.2:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/directory-1.2.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/unix-2.6.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/time-1.4.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/old-locale-1.0.0.5:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/filepath-1.3.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/containers-0.5.0.0:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/bytestring-0.10.0.2:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/deepseq-1.3.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/array-0.4.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/base-4.6.0.1:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/integer-gmp-0.5.0.0:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3/ghc-prim-0.3.0.0:/home/pub-bkb/pc-solaris/ghc/ghc-7.6.3/lib/ghc-7.6.3:: ist kein Kennzeichner
gmake[1]: *** [compiler/stage1/build/Fingerprint.hs] Fehler 1

The message "ist kein Kennzeichner" is the german version of the above "is not an identifier".

This is IMHO caused by using export LD_LIBRARY_PATH=.... somewhere in build machinery and not by hard-coding /bin/sh. Anyway, if you use your patch and then look into processed config.mk what value is saved into SHELL variable?

comment:8 Changed 16 months ago by maeder

It is caused by "export LD_LIBRARY_PATH=..." in inplace/bin/hsc2hs that my Bourne shell /bin/sh does not support. With the patch (after ./configure) my config.mk contains

SHELL                   = /bin/bash

And then "#!/bin/bash" is finally used in inplace/bin/hsc2hs (rather than the failing "#!/bin/sh")

comment:9 Changed 16 months ago by maeder

The man-page of my sh looks like the one at http://www.manpages.info/sunos/jsh.1.html but
says "SunOS 5.10 Last change: 2 May 2008"

comment:10 Changed 16 months ago by kgardas

Hmm, and ls -la /bin/sh tells what? On Solaris 11.1 it's:

$ ls -al /bin/sh
lrwxrwxrwx   1 root     root          9 Feb  5 14:39 /bin/sh -> i86/ksh93

comment:11 Changed 16 months ago by maeder

Solaris 10

-bash-3.2$ ls -la /bin/sh
lrwxrwxrwx   1 root     root          13 Dez 16 09:32 /bin/sh -> ../../sbin/sh
-bash-3.2$ ls -la /sbin/sh
-r-xr-xr-x   1 root     root       82456 Sep 22  2010 /sbin/sh

comment:12 Changed 16 months ago by kgardas

Simple change to SHELL = @SHELL@ in mk/config.mk.in is not working for me with simple ./configure. How exactly do you run configure script?

comment:13 Changed 16 months ago by maeder

./configure --target=x86_64-pc-solaris2 --with-gcc=/local/home/maeder/haskell/ghc64bin/gcc --with-ld=/usr/ccs/bin/ld --with-nm=/local/home/maeder/haskell/ghc-bin/nm

What do you mean by "is not working"? If @SHELL@ ist replaced by "/bin/sh" then this should work for you, because (any call of) ./configure should recognise the proper shell (that is /bin/sh for you and /bin/bash for me).

comment:14 Changed 16 months ago by kgardas

OK, scratch that, issue between my chair and keyboard. Git patch attached!

comment:15 Changed 16 months ago by kgardas

  • Status changed from new to patch

comment:16 Changed 16 months ago by Austin Seipp <austin@…>

In a0bcbb54481297f9ff329766529a8343c4853e3f/ghc:

fix SHELL makefile variable to be set by the configure script (fixes #8783)

The patch provided by Christian Maeder <[email protected]>
Signed-off-by: Karel Gardas <[email protected]>
Signed-off-by: Austin Seipp <[email protected]>

comment:17 Changed 16 months ago by thoughtpolice

  • Status changed from patch to merge

comment:18 Changed 16 months ago by thoughtpolice

  • Resolution set to fixed
  • Status changed from merge to closed

Merged in 7.8.

comment:19 follow-up: Changed 15 months ago by maeder

This patch causes a failure for integer-gmp when building integer-gmp under solaris namely the one that I wrongly attributed to #8764

/bin/sh ../libtool --tag=CC   --mode=compile /opt/csw/bin/gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_`echo fib_table | sed 's/_$//'`    -m32 -O2 -pedantic -fomit-frame-pointer -mtune=i386 -march=i386 -c -o fib_table.lo fib_table.c
../libtool: bad substitution

This is in fact caused by the file libraries/integer-gmp/gmp/ghc.mk that calls ./configure in gmpbuild. However, ./configure is called using $(SHELL) that is /bin/bash for me and then detects that this is a good shell and sets SHELL (in gmpbuild/config.status) to /bin/sh!

The following patch fixes the problem by replacing $(SHELL) with /bin/sh:

--- ghc.mk~     Fri Feb 28 12:34:54 2014
+++ ghc.mk      Thu Apr  3 11:25:13 2014
@@ -146,7 +146,7 @@
            PATH=`pwd`:$$PATH; \
            export PATH; \
            cd gmpbuild && \
-           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) $(SHELL) ./configure \
+           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) /bin/sh ./configure \
                  --enable-shared=no \
                  --host=$(HOSTPLATFORM) --build=$(BUILDPLATFORM)
        $(MAKE) -C libraries/integer-gmp/gmp/gmpbuild MAKEFLAGS=

After this patch my gmpbuild/config.status contains correctly

S["SHELL"]="/bin/bash"

and the failure above is gone.

(I've not tried yet to omit the shell entirely since ./configure should be executable as is.)

comment:20 in reply to: ↑ 19 Changed 15 months ago by kgardas

Replying to maeder:

The following patch fixes the problem by replacing $(SHELL) with /bin/sh:

--- ghc.mk~     Fri Feb 28 12:34:54 2014
+++ ghc.mk      Thu Apr  3 11:25:13 2014
@@ -146,7 +146,7 @@
            PATH=`pwd`:$$PATH; \
            export PATH; \
            cd gmpbuild && \
-           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) $(SHELL) ./configure \
+           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) /bin/sh ./configure \
                  --enable-shared=no \
                  --host=$(HOSTPLATFORM) --build=$(BUILDPLATFORM)
        $(MAKE) -C libraries/integer-gmp/gmp/gmpbuild MAKEFLAGS=

This patch looks highly suspicious to me. Generally speaking if we detect some shell and save it to SHELL, then we'd probably like to use that and not revert to ordinary /bin/sh. Why do you think your analysis is correct and not just a side effect of your change? Have you tried to trace libtool and see where it throws its error message? That may IMHO lead to real bug fix instead of just a guess...

comment:21 Changed 15 months ago by maeder

I've verified that the line

/bin/sh ../libtool ...

fails as above and that the modified line

/bin/bash ../libtool ...

works as expected (and my diff on ghc.mk produces this line).

Furthermore, my change has no impact on other OSes or the situation before the config.mk.in patch, as $(SHELL) used to expand to /bin/sh.

comment:22 Changed 15 months ago by kgardas

Shouldn't we rather fix gmp's configure which obviously misdetect shell instead of this workaround? As I said, your patch although it fixes the issue is incorrect IMHO.
Or even better shouldn't we analyse why gmp's configure misdetects the shell and set wrong SHELL variable? This will be IMHO more correct/clear solution...

comment:23 Changed 15 months ago by maeder

gmp's configure is correct to assume that it is run in the same shell in which (later on) "make" is called. libraries/integer-gmp/gmp/ghc.mk spoils this assumption.

I'm now testing

--- ghc.mk      Fr Apr  4 10:07:49 2014
+++ ghc.mk~     Do Apr  3 17:25:13 2014
@@ -146,7 +146,7 @@
            PATH=`pwd`:$$PATH; \
            export PATH; \
            cd gmpbuild && \
-           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) ./configure \
+           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) /bin/sh ./configure \
                  --enable-shared=no \
                  --host=$(HOSTPLATFORM) --build=$(BUILDPLATFORM)
        $(MAKE) -C libraries/integer-gmp/gmp/gmpbuild MAKEFLAGS=

but I consider my first diff to better for other OSes!

comment:24 Changed 15 months ago by kgardas

If you insist on your first patch, then what about

-           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) $(SHELL) ./configure \
+           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) $$SHELL ./configure \

which should mean that the configure is run not by detected shell and saved into SHELL makefile variable, but rather with the original shell of the user which is saved in SHELL environment variable

comment:25 Changed 15 months ago by maeder

  • Resolution fixed deleted
  • Status changed from closed to new

Meanwhile I can confirm that it works without any shell:

           CC=$(CCX) NM=$(NM) AR=$(AR_STAGE1) ./configure \

I'm not sure if unpacking gmp under windows preserves executable attributes.
(In the same ghc.mk file "chmod +x" is called for "libraries/integer-gmp/gmp/ln", which we could do for configure, too.)

So I suggest to test without a shell under windows. Who can do this?

(Currently, I'm testing your $$SHELL variant.)

comment:26 Changed 15 months ago by maeder

$$SHELL does not work, too!

Last edited 15 months ago by maeder (previous) (diff)

comment:27 Changed 15 months ago by maeder

  • Component changed from Build System to libraries (other)

The safe patch would be to use /bin/sh but the patch below omits the whole
SHELL stuff as ./configure choose /bin/sh itself (in its first line).

Last edited 15 months ago by maeder (previous) (diff)

comment:28 Changed 15 months ago by maeder

Hang on, no $$SHELL does not work (I've looked to early into config.status)!

comment:29 Changed 15 months ago by maeder

This is wrong for me (configure must detect /bin/bash):

./libraries/integer-gmp/gmp/gmpbuild/config.status:SHELL='/bin/sh'

comment:30 Changed 15 months ago by maeder

All other of my config.status files contain:

CONFIG_SHELL='/bin/bash'

Changed 15 months ago by maeder

fix for solaris with old /bin/sh

comment:31 Changed 15 months ago by maeder

  • Status changed from new to patch

comment:32 Changed 15 months ago by kgardas

Hi, I've needed to use 0001-do-not-confuse-configure-by-a-bash-shell.patch​ while building Solaris 10 7.8.1 binary distribution. So it works for me here.

comment:33 Changed 15 months ago by ezyang

I grepped for other instances of SHELL configure being used, and found one:

ezyang@sabre:~/Dev/ghc-clean$ ag "SHELL"
libffi/ghc.mk
92:        "$(SHELL)" ./configure \

Does libffi also need to get updated? (Also, there is commented out to-do code which should also get fixed up).

While I'm not too happy about the lack of explanation why it should be dropped, it's pretty weird that we were doing it that way in the first place, and git gui blame suggests the SHELL command has been around since the very beginning, so if this passes validation on all platforms, I think we should just take it.

comment:34 Changed 15 months ago by maeder

This spot did not matter under (my) Solaris 10. In fact, ./configure is called twice:

...
mv libffi/build/ltmain.sh libffi/build/ltmain.sh.orig
sed 's#cmd //c echo "\$1"#cmd /c "echo $1"#' < libffi/build/ltmain.sh.orig > libffi/build/ltmain.sh
cd libffi && \
     \
    cd build && \
    CC=/opt/csw/bin/gcc \
    LD=/usr/ccs/bin/ld \
    AR=/usr/ccs/bin/ar \
    NM=/usr/ccs/bin/nm \
    RANLIB=/usr/ccs/bin/ranlib \
        CFLAGS=" -U__i686 -fno-stack-protector -w" \
        LDFLAGS="  -w" \
        "/bin/bash" ./configure \
          --prefix=/local/home/maeder/haskell/ghc-7.8.1/libffi/build/inst \
          --libdir=/local/home/maeder/haskell/ghc-7.8.1/libffi/build/inst/lib \
          --enable-static=yes \
          --enable-shared=no \
          --host=i386-unknown-solaris2
configure: WARNING: if you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used
checking build system type... i386-pc-solaris2.10
checking host system type... i386-unknown-solaris2
checking target system type... i386-unknown-solaris2
continue configure in default builddir "./i386-unknown-solaris2"
....exec /bin/sh .././configure "--srcdir=.." "--enable-builddir=i386-unknown-solaris2" "solaris2"
configure: WARNING: if you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used
checking build system type... i386-pc-solaris2.10
checking host system type... i386-unknown-solaris2
checking target system type... i386-unknown-solaris2
...

And finally config.status contains '/bin/bash'. (I'm now trying without "$(SHELL)" in libffi/ghc.mk.)

(After all, for most purposes it does not matter if /bin/sh or /bin/bash is used.)

Last edited 15 months ago by maeder (previous) (diff)

comment:35 follow-up: Changed 15 months ago by maeder

It works without "$(SHELL)", too:

...
mv libffi/build/ltmain.sh libffi/build/ltmain.sh.orig
sed 's#cmd //c echo "\$1"#cmd /c "echo $1"#' < libffi/build/ltmain.sh.orig > libffi/build/ltmain.sh
cd libffi && \
     \
    cd build && \
    CC=/opt/csw/bin/gcc \
    LD=/usr/ccs/bin/ld \
    AR=/usr/ccs/bin/ar \
    NM=/usr/ccs/bin/nm \
    RANLIB=/usr/ccs/bin/ranlib \
        CFLAGS=" -U__i686 -fno-stack-protector -w" \
        LDFLAGS="  -w" \
        ./configure \
          --prefix=/local/home/maeder/haskell/ghc-7.8.1/libffi/build/inst \
          --libdir=/local/home/maeder/haskell/ghc-7.8.1/libffi/build/inst/lib \
          --enable-static=yes \
          --enable-shared=no \
          --host=i386-unknown-solaris2
configure: WARNING: if you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used
checking build system type... i386-pc-solaris2.10
checking host system type... i386-unknown-solaris2
checking target system type... i386-unknown-solaris2
continue configure in default builddir "./i386-unknown-solaris2"
....exec /bin/bash .././configure "--srcdir=.." "--enable-builddir=i386-unknown-solaris2" "solaris2"
configure: WARNING: if you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used
checking build system type... i386-pc-solaris2.10
checking host system type... i386-unknown-solaris2
checking target system type... i386-unknown-solaris2
...

Note, that now "/bin/bash" is used in the second call (that is somehow part of libffi). Yet,
libffi/build/i386-unknown-solaris2/config.status still contains:

SHELL='/bin/bash'

(So maybe gmp's ./configure is actually less robust wrt to shell detection.)

comment:36 in reply to: ↑ 35 Changed 15 months ago by kgardas

Replying to maeder:

Note, that now "/bin/bash" is used in the second call (that is somehow part of libffi). Yet,
libffi/build/i386-unknown-solaris2/config.status still contains:

SHELL='/bin/bash'

(So maybe gmp's ./configure is actually less robust wrt to shell detection.)

That's why I fought hard for actual issue identification. :-) Indeed, the issue may in gmp's configure itself. The question is if you'd like to identify it and submit patch upstream and just work-around it in ghc itself...
As I said I don't like your first attempt with using /bin/sh ./configure -- but I think removing $(SHELL) (in your second attempt) should be ok. Well, still fixing the gmp's configure is probably the most clean of those solutions anyway. :-)

comment:37 Changed 15 months ago by maeder

I've looked into these two ./configure scripts. Calling

/bin/bash ./configure

is different from calling a script containing

#!/bin/bash
./configure

The former just interprets the contents of ./configure (ignoring the initial #!/bin/sh). Whereas the latter, like any direct call of ./configure on any shell, properly executes ./configure (which requests to be interpreted by /bin/sh).

The toggling between /bin/bash and /bin/sh by ./configure seems to be normal behavior. Maybe by chance it does not happen (due to multiple invocations of itself) for the second internal call:

eval /bin/bash .././configure "--srcdir=.." "--enable-builddir=i386-unknown-solaris2"

So, it rather looks like an autoconf problem although "autoreconf" actually generates "eval $SHELL ..." (with a different message "....exec $SHELL").

I have (GNU Autoconf) 2.69.

I could post a report to gmp-bugs at gmplib.org, though, as "/bin/bash ./configure" fails later on in mpn with "../libtool: bad substitution" also for the latest version gmp-6.0.0a.

comment:38 Changed 15 months ago by maeder

I've sent emails to gmp-bugs at gmplib.org and bug-autoconf at gnu.org.

comment:40 Changed 15 months ago by kgardas

Fantastic work! Thanks a lot Christian. Are you going to create a patch following the advice? Thanks!

comment:41 Changed 15 months ago by maeder

I still propose https://ghc.haskell.org/trac/ghc/attachment/ticket/8783/0001-do-not-confuse-configure-by-a-bash-shell.patch to be applied as is. (This would make my building easier for me.)

I don't mind to change libffi/ghc.mk, too, as Edward (ezyang) suggested, but this is not crucial (for my builds).

comment:42 Changed 15 months ago by maeder

  • Milestone changed from 7.8.1 to 7.8.3

comment:43 Changed 14 months ago by Austin Seipp <austin@…>

In 39aa1e95f5ffaf3409ae9d741e4a886fcd38652b/ghc:

integer-gmp: do not confuse ./configure (#8783)

Signed-off-by: Austin Seipp <[email protected]>

comment:44 Changed 14 months ago by Austin Seipp <austin@…>

In 3df1c5109a6bd2a522717e524c10d842d4cd8ab8/ghc:

Extract derived constants from nm output for various OSes differently.

Fixes #8783.

In order to avoid querying the nm version that does not work on Mac OS X
we use the "nm -P" output that is supposed to produce (more portable)
POSIX output and works on all tested OSes (MinGW, Mac OS X, Solaris and
Linux using GNU nm) although slightly different (as documented). The "nm
-P" output is actually only needed to recognize the output of a non-GNU
Solaris nm (all other OSes produce sane outut using "nm" only).

Signed-off-by: Austin Seipp <[email protected]>

comment:45 Changed 14 months ago by thoughtpolice

  • Status changed from patch to merge

comment:46 Changed 13 months ago by thoughtpolice

  • Resolution set to fixed
  • Status changed from merge to closed

Merged, thanks!

Note: See TracTickets for help on using tickets.