Building GHC on Mac stops

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Building GHC on Mac stops

Kazu Yamamoto (山本和彦)
Hi,

I'm using GHC head (32bit) on Mac. Recently, building GHC head
stops:

----
% make maintainer-clean; perl boot; ./configure --prefix=/ghc-head; make -j3
ranlib: file: .libs/libgmp.a(mp_clz_tab.o) has no symbols
ranlib: file: .libs/libgmp.a(obprintf.o) has no symbols
ranlib: file: .libs/libgmp.a(obvprintf.o) has no symbols
ranlib: file: .libs/libgmp.a(obprntffuns.o) has no symbols
ranlib: file: .libs/libgmp.a(repl-vsnprintf.o) has no symbols
libtool: link: rm -fr .libs/libgmp.lax
libtool: link: ( cd ".libs" && rm -f "libgmp.la" && cp -p "../libgmp.la" "libgmp.la" )
cp libraries/integer-gmp/gmp/gmpbuild/gmp.h libraries/integer-gmp/gmp/
cp libraries/integer-gmp/gmp/gmpbuild/.libs/libgmp.a libraries/integer-gmp/gmp/
inplace/bin/mkdirhier libraries/integer-gmp/gmp/objs
cd libraries/integer-gmp/gmp/objs && /usr/bin/ar x ../libgmp.a
ranlib libraries/integer-gmp/gmp/libgmp.a
ranlib: file: libraries/integer-gmp/gmp/libgmp.a(mp_clz_tab.o) has no symbols
ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprintf.o) has no symbols
ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obvprintf.o) has no symbols
ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprntffuns.o) has no symbols
ranlib: file: libraries/integer-gmp/gmp/libgmp.a(repl-vsnprintf.o) has no symbols
make: *** [all] Error 2
%
----

One more "make -j3" finishes the building. I'm sure that this does not
happen before.

Are there any guys who get this problem?

--Kazu



Reply | Threaded
Open this post in threaded view
|

Building GHC on Mac stops

Nicolas Frisby
I never determined how to fix this. Here's the notes I developed:

tl;dr For some reason, it seems gmp.h is not recognized as a dependency of
mkGmpDerivedConstants.o

HTH

-----

If I run

$ perl boot; ./configure; make -j4

I tend to see a build failure. Immediately running make -j4 again succeeds.

In the following snippet from the log,
FILE=libraries/integer-gmp/mkGmpDerivedConstants/mkGmpDerivedConstants.c

{{{
"/usr/bin/gcc"  -m64 -fno-stack-protector
  -Ilibraries/integer-gmp/gmp
-Ilibraries/integer-gmp/mkGmpDerivedConstants/dist
  -c FILE -o
libraries/integer-gmp/mkGmpDerivedConstants/dist/build/mkGmpDerivedConstants.o

FILE:15:17: error: gmp.h: No such file or directory
FILE: In function ?main?:
FILE:68: error: ?MP_INT? undeclared (first use in this function)
FILE:68: error: (Each undeclared identifier is reported only once
FILE:68: error: for each function it appears in.)
FILE:69: error: expected expression before ?)? token
FILE:69: error: expected expression before ?)? token
FILE:70: error: expected expression before ?)? token
FILE:70: error: expected expression before ?)? token
FILE:71: error: expected expression before ?)? token
FILE:71: error: expected expression before ?)? token
make[1]: ***
[libraries/integer-gmp/mkGmpDerivedConstants/dist/build/mkGmpDerivedConstants.o]
Error 1
make[1]: *** Waiting for unfinished jobs....
}}}

Some 1677 lines later, I see the line

> cp libraries/integer-gmp/gmp/gmpbuild/gmp.h libraries/integer-gmp/gmp/

Which is I suppose why make -j4 succeeds the second time around.

I also see

> libraries/integer-gmp/mkGmpDerivedConstants/ghc.mk:20:
libraries/integer-gmp/mkGmpDerivedConstants/dist/build/.depend.c_asm: No
such file or directory

many lines above.

On Mon, Aug 5, 2013 at 9:26 PM, Kazu Yamamoto <kazu at iij.ad.jp> wrote:

