I got the following error compiling uclibc-0.9.26-r7 Finally finished compiling... * We are building for uClibc system library make CROSS= CC=gcc -C utils make[1]: Entering directory `/var/tmp/portage/uclibc-0.9.26-r7/work/uClibc-0.9.26/utils' gcc -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -Os -funit-at-a-time -fno-stack-protector-all -fstack-protector -fno-builtin -nostdinc -D_LIBC -I../include -I. -I/usr/lib/gcc/powerpc-pc-linux-uclibc/3.4.1/include -DNDEBUG -fpic -D__LDSO_LDD_SUPPORT -Wl,-s \ -DUCLIBC_RUNTIME_PREFIX=\"/\" -DUSE_CACHE \ -DUCLIBC_LDSO=ld-uClibc.so.0 \ ldd.c -o ldd -L../lib strip -x -R .note -R .comment ldd gcc -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -Os -funit-at-a-time -fno-stack-protector-all -fstack-protector -fno-builtin -nostdinc -D_LIBC -I../include -I. -I/usr/lib/gcc/powerpc-pc-linux-uclibc/3.4.1/include -DNDEBUG -fpic -D__LDSO_LDD_SUPPORT -Wl,-s -static \ -DUCLIBC_RUNTIME_PREFIX=\"/\" -DUSE_CACHE \ -DUCLIBC_LDSO=ld-uClibc.so.0 -I. -I../ldso/include \ ldconfig.c readsoname.c -o ldconfig -L../lib ../lib/libc.a(ssp.o)(.sbss+0x0): multiple definition of `__guard' /usr/lib/gcc/powerpc-pc-linux-uclibc/3.4.1/libgcc.a(_stack_smash_handler.oS)(.bss+0x0): first defined here /usr/lib/gcc/powerpc-pc-linux-uclibc/3.4.1/../../../../powerpc-pc-linux-uclibc/bin/ld: Warning: size of symbol `__guard' changed from 32 in ../lib/libc.a(ssp.o) to 4 in ../lib/libc.a(ssp.o) ../lib/libc.a(ssp.o)(.text+0xa4): In function `__stack_smash_handler': : multiple definition of `__stack_smash_handler' /usr/lib/gcc/powerpc-pc-linux-uclibc/3.4.1/libgcc.a(_stack_smash_handler.oS)(.text+0xe0):/var/tmp/portage/gcc-3.4.1-r3/work/gcc-3.4.1/gcc/libgcc2.c:1732: first defined here /usr/lib/gcc/powerpc-pc-linux-uclibc/3.4.1/../../../../powerpc-pc-linux-uclibc/bin/ld: Warning: size of symbol `__stack_smash_handler' changed from 448 in ../lib/libc.a(ssp.o) to 420 in ../lib/libc.a(ssp.o) collect2: ld returned 1 exit status make[1]: *** [ldconfig] Error 1 make[1]: Leaving directory `/var/tmp/portage/uclibc-0.9.26-r7/work/uClibc-0.9.26/utils' make: *** [utils] Error 2 !!! ERROR: dev-libs/uclibc-0.9.26-r7 failed. !!! Function src_compile, Line 211, Exitcode 2 !!! could not make utils !!! If you need support, post the topmost build error, NOT this status message. apple linux-2.6.7-hardened-r9 # emerge info Portage 2.0.51-r2 (uclibc/ppc, gcc-3.4.1, uclibc-0.9.26-r5, 2.6.9-gentoo-r1 ppc) ================================================================= System uname: 2.6.9-gentoo-r1 ppc 740/750 Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux-headers-2.4.22 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="ppc" AUTOCLEAN="yes" CFLAGS="-Os -pipe -mcpu=750" CHOST="powerpc-pc-linux-uclibc" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-Os -pipe -mcpu=750" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks nodoc noinfo noman sandbox sfperms strict userpriv" GENTOO_MIRRORS="ftp://mirror.internode.on.net/pub/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="ppc X berkdb gtk hardened mysql ncurses opengl perl pie png python readline ssl tcpd tiff uclibc zlib" emerge -puvD world These are the packages that I would merge, in order: Calculating world dependencies ...done! [ebuild U ] dev-libs/uclibc-0.9.26-r7 [0.9.26-r5] -build -debug +hardened* -ipv6 -static 0 kB [ebuild N ] sys-apps/utempter-0.5.5.5 0 kB [ebuild N ] x11-terms/xterm-191 -Xaw3d -debug -truetype -unicode 0 kB
You should not compile the ssp.c with -fstack-protector in uClibc, glibc or dietlibc where it builds the ssp.c It triggers itself. I only know one other man who would do ppc+hardened and I'll CC: him here
if someone explains to me how to take a normal uclibc stage and turn it into a hardened one, i can roll some ppc/mips/arm hardened stages
Peter interested in adding target support for ppc?
i can setup a dedicated ppc box on my LAN along side the current mips one ... same box i used to develop original ppc/uclibc stages
profiles/uclibc/mips/hardened profile exists now. profiles/uclibc/ppc/hardened profile exists now. arch arm will take a little longer to develop. (toolchain problems)
stages happen as they happen, no need for a bug