I'm building with 13.11 on an ARM platform. I've done a make prepare in libports for the libc package. The build fails during in the library creation on a "No rule to make target `_setjmp.o' " error --- Snippet of the build log is: . . . Library libc-string Library init_pd_args MERGE libc-string.lib.a Library libc-stdlib MERGE libc-stdlib.lib.a Library libc-locale MERGE libc-locale.lib.a Library libc-stdio MERGE libc-stdio.lib.a Library libc-gen MERGE libc-gen.lib.a Library libc-gdtoa MERGE libc-gdtoa.lib.a Library libc-inet MERGE libc-inet.lib.a Library libc-stdtime MERGE libc-stdtime.lib.a Library libc-regex MERGE libc-regex.lib.a Library libc-compat MERGE libc-compat.lib.a make[3]: *** No rule to make target `_setjmp.o', needed by `libc-setjmp.lib.a'. Stop. make[3]: *** Waiting for unfinished jobs.... Library libc-setjmp make[2]: *** [libc-setjmp.lib] Error 2 make[2]: *** Waiting for unfinished jobs.... Library ldso-startup . . .
What am I missing?
Thanks, Bob Stewart
Hi Bob,
Library libc-regex MERGE libc-regex.lib.a Library libc-compat MERGE libc-compat.lib.a make[3]: *** No rule to make target `_setjmp.o', needed by `libc-setjmp.lib.a'. Stop. make[3]: *** Waiting for unfinished jobs.... Library libc-setjmp make[2]: *** [libc-setjmp.lib] Error 2 make[2]: *** Waiting for unfinished jobs.... Library ldso-startup . . .
What am I missing?
the error leaves me wondering. The rest of the libc seems to be ok, only libc-setjmp does not compile? I can only think of two possible reasons for the problem:
Maybe your build directory has some stale dependency files, which are no longer valid after an update of the Genode source tree? Could you try to remove the build directory for the library via
rm -r <your-build-dir>/var/libcache/libc-setjmp
Try then to build a target that uses the libc (including libc-setjmp):
make test/ldso
Or, alternatively, you can try to clean the whole build directory instead of only removing the single library via
make cleanall
The second possible cause may be an incomplete 'make prepare' of the libc. Could you re-try this step again?
cd <genode-dir>/libports make clean prepare PKG=libc
By specifying both "clean" and "prepare", the old version of the libc will be removed before preparing the libc again.
If all that does not help, you may try starting with a fresh build directory. If the build works with a fresh one, I'd be interested in the difference between the old and the new build directories.
diff -ru <broken-build-dir> <working-build-dir>
This information would help us to find out what went wrong.
Cheers Norman
Thanks for the reply, Norman.
I did the " make clean prepare PKG=libc" first and that fixed the problem.
I don't recall seeing any errors when I originally did the make prepare. Next time I'll pipe the output to a file and check it.
I do think Genode has a lot of potential and is really not difficult to use, provide documentation is read, and understood. I would think it would provide a excellent framework for building secure and responsive OS's in the IoT world, let alone as the basis of a commodity OS.
Bob Stewart
Sent from my android device.
-----Original Message----- From: Norman Feske <norman.feske@...1...> To: genode-main@lists.sourceforge.net Sent: Mon, 03 Mar 2014 4:28 AM Subject: Re: Build errors incorporating libc
Hi Bob,
Library libc-regex MERGE libc-regex.lib.a Library libc-compat MERGE libc-compat.lib.a make[3]: *** No rule to make target `_setjmp.o', needed by `libc-setjmp.lib.a'. Stop. make[3]: *** Waiting for unfinished jobs.... Library libc-setjmp make[2]: *** [libc-setjmp.lib] Error 2 make[2]: *** Waiting for unfinished jobs.... Library ldso-startup . . .
What am I missing?
the error leaves me wondering. The rest of the libc seems to be ok, only libc-setjmp does not compile? I can only think of two possible reasons for the problem:
Maybe your build directory has some stale dependency files, which are no longer valid after an update of the Genode source tree? Could you try to remove the build directory for the library via
rm -r <your-build-dir>/var/libcache/libc-setjmp
Try then to build a target that uses the libc (including libc-setjmp):
make test/ldso
Or, alternatively, you can try to clean the whole build directory instead of only removing the single library via
make cleanall
The second possible cause may be an incomplete 'make prepare' of the libc. Could you re-try this step again?
cd <genode-dir>/libports make clean prepare PKG=libc
By specifying both "clean" and "prepare", the old version of the libc will be removed before preparing the libc again.
If all that does not help, you may try starting with a fresh build directory. If the build works with a fresh one, I'd be interested in the difference between the old and the new build directories.
diff -ru <broken-build-dir> <working-build-dir>
This information would help us to find out what went wrong.
Cheers Norman