When building the hardened kernel on a uclibc system (experimental hardened profile and stages) the build results in a symbol collision error. Reproducible: Always Steps to Reproduce: 1. Install uclibc stage3 on x86 2. Install hardened-sources and compile them 3. Build errors out Actual Results: mint linux # make -j2 && make -j2 modules_install make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `relocs'. CHK include/linux/version.h CHK include/generated/utsrelease.h CALL scripts/checksyscalls.sh CHK include/generated/compile.h CHK kernel/config_data.h make[3]: `arch/x86/realmode/rm/realmode.bin' is up to date. CHK include/linux/version.h make[2]: Nothing to be done for `all'. make[2]: Nothing to be done for `relocs'. HOSTCC Documentation/accounting/getdelays Documentation/accounting/getdelays.c:54:7: error: 'stime' redeclared as different kind of symbol /usr/include/time.h:308:12: note: previous declaration of 'stime' was here make[2]: *** [Documentation/accounting/getdelays] Error 1 make[1]: *** [Documentation/accounting] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [vmlinux] Error 2 Expected Results: Successful kernel build. Configuration for the kernel being built (shouldn't make much of an impact) is attached in case it's useful. Let me know what else I can provide to help track this one down.
Created attachment 329580 [details] Kernel Configuration
Forgot to mention versions: * sys-kernel/hardened-sources-3.5.4-r1 * sys-libs/uclibc-0.9.33.2-r2 Let me know if there is anything else I can provide to help track this down.
Okay hit it.
(In reply to comment #0) > When building the hardened kernel on a uclibc system (experimental hardened > profile and stages) the build results in a symbol collision error. > > Reproducible: Always > > Steps to Reproduce: > 1. Install uclibc stage3 on x86 > 2. Install hardened-sources and compile them > 3. Build errors out > Actual Results: > mint linux # make -j2 && make -j2 modules_install > make[1]: Nothing to be done for `all'. > make[1]: Nothing to be done for `relocs'. > CHK include/linux/version.h > CHK include/generated/utsrelease.h > CALL scripts/checksyscalls.sh > CHK include/generated/compile.h > CHK kernel/config_data.h > make[3]: `arch/x86/realmode/rm/realmode.bin' is up to date. > CHK include/linux/version.h > make[2]: Nothing to be done for `all'. > make[2]: Nothing to be done for `relocs'. > HOSTCC Documentation/accounting/getdelays > Documentation/accounting/getdelays.c:54:7: error: 'stime' redeclared as > different kind of symbol > /usr/include/time.h:308:12: note: previous declaration of 'stime' was here > make[2]: *** [Documentation/accounting/getdelays] Error 1 > make[1]: *** [Documentation/accounting] Error 2 > make[1]: *** Waiting for unfinished jobs.... > make: *** [vmlinux] Error 2 > > > Expected Results: > Successful kernel build. > > Configuration for the kernel being built (shouldn't make much of an impact) > is attached in case it's useful. Let me know what else I can provide to > help track this one down. Okay I got this fixed. In a minute I'll be emailing it to lkml and I'll attach it here for further testing.
Created attachment 330474 [details, diff] Upsream patch to remove useless declarations of stime and utime
This is not hardened specific, so I'm dropping hardened@ and sending it kernel@'s way. @Alex. Do you mind testing the patch. Just apply it to the kernel tree, whether dirty or not, and continue building with `make -j2`.
The patch was accepted upstream: http://www.spinics.net/lists/linux-doc/msg07380.html