> Hi,
>
> I'm using GHC head (32bit) on Mac. Recently, building GHC head
> stops:
>
> ----
> % make maintainer-clean; perl boot; ./configure --prefix=/ghc-head; make
> -j3
> ranlib: file: .libs/libgmp.a(mp_clz_tab.o) has no symbols
> ranlib: file: .libs/libgmp.a(obprintf.o) has no symbols
> ranlib: file: .libs/libgmp.a(obvprintf.o) has no symbols
> ranlib: file: .libs/libgmp.a(obprntffuns.o) has no symbols
> ranlib: file: .libs/libgmp.a(repl-vsnprintf.o) has no symbols
> libtool: link: rm -fr .libs/libgmp.lax
> libtool: link: ( cd ".libs" && rm -f "libgmp.la" && cp -p "../libgmp.la" "
> libgmp.la" )
> cp libraries/integer-gmp/gmp/gmpbuild/gmp.h libraries/integer-gmp/gmp/
> cp libraries/integer-gmp/gmp/gmpbuild/.libs/libgmp.a
> libraries/integer-gmp/gmp/
> inplace/bin/mkdirhier libraries/integer-gmp/gmp/objs
> cd libraries/integer-gmp/gmp/objs && /usr/bin/ar x ../libgmp.a
> ranlib libraries/integer-gmp/gmp/libgmp.a
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(mp_clz_tab.o) has no
> symbols
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprintf.o) has no symbols
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obvprintf.o) has no
> symbols
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprntffuns.o) has no
> symbols
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(repl-vsnprintf.o) has no
> symbols
> make: *** [all] Error 2
> %
> ----
>
> One more "make -j3" finishes the building. I'm sure that this does not
> happen before.
>
> Are there any guys who get this problem?
>
> --Kazu
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130805/a446a2ce/attachment.htm>

Reply | Threaded
Open this post in threaded view
|

Building GHC on Mac stops

Carter Schonwald
In reply to this post by Kazu Yamamoto (山本和彦)
Yup.  This has been a recurrent problem for parallel builds.

There's been some prior work on tracking it down, possibly attributable to
time stamp granularity or some hiccup in the dependencies.

Does anyone know what the relevant ticket on track is?

On Monday, August 5, 2013, Kazu Yamamoto wrote:

> Hi,
>
> I'm using GHC head (32bit) on Mac. Recently, building GHC head
> stops:
>
> ----
> % make maintainer-clean; perl boot; ./configure --prefix=/ghc-head; make
> -j3
> ranlib: file: .libs/libgmp.a(mp_clz_tab.o) has no symbols
> ranlib: file: .libs/libgmp.a(obprintf.o) has no symbols
> ranlib: file: .libs/libgmp.a(obvprintf.o) has no symbols
> ranlib: file: .libs/libgmp.a(obprntffuns.o) has no symbols
> ranlib: file: .libs/libgmp.a(repl-vsnprintf.o) has no symbols
> libtool: link: rm -fr .libs/libgmp.lax
> libtool: link: ( cd ".libs" && rm -f "libgmp.la" && cp -p "../libgmp.la" "
> libgmp.la" )
> cp libraries/integer-gmp/gmp/gmpbuild/gmp.h libraries/integer-gmp/gmp/
> cp libraries/integer-gmp/gmp/gmpbuild/.libs/libgmp.a
> libraries/integer-gmp/gmp/
> inplace/bin/mkdirhier libraries/integer-gmp/gmp/objs
> cd libraries/integer-gmp/gmp/objs && /usr/bin/ar x ../libgmp.a
> ranlib libraries/integer-gmp/gmp/libgmp.a
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(mp_clz_tab.o) has no
> symbols
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprintf.o) has no symbols
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obvprintf.o) has no
> symbols
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprntffuns.o) has no
> symbols
> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(repl-vsnprintf.o) has no
> symbols
> make: *** [all] Error 2
> %
> ----
>
> One more "make -j3" finishes the building. I'm sure that this does not
> happen before.
>
> Are there any guys who get this problem?
>
> --Kazu
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org <javascript:;>
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130805/ce360649/attachment.htm>

Reply | Threaded
Open this post in threaded view
|

Building GHC on Mac stops

Kazu Yamamoto (山本和彦)
In reply to this post by Nicolas Frisby
Hi Nicolas,

My guess is here: libraries/integer-gmp/configure generates "gmp.h".
Building mkGmpDerivedConstants starts in parallel.  Since "configure"
takes time, "mkGmpDerivedConstants" is build before "gmp.h" is
created.

How can we ensure that these two jobs are carried out sequentially?

--Kazu

