GNU make sometimes runs into per-argument length limit when it constructs commandline string for certain commands. This happens at least when running make dist for webkit-gtk. The description of that issue and fix are available from http://thread.gmane.org/gmane.comp.gnu.make.bugs/4219
Created attachment 216614 [details, diff] make-commandline-limit.patch Fixed patch that applies correctly to our in-tree make. Tested with `make dist` in webkit tree (which used to fail without the patch).
i tweaked the patch to avoid autotool issues and added to 3.81-r1
I have problem with this patch when doing cross compile, previous version make-3.81 is fine emerge-armv7a-softfloat-linux-gnueabi make if armv7a-softfloat-linux-gnueabi-gcc -DLOCALEDIR=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib\" -DINCLUDEDIR=\"/usr/include\" -DHAVE_CONFIG_H -I. -I. -I. -O2 -ftree-vectorize -pipe -fomit-frame-pointer -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -I/usr/armv7a-softfloat-linux-gnueabi/usr/include/ -I/usr/armv7a-softfloat-linux-gnueabi/include/ -MT main.o -MD -MP -MF ".deps/main.Tpo" -c -o main.o main.c; \ then mv -f ".deps/main.Tpo" ".deps/main.Po"; else rm -f ".deps/main.Tpo"; exit 1; fi job.c: In function ‘construct_command_argv_internal’: job.c:2713: error: ‘PAGE_SIZE’ undeclared (first use in this function) job.c:2713: error: (Each undeclared identifier is reported only once job.c:2713: error: for each function it appears in.) make[2]: *** [job.o] Error 1 make[2]: *** Waiting for unfinished jobs.... main.c: In function ‘die’: main.c:3069: warning: ignoring return value of ‘chdir’, declared with attribute warn_unused_result make[2]: Leaving directory `/var/build/portage/sys-devel/make-3.81-r1/work/make-3.81' make[1]: *** [all-recursive] Error 1 (In reply to comment #1)
(In reply to comment #3) > I have problem with this patch when doing cross compile, previous version > make-3.81 is fine > > emerge-armv7a-softfloat-linux-gnueabi make > > if armv7a-softfloat-linux-gnueabi-gcc -DLOCALEDIR=\"/usr/share/locale\" > -DLIBDIR=\"/usr/lib\" -DINCLUDEDIR=\"/usr/include\" -DHAVE_CONFIG_H -I. -I. -I. > -O2 -ftree-vectorize -pipe -fomit-frame-pointer -pipe -march=armv7-a > -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp > -I/usr/armv7a-softfloat-linux-gnueabi/usr/include/ > -I/usr/armv7a-softfloat-linux-gnueabi/include/ -MT main.o -MD -MP -MF > ".deps/main.Tpo" -c -o main.o main.c; \ > then mv -f ".deps/main.Tpo" ".deps/main.Po"; else rm -f > ".deps/main.Tpo"; exit 1; fi > job.c: In function ‘construct_command_argv_internal’: > job.c:2713: error: ‘PAGE_SIZE’ undeclared (first use in this function) > job.c:2713: error: (Each undeclared identifier is reported only once > job.c:2713: error: for each function it appears in.) > make[2]: *** [job.o] Error 1 > make[2]: *** Waiting for unfinished jobs.... > main.c: In function ‘die’: > main.c:3069: warning: ignoring return value of ‘chdir’, declared with > attribute warn_unused_result > make[2]: Leaving directory > `/var/build/portage/sys-devel/make-3.81-r1/work/make-3.81' > make[1]: *** [all-recursive] Error 1 > > > (In reply to comment #1) > PAGE_SIZE itself is defined inside sys/user.h which this patch **should** include on linux. It seems that you need newer version of glibc that includes this definition :S
Ok, I did cross installed glibc in my host (using crossdev), and its version is glibc-2.11-r1, there is one file in /usr/armv7a-softfloat-linux-gnueabi/usr/include/sys/user.h, but I didn't find it define PAGE_SIZE. Looking at file /usr/include/sys/user.h, it do has PAGE_SIZE, strange~ Btw, emerge-armv7a-softfloat-linux-gnueabi -pv glibc show me that glibc has not installed for the target (In reply to comment #4)
I made a ugly hack, add following two lines into "/usr/armv7a-softfloat-linux-gnueabi/usr/include/sys/user.h", then it pass the compilation #define PAGE_SHIFT 12 #define PAGE_SIZE (1UL << PAGE_SHIFT) (In reply to comment #5)
this is not a bug about cross-compiling the issue is already reported/tracked in another bug
(In reply to comment #7) > this is not a bug about cross-compiling > > the issue is already reported/tracked in another bug > Aha, bug #301431