chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] A fix for parallel build (gmake -j)


From: Vitaly Magerya
Subject: [Chicken-users] A fix for parallel build (gmake -j)
Date: Thu, 06 Oct 2011 15:37:08 +0300
User-agent: Thunderbird

Hi, folks. When I try to run a parallel build of chicken 4.7.0 via:

   gmake -j4 PLATFORM=bsd

... it eventually fails saying this:

> gcc  -shared -Wl,-soname,libchicken.so \
>   -o libchicken.so library.o eval.o data-structures.o ports.o files.o 
> extras.o lolevel.o utils.o tcp.o srfi-1.o srfi-4.o srfi-13.o srfi-14.o 
> srfi-18.o srfi-69.o posixunix.o irregex.o scheduler.o profiler.o stub.o 
> expand.o chicken-syntax.o chicken-ffi-syntax.o runtime.o apply-hack.x86-64.o 
> -lm -lpthread
> gcc  -shared -Wl,-R"." -Wl,-L. chicken.import.o -o chicken.import.so \
>   -lchicken \
>   -lm -lpthread
> gcc  -shared -Wl,-R"." -Wl,-L. lolevel.import.o -o lolevel.import.so \
>   -lchicken \
>   -lm -lpthread
> ./libchicken.so: file not recognized: File format not recognized
> gmake[1]: *** [chicken.import.so] Error 1
> gmake[1]: *** Waiting for unfinished jobs....
> ./libchicken.so: file not recognized: File format not recognized
> gmake[1]: *** [lolevel.import.so] Error 1
> ln -sf libchicken.so libchicken.so.6
> gmake[1]: Leaving directory `/usr/ports/opt/chicken/work/chicken-4.7.0'
> gmake: *** [all] Error 2

The problems seems to arise because some libraries are being built
before libchicken.so when "gmake -j" is used.

Anyway, here's a quick fix for this issue:


--- rules.make.orig     2011-10-06 14:50:00.000000000 +0300
+++ rules.make  2011-10-06 14:50:06.000000000 +0300
@@ -242,7 +242,7 @@
 
 # import libraries and extensions
 
-%.so: %.o
+%.so: %.o $(PRIMARY_LIBCHICKEN)
        $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $^ 
$(LINKER_OUTPUT_OPTION) $@ \
          
$(LINKER_LIBRARY_PREFIX)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(LINKER_LIBRARY_SUFFIX)
 \
          $(LIBRARIES) 


(I'm not sure PRIMARY_LIBCHICKEN is the right thing to use here though).

So, if you folks think this is sensible, then please commit it.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]