> I never determined how to fix this. Here's the notes I developed:
>
> tl;dr For some reason, it seems gmp.h is not recognized as a dependency of
> mkGmpDerivedConstants.o
>
> HTH
>
> -----
>
> If I run
>
> $ perl boot; ./configure; make -j4
>
> I tend to see a build failure. Immediately running make -j4 again succeeds.
>
> In the following snippet from the log,
> FILE=libraries/integer-gmp/mkGmpDerivedConstants/mkGmpDerivedConstants.c
>
> {{{
> "/usr/bin/gcc"  -m64 -fno-stack-protector
>   -Ilibraries/integer-gmp/gmp
> -Ilibraries/integer-gmp/mkGmpDerivedConstants/dist
>   -c FILE -o
> libraries/integer-gmp/mkGmpDerivedConstants/dist/build/mkGmpDerivedConstants.o
>
> FILE:15:17: error: gmp.h: No such file or directory
> FILE: In function ?main?:
> FILE:68: error: ?MP_INT? undeclared (first use in this function)
> FILE:68: error: (Each undeclared identifier is reported only once
> FILE:68: error: for each function it appears in.)
> FILE:69: error: expected expression before ?)? token
> FILE:69: error: expected expression before ?)? token
> FILE:70: error: expected expression before ?)? token
> FILE:70: error: expected expression before ?)? token
> FILE:71: error: expected expression before ?)? token
> FILE:71: error: expected expression before ?)? token
> make[1]: ***
> [libraries/integer-gmp/mkGmpDerivedConstants/dist/build/mkGmpDerivedConstants.o]
> Error 1
> make[1]: *** Waiting for unfinished jobs....
> }}}
>
> Some 1677 lines later, I see the line
>
>> cp libraries/integer-gmp/gmp/gmpbuild/gmp.h libraries/integer-gmp/gmp/
>
> Which is I suppose why make -j4 succeeds the second time around.
>
> I also see
>
>> libraries/integer-gmp/mkGmpDerivedConstants/ghc.mk:20:
> libraries/integer-gmp/mkGmpDerivedConstants/dist/build/.depend.c_asm: No
> such file or directory
>
> many lines above.
>
> On Mon, Aug 5, 2013 at 9:26 PM, Kazu Yamamoto <kazu at iij.ad.jp> wrote:
>
>> Hi,
>>
>> I'm using GHC head (32bit) on Mac. Recently, building GHC head
>> stops:
>>
>> ----
>> % make maintainer-clean; perl boot; ./configure --prefix=/ghc-head; make
>> -j3
>> ranlib: file: .libs/libgmp.a(mp_clz_tab.o) has no symbols
>> ranlib: file: .libs/libgmp.a(obprintf.o) has no symbols
>> ranlib: file: .libs/libgmp.a(obvprintf.o) has no symbols
>> ranlib: file: .libs/libgmp.a(obprntffuns.o) has no symbols
>> ranlib: file: .libs/libgmp.a(repl-vsnprintf.o) has no symbols
>> libtool: link: rm -fr .libs/libgmp.lax
>> libtool: link: ( cd ".libs" && rm -f "libgmp.la" && cp -p "../libgmp.la" "
>> libgmp.la" )
>> cp libraries/integer-gmp/gmp/gmpbuild/gmp.h libraries/integer-gmp/gmp/
>> cp libraries/integer-gmp/gmp/gmpbuild/.libs/libgmp.a
>> libraries/integer-gmp/gmp/
>> inplace/bin/mkdirhier libraries/integer-gmp/gmp/objs
>> cd libraries/integer-gmp/gmp/objs && /usr/bin/ar x ../libgmp.a
>> ranlib libraries/integer-gmp/gmp/libgmp.a
>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(mp_clz_tab.o) has no
>> symbols
>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprintf.o) has no symbols
>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obvprintf.o) has no
>> symbols
>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprntffuns.o) has no
>> symbols
>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(repl-vsnprintf.o) has no
>> symbols
>> make: *** [all] Error 2
>> %
>> ----
>>
>> One more "make -j3" finishes the building. I'm sure that this does not
>> happen before.
>>
>> Are there any guys who get this problem?
>>
>> --Kazu
>>
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs at haskell.org
>> http://www.haskell.org/mailman/listinfo/ghc-devs
>>

Reply | Threaded
Open this post in threaded view
|

Building GHC on Mac stops

Edsko de Vries-4
Note that I opened a ticket about this (but with less information than
in this thread):

http://ghc.haskell.org/trac/ghc/ticket/8102

-E

On Tue, Aug 6, 2013 at 12:59 PM, Kazu Yamamoto <kazu at iij.ad.jp> wrote:

> Hi Nicolas,
>
> My guess is here: libraries/integer-gmp/configure generates "gmp.h".
> Building mkGmpDerivedConstants starts in parallel.  Since "configure"
> takes time, "mkGmpDerivedConstants" is build before "gmp.h" is
> created.
>
> How can we ensure that these two jobs are carried out sequentially?
>
> --Kazu
>
>> I never determined how to fix this. Here's the notes I developed:
>>
>> tl;dr For some reason, it seems gmp.h is not recognized as a dependency of
>> mkGmpDerivedConstants.o
>>
>> HTH
>>
>> -----
>>
>> If I run
>>
>> $ perl boot; ./configure; make -j4
>>
>> I tend to see a build failure. Immediately running make -j4 again succeeds.
>>
>> In the following snippet from the log,
>> FILE=libraries/integer-gmp/mkGmpDerivedConstants/mkGmpDerivedConstants.c
>>
>> {{{
>> "/usr/bin/gcc"  -m64 -fno-stack-protector
>>   -Ilibraries/integer-gmp/gmp
>> -Ilibraries/integer-gmp/mkGmpDerivedConstants/dist
>>   -c FILE -o
>> libraries/integer-gmp/mkGmpDerivedConstants/dist/build/mkGmpDerivedConstants.o
>>
>> FILE:15:17: error: gmp.h: No such file or directory
>> FILE: In function ?main?:
>> FILE:68: error: ?MP_INT? undeclared (first use in this function)
>> FILE:68: error: (Each undeclared identifier is reported only once
>> FILE:68: error: for each function it appears in.)
>> FILE:69: error: expected expression before ?)? token
>> FILE:69: error: expected expression before ?)? token
>> FILE:70: error: expected expression before ?)? token
>> FILE:70: error: expected expression before ?)? token
>> FILE:71: error: expected expression before ?)? token
>> FILE:71: error: expected expression before ?)? token
>> make[1]: ***
>> [libraries/integer-gmp/mkGmpDerivedConstants/dist/build/mkGmpDerivedConstants.o]
>> Error 1
>> make[1]: *** Waiting for unfinished jobs....
>> }}}
>>
>> Some 1677 lines later, I see the line
>>
>>> cp libraries/integer-gmp/gmp/gmpbuild/gmp.h libraries/integer-gmp/gmp/
>>
>> Which is I suppose why make -j4 succeeds the second time around.
>>
>> I also see
>>
>>> libraries/integer-gmp/mkGmpDerivedConstants/ghc.mk:20:
>> libraries/integer-gmp/mkGmpDerivedConstants/dist/build/.depend.c_asm: No
>> such file or directory
>>
>> many lines above.
>>
>> On Mon, Aug 5, 2013 at 9:26 PM, Kazu Yamamoto <kazu at iij.ad.jp> wrote:
>>
>>> Hi,
>>>
>>> I'm using GHC head (32bit) on Mac. Recently, building GHC head
>>> stops:
>>>
>>> ----
>>> % make maintainer-clean; perl boot; ./configure --prefix=/ghc-head; make
>>> -j3
>>> ranlib: file: .libs/libgmp.a(mp_clz_tab.o) has no symbols
>>> ranlib: file: .libs/libgmp.a(obprintf.o) has no symbols
>>> ranlib: file: .libs/libgmp.a(obvprintf.o) has no symbols
>>> ranlib: file: .libs/libgmp.a(obprntffuns.o) has no symbols
>>> ranlib: file: .libs/libgmp.a(repl-vsnprintf.o) has no symbols
>>> libtool: link: rm -fr .libs/libgmp.lax
>>> libtool: link: ( cd ".libs" && rm -f "libgmp.la" && cp -p "../libgmp.la" "
>>> libgmp.la" )
>>> cp libraries/integer-gmp/gmp/gmpbuild/gmp.h libraries/integer-gmp/gmp/
>>> cp libraries/integer-gmp/gmp/gmpbuild/.libs/libgmp.a
>>> libraries/integer-gmp/gmp/
>>> inplace/bin/mkdirhier libraries/integer-gmp/gmp/objs
>>> cd libraries/integer-gmp/gmp/objs && /usr/bin/ar x ../libgmp.a
>>> ranlib libraries/integer-gmp/gmp/libgmp.a
>>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(mp_clz_tab.o) has no
>>> symbols
>>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprintf.o) has no symbols
>>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obvprintf.o) has no
>>> symbols
>>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(obprntffuns.o) has no
>>> symbols
>>> ranlib: file: libraries/integer-gmp/gmp/libgmp.a(repl-vsnprintf.o) has no
>>> symbols
>>> make: *** [all] Error 2
>>> %
>>> ----
>>>
>>> One more "make -j3" finishes the building. I'm sure that this does not
>>> happen before.
>>>
>>> Are there any guys who get this problem?
>>>
>>> --Kazu
>>>
>>> _______________________________________________
>>> ghc-devs mailing list
>>> ghc-devs at haskell.org
>>> http://www.haskell.org/mailman/listinfo/ghc-devs
>>>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs