Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 60862 - genkernel (many errors with hardened systems)
Summary: genkernel (many errors with hardened systems)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All All
: High blocker (vote)
Assignee: Gentoo Genkernel Maintainers
URL:
Whiteboard:
Keywords: InVCS
: 62422 64063 (view as bug list)
Depends on:
Blocks: 67772
  Show dependency tree
 
Reported: 2004-08-19 00:56 UTC by solar (RETIRED)
Modified: 2004-11-22 01:18 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch (genkernel-bug-60862-1.patch,1.18 KB, patch)
2004-09-17 12:21 UTC, Tim Yamin (RETIRED)
Details | Diff
Patch for hardened 2.6 support (patch,3.46 KB, patch)
2004-09-30 04:05 UTC, Thierry Carrez (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description solar (RETIRED) gentoo-dev 2004-08-19 00:56:37 UTC
genkernel --menuconfig all

failure #1
It expects dietlibc for arch x86 but the dietlibc is built from source via the 
genkernel and is not patched for ssp and thus will fail with undefined 
references for __guard() && __stack_smash_handler(). This error would not show 
up if the genkernel would use the .ebuild version of dietlibc.

Temp solution was to set USE_DIETLIBC=0
--------------------------------------------------------------------------------
Started over...

While building devfsd (also from source vs ebuild) is then encounted 

gcc -O2 -I. -I/usr/src/linux/include -Wall   -DLIBNSL="\"/lib/libnsl.so.0\"" -DNO_DLOPEN -DNO_RPCSVC   -c -o compat_name.o compat_name.c
gcc -fomit-frame-pointer -O2 -c check_kernel.c
check_kernel.c: In function `create_module':
check_kernel.c:11: error: can't find a register in class `BREG' while reloading `asm'
make: *** [check_kernel.o] Error 1
make: *** Waiting for unfinished jobs....
devfsd.c: In function `free_config':
devfsd.c:1745: warning: unused variable `so_entry'
devfsd.c: At top level:
devfsd.c:1034: warning: `load_libnsl' defined but not used
devfsd.c:2085: warning: `get_shared_object' defined but not used
* ERROR: Failed to compile the "LDFLAGS=-static" target...

This would also be fixed if the pkg would use the ebuild version.

--------------------------------------------------------------------------------
Problem #3
find  /usr/share/genkernel/pkg/ -ls
find  /usr/share/genkernel/pkg/ -ls
755102    4 drwxr-xr-x  11 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/
755103   12 -rwxr-xr-x   1 root     root        12101 Aug  1 07:15 /usr/share/genkernel/pkg/busybox-1.00-pre7-crypto-losetup-2.patch
1410493    4 drwxr-xr-x   2 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/sparc
1410494    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/sparc/README
755104    4 drwxr-xr-x   2 root     root         4096 Aug 19 07:09 /usr/share/genkernel/pkg/x86
755105    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/x86/README
794294  152 -rwxr-xr-x   1 root     root       150552 Aug 19 07:08 /usr/share/genkernel/pkg/x86/busybox-1.00-pre7-losetup-crypto-alpha-x86.bz2
1100272   76 -rwxr-xr-x   1 root     root        73196 Aug 19 07:09 /usr/share/genkernel/pkg/x86/insmod-x86-static-2.4.bz2
755106  496 -rwxr-xr-x   1 root     root       500277 Aug  1 07:15 /usr/share/genkernel/pkg/dietlibc-0.24.tar.bz2
755107 1092 -rwxr-xr-x   1 root     root      1113410 Aug  1 07:15 /usr/share/genkernel/pkg/busybox-1.00-pre7-losetup-crypto-alpha.tar.bz2
1410495    4 drwxr-xr-x   2 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/alpha
1410496    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/alpha/README
1410497    4 drwxr-xr-x   2 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/sparc64
1410498    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/sparc64/README
755108   40 -rwxr-xr-x   1 root     root        38487 Aug  1 07:15 /usr/share/genkernel/pkg/devfsd-1.3.25-dietlibc-kernel25.tar.bz2
1410499    4 drwxr-xr-x   2 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/ppc64
1410500    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/ppc64/README
755109  236 -rwxr-xr-x   1 root     root       235135 Aug  1 07:15 /usr/share/genkernel/pkg/modutils-2.4.26.tar.bz2
1460494    4 drwxr-xr-x   2 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/ppc
1460495    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/ppc/README
1410501    4 drwxr-xr-x   2 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/x86_64
1410502    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/x86_64/README
755110    4 -rwxr-xr-x   1 root     root         2404 Aug  1 07:15 /usr/share/genkernel/pkg/busybox-1.00-pre2-decl.patch
1460496    4 drwxr-xr-x   2 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/parisc
1460497    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/parisc/README
1675845    4 drwxr-xr-x   2 root     root         4096 Aug  1 07:15 /usr/share/genkernel/pkg/parisc64
1675846    4 -rwxr-xr-x   1 root     root           34 Aug  1 07:15 /usr/share/genkernel/pkg/parisc64/README
755111  120 -rwxr-xr-x   1 root     root       118107 Aug  1 07:15 /usr/share/genkernel/pkg/module-init-tools-0.9.15-pre4.tar.bz2
755112    8 -rwxr-xr-x   1 root     root         6018 Aug  1 07:15 /usr/share/genkernel/pkg/devfsd-1.3.25-dietlibc.patch

As we can see every single file in here has an executable permission (mode 755).
This makes me wonder if we have a developer who does not understand basic 
unix permissions or just has a complete disregard for them.
--------------------------------------------------------------------------------

See as catalyst depends on genkernel for it's livecd creation this is pretty 
much a total roadblock for hardened ever having a livecd.

My suggestion would be to have genkernel only use the systems ebuilds vs 
trying to be smart(dumb?) and building stuff on it's own.
Comment 1 solar (RETIRED) gentoo-dev 2004-08-31 15:50:32 UTC
*** Bug 62422 has been marked as a duplicate of this bug. ***
Comment 2 solar (RETIRED) gentoo-dev 2004-09-03 11:03:17 UTC
Anybody home?
Comment 3 Tim Yamin (RETIRED) gentoo-dev 2004-09-06 08:05:14 UTC
Dietlibc not building problem: Can be fixed, but the patch the ebuild uses causes devfsd to no longer build against it so it's a no-go. And that's where this stalled...
Comment 4 solar (RETIRED) gentoo-dev 2004-09-06 09:13:38 UTC
which patch?
diet can and should be made optional via a USE flag? 
(it seems to be only used for x86 here)

Note a USE=diet flag already exist but it's only used in two ebuilds according to use.local.desc. 
If used by a 3rd that's justification for it to be moved to the global scope.
Comment 5 Tim Yamin (RETIRED) gentoo-dev 2004-09-06 11:09:49 UTC
devfsd-1.3.25-pic.patch seems to cause the issue - and dietlibc does not provide the needed syscall() functions so devfsd will fail to compile against dietlibc. I guess I can simply remove dietlibc from being used for devfsd, that should solve the issue.
Comment 6 solar (RETIRED) gentoo-dev 2004-09-06 12:48:56 UTC
We could also use a diet flag for devfsd if you want. 
Under the conditions of dietlibc being that it's all static anyways 
we probably don't need to really care about PIC.

So we could in the devfsd ebuild do
inherit flag-o-matic
...
src_unpack () {
  ...
  use diet || epatch foo-pic.patch
  (use diet && use hardened) && append-flags -fno-pie
  ...
}
Comment 7 Tim Yamin (RETIRED) gentoo-dev 2004-09-08 13:47:51 UTC
Please try http://dev.gentoo.org/~plasmaroo/patches/kernel/genkernel/3.0.2/genkernel-3.0.2g.tar.bz2 - you should be able to simply copy over the ebuild in your Portage tree, renaming it and merging it. Don't forget to etc-update, and please tell me if you have any problems, or if this version works successfully. Thanks!
Comment 8 solar (RETIRED) gentoo-dev 2004-09-08 23:45:14 UTC
I'm slightly out of space right now. It's going to be a few days probalby before I can test. I will for sure try to get some users/developers to test this however.

I know Koon is game (he ran into this an hr or so before you updated this bug)
Comment 9 Thierry Carrez (RETIRED) gentoo-dev 2004-09-09 07:02:56 UTC
Will try to test it, just have to figure out how to force your ebuild into my catalyst setup without starting over from stage 1.
Comment 10 rob holland (RETIRED) gentoo-dev 2004-09-09 08:15:29 UTC
I can test this too. Will do it this evening.
Comment 11 rob holland (RETIRED) gentoo-dev 2004-09-09 09:06:12 UTC
$ genkernel initrd produces this error:  modprobe.o(.text+0x1d24): In function `do_command': /var/tmp/genkernel/module-init-tools-0.9.15-pre4/modprobe.c:662: warning: warning: system() is a security risk.  Use fork and execvp instead! /var/tmp/genkernel/diet/lib-i386/libc.a(vsnprintf.o)(.text+0x5b): In function `vsnprintf': : warning: warning: the printf functions add several kilobytes of bloat. /var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x30a): In function `vsyslog': : undefined reference to `send' /var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x644): In function `setlogmask': : undefined reference to `connect' /var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x708): In function `setlogmask': : undefined reference to `socket' collect2: ld returned 1 exit status make: *** [modprobe] Error 1 make: *** Waiting for unfinished jobs....
Comment 12 Thierry Carrez (RETIRED) gentoo-dev 2004-09-09 09:17:00 UTC
Failed, but don't know if it's the same :

---------------
In file included from rmmod.c:43:
../include/util.h:42: warning: built-in function `log' declared as non-function
In file included from rmmod.c:44:
../include/obj.h:274: warning: `u_int64_t' is deprecated (declared at /var/tmp/genkernel/diet/include/sys/types.h:154)
../obj/libobj.a(obj_i386.o)(.text+0x23e): In function `obj32_arch_apply_relocation':
/var/tmp/genkernel/modutils-2.4.26/obj/obj_i386.c:141: warning: warning: your code still has assertions enabled!
../util/libutil.a(config.o)(.text+0x69): In function `verbose':
/var/tmp/genkernel/modutils-2.4.26/util/config.c:137: warning: warning: your code uses stdio (7+k bloat).
/var/tmp/genkernel/diet/lib-i386/libc.a(vsnprintf.o)(.text+0x5b): In function `vsnprintf':
: warning: warning: the printf functions add several kilobytes of bloat.
--
/var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x644): In function `setlogmask':
: undefined reference to `connect'
/var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x708): In function `setlogmask':
: undefined reference to `socket'
collect2: ld returned 1 exit status
make[1]: *** [rmmod] Error 1
make[1]: *** Waiting for unfinished jobs....
../util/libutil.a(config.o)(.text+0x69): In function `verbose':
/var/tmp/genkernel/modutils-2.4.26/util/config.c:137: warning: warning: your code uses stdio (7+k bloat).
/tmp/ccNCAFF4.o(.text+0x151f): In function `call_rmmod':
/var/tmp/genkernel/modutils-2.4.26/insmod/modprobe.c:962: warning: warning: system() is a security risk.  Use fork and execvp instead!
/var/tmp/genkernel/diet/lib-i386/libc.a(vsnprintf.o)(.text+0x5b): In function `vsnprintf':
: warning: warning: the printf functions add several kilobytes of bloat.
--
/var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x644): In function `setlogmask':
: undefined reference to `connect'
/var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x708): In function `setlogmask':
: undefined reference to `socket'
collect2: ld returned 1 exit status
make[1]: *** [modprobe] Error 1
make[1]: Leaving directory `/var/tmp/genkernel/modutils-2.4.26/insmod'
make: *** [all] Error 2
* Gentoo Linux Genkernel; Version 3.0.2g

* ERROR: Failed to compile the "all" target...
-------------------------------------------------
Comment 13 solar (RETIRED) gentoo-dev 2004-09-14 15:55:58 UTC
*** Bug 64063 has been marked as a duplicate of this bug. ***
Comment 14 Tim Yamin (RETIRED) gentoo-dev 2004-09-17 12:21:50 UTC
Created attachment 39784 [details, diff]
Patch

Ok, can you please try this patch on /usr/share/genkernel/gen_compile.sh and
see if that goes further now? There's still an issue [AFAIK] with udev not
compiling on hardened so that would need patching.
Comment 15 rob holland (RETIRED) gentoo-dev 2004-09-18 06:51:11 UTC
I'll test this today.
Comment 16 rob holland (RETIRED) gentoo-dev 2004-09-18 07:00:30 UTC
* dietlibc: >> Compiling...
*           >> Installing...
*           >> Copying to bincache...
* busybox: >> Configuring...
* busybox: >> Compiling...
* busybox: >> Copying to cache...
* module-init-tools: >> Configuring
*                    >> Compiling...
*                    >> Copying to cache...
* devfsd: >> Compiling...
*         >> Copying to cache...
* initrd: >> Initializing...
*         >> Copying modules...
*         >> Copying auxilary files...
*         :: Size is at 1862K
*         >> Creating loopback filesystem...
*         >> Moving initrd files to the loopback...
*         >> Cleaning up and compressing the initrd...
* 
* initrd compiled successfully!
Comment 17 solar (RETIRED) gentoo-dev 2004-09-18 11:44:39 UTC
Cool.
---------------------------------------
* module-init-tools: >> Configuring
*                    >> Compiling...
*                    >> Copying to cache...
* devfsd: >> Compiling...
*         >> Copying to cache...
---------------------------------------
Incase anybody was not aware busybox provides both of these.
Works with 2.4.x and 2.6.x modules.
No busybox-udev at this time however.

Our default busybox install provides pretty much all of these functions.

Currently defined functions:
	[, addgroup, adduser, adjtimex, ar, arping, ash, awk, basename, bunzip2, busybox, bzcat, cal, cat, chgrp, chmod, chown, chroot, chvt, clear,
	cmp, cp, cpio, crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser, devfsd, df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du,
	dumpkmap, dumpleases, echo, egrep, env, expr, false, fbset, fdflush, fdformat, fdisk, fgrep, find, fold, free, freeramdisk, fsck.minix, ftpget,
	ftpput, getopt, getty, grep, gunzip, gzip, halt, hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifup,
	inetd, init, insmod, install, ip, ipaddr, ipcalc, iplink, iproute, iptunnel, kill, killall, klogd, lash, last, length, linuxrc, ln, loadfont,
	loadkmap, logger, login, logname, logread, losetup, ls, lsmod, makedevs, md5sum, mesg, mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, modprobe,
	more, mount, msh, mt, mv, nameif, nc, netstat, nslookup, od, openvt, passwd, patch, pidof, ping, ping6, pipe_progress, pivot_root, poweroff,
	printf, ps, pwd, rdate, readlink, realpath, reboot, renice, reset, rm, rmdir, rmmod, route, rpm, rpm2cpio, run-parts, rx, sed, seq, setkeycodes,
	sha1sum, sleep, sort, start-stop-daemon, strings, stty, su, sulogin, swapoff, swapon, sync, sysctl, syslogd, tail, tar, tee, telnet, telnetd,
	test, tftp, time, top, touch, tr, traceroute, true, tty, udhcpc, udhcpd, umount, uname, uncompress, uniq, unix2dos, unzip, uptime, usleep,
	uudecode, uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat
Comment 18 Tim Yamin (RETIRED) gentoo-dev 2004-09-19 05:28:10 UTC
Patch in genkernel-3.0.2g; please reopen this bug if you have any problems. Thanks!
Comment 19 Thierry Carrez (RETIRED) gentoo-dev 2004-09-30 02:53:51 UTC
Looks like genkernel 3.0.2g is fixed for 2.4 kernels (modutils) but isn't for 2.6 kernels (modules-init-tools) :

Results using grsec-sources-2.4.27 :
-----------------------------------------
* busybox: >> Copying to cache...
* modutils: >> Configuring...
  [...]
* modutils: >> Compiling...
COMMAND: make -j2 CC="gcc" LD="ld" AS="as" all
  [...]
* modutils: >> Copying to cache...
  [...]
-----------------------------------------

with hardened-dev-sources-2.6.7-r8 :
-----------------------------------------
* busybox: >> Copying to cache...
* module-init-tools: >> Configuring
[...]
*                    >> Compiling...
COMMAND: make -j2 CC="/var/tmp/genkernel/diet/bin/diet gcc" LD="ld" AS="as" all
[...]
/var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x30a): In function `vsyslog':
: undefined reference to `send'
/var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x644): In function `setlogmask':
: undefined reference to `connect'
/var/tmp/genkernel/diet/lib-i386/libc.a(logging.o)(.text+0x708): In function `setlogmask':
: undefined reference to `socket'
collect2: ld returned 1 exit status
make: *** [modprobe] Error 1
make: *** Waiting for unfinished jobs....
* Gentoo Linux Genkernel; Version 3.0.2g
-----------------------------------------

Looks like the same error that was reported and fixed on 2.4.
Comment 20 Thierry Carrez (RETIRED) gentoo-dev 2004-09-30 04:05:14 UTC
Created attachment 40764 [details, diff]
Patch for hardened 2.6 support

OK, this should fix it.

This is a patch over 3.0.2g which disables dietlibc in
compile_module_init_tools and allows to disable udev on 2.6 kernels (with a
--no-udev genkernel flag).

I removed the --udev flag which has no point since on 3.0.2g it was disabled on
2.4 builds and forced "on" on 2.6 builds.
Comment 21 Tim Yamin (RETIRED) gentoo-dev 2004-09-30 08:14:45 UTC
Patch #2 in CVS. Thanks!
Comment 22 solar (RETIRED) gentoo-dev 2004-10-16 22:35:27 UTC
Patches are in CVS it's been tested and seems to be working for he most part. udev  supprt might need a little work for 2.6.x but a 2.6.x user will have to open a bug about that.
Comment 23 Thierry Carrez (RETIRED) gentoo-dev 2004-10-18 06:13:10 UTC
Patch #2 doesn't appear to be in CVS... or I don't look at the right place ?
Comment 24 Alexander Skwar 2004-11-15 01:55:26 UTC
Problem still exists with dietlibc-0.27:

gcc -isystem include -pipe -nostdinc -O2 -pipe -fomit-frame-pointer -Wall -W -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wno-unused -Wredundant-decls -nostdlib -o bin-i386/diet bin-i386/start.o bin-i386/dyn_start.o diet.c bin-i386/dietlibc.a bin-i386/dyn_stop.o -DDIETHOME=\"/var/tmp/portage/dietlibc-0.27/work/dietlibc-0.27\" -DVERSION=\"dietlibc-0.27\" -lgcc
bin-i386/dietlibc.a(errno_location.o)(.text+0x11): In function `__errno_location':
: undefined reference to `__guard'
bin-i386/dietlibc.a(errno_location.o)(.text+0x3b): In function `__errno_location':
: undefined reference to `__stack_smash_handler'
bin-i386/dietlibc.a(execvp.o)(.text+0x17): In function `execvp':
: undefined reference to `__guard'
bin-i386/dietlibc.a(execvp.o)(.text+0x1b7): In function `execvp':
: undefined reference to `__guard'
bin-i386/dietlibc.a(execvp.o)(.text+0x1db): In function `execvp':
: undefined reference to `__stack_smash_handler'
bin-i386/dietlibc.a(memmove.o)(.text+0x18): In function `memmove':
: undefined reference to `__guard'
bin-i386/dietlibc.a(memmove.o)(.text+0x6a): In function `memmove':
: undefined reference to `__stack_smash_handler'
bin-i386/dietlibc.a(strstr.o)(.text+0x18): In function `strstr':
: undefined reference to `__guard'
bin-i386/dietlibc.a(strstr.o)(.text+0xb9): In function `strstr':
: undefined reference to `__stack_smash_handler'
bin-i386/dietlibc.a(exec_lib.o)(.text+0x1b): In function `__exec_shell':
: undefined reference to `__guard'
bin-i386/dietlibc.a(exec_lib.o)(.text+0x87): In function `__exec_shell':
: undefined reference to `__guard'
bin-i386/dietlibc.a(exec_lib.o)(.text+0xa6): In function `__exec_shell':
: undefined reference to `__stack_smash_handler'
collect2: ld gab 1 als Ende-Status zur
Comment 25 Alexander Skwar 2004-11-15 01:55:26 UTC
Problem still exists with dietlibc-0.27:

gcc -isystem include -pipe -nostdinc -O2 -pipe -fomit-frame-pointer -Wall -W -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wno-unused -Wredundant-decls -nostdlib -o bin-i386/diet bin-i386/start.o bin-i386/dyn_start.o diet.c bin-i386/dietlibc.a bin-i386/dyn_stop.o -DDIETHOME=\"/var/tmp/portage/dietlibc-0.27/work/dietlibc-0.27\" -DVERSION=\"dietlibc-0.27\" -lgcc
bin-i386/dietlibc.a(errno_location.o)(.text+0x11): In function `__errno_location':
: undefined reference to `__guard'
bin-i386/dietlibc.a(errno_location.o)(.text+0x3b): In function `__errno_location':
: undefined reference to `__stack_smash_handler'
bin-i386/dietlibc.a(execvp.o)(.text+0x17): In function `execvp':
: undefined reference to `__guard'
bin-i386/dietlibc.a(execvp.o)(.text+0x1b7): In function `execvp':
: undefined reference to `__guard'
bin-i386/dietlibc.a(execvp.o)(.text+0x1db): In function `execvp':
: undefined reference to `__stack_smash_handler'
bin-i386/dietlibc.a(memmove.o)(.text+0x18): In function `memmove':
: undefined reference to `__guard'
bin-i386/dietlibc.a(memmove.o)(.text+0x6a): In function `memmove':
: undefined reference to `__stack_smash_handler'
bin-i386/dietlibc.a(strstr.o)(.text+0x18): In function `strstr':
: undefined reference to `__guard'
bin-i386/dietlibc.a(strstr.o)(.text+0xb9): In function `strstr':
: undefined reference to `__stack_smash_handler'
bin-i386/dietlibc.a(exec_lib.o)(.text+0x1b): In function `__exec_shell':
: undefined reference to `__guard'
bin-i386/dietlibc.a(exec_lib.o)(.text+0x87): In function `__exec_shell':
: undefined reference to `__guard'
bin-i386/dietlibc.a(exec_lib.o)(.text+0xa6): In function `__exec_shell':
: undefined reference to `__stack_smash_handler'
collect2: ld gab 1 als Ende-Status zurück
make: *** [bin-i386/diet] Fehler 1

!!! ERROR: dev-libs/dietlibc-0.27 failed.
!!! Function src_compile, Line 62, Exitcode 2
!!! emake failed
!!! If you need support, post the topmost build error, NOT this status message.

I'm using a hardened toolchain. 

Please reopen this bug - or rather bug# 64063. 64063 is resolved as a duplicate of this bug?

10:53:18 askwar@alturo:~ $ emerge info
Portage 2.0.51-r3 (default-linux/x86/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.9-gentoo-r3.PHP2.4kb.cleaned.no-preempt.05 i686)
=================================================================
System uname: 2.6.9-gentoo-r3.PHP2.4kb.cleaned.no-preempt.05 i686 Intel(R) Celeron(R) CPU 2.00GHz
Gentoo Base System version 1.6.6
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.15.92.0.2-r1
Headers:  sys-kernel/linux26-headers-2.6.8.1-r1
Libtools: sys-devel/libtool-1.5.2-r7
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /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="-fomit-frame-pointer -pipe -O2 -march=pentium4"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache collision-protect distlocks sandbox sfperms"
GENTOO_MIRRORS="http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo http://194.117.158.29/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="acl apache2 apm arts async avi bzlib crypt cscope cups curl curlwrappers diet djbfft encode exif fam flash foomaticdb ftp fwdzone gd gdbm gif gnome gtk2 hal hardened iconv imagemagick imap imlib immqt-bc ithreads javascript jpeg kde libedit libg++ libwww lzo lzw lzw-tiff mad maildir mailwrapper mbox mmap mmx mng mpeg mysql ncurses nls no-old-linux noantlr nobcel nobeanutils nobsh nocommonslogging nocommonsnet nojdepend nojsch nojython nolog4j nooro noregexp norhino noxalan noxerces nptl offensive oggvorbis opengl oss pam parse-clocks pcntl pcre pdflib perl pic pie png posix postgres pwdb python qt quicktime readline recode sasl sdl shared slang sockets spell sse ssl sysvipc tcpd tiff truetype unicode x86 xfs xml2 xmms xv zlib linguas_de"

Comment 26 schaedpq 2004-11-22 01:18:39 UTC
I updated to genkernel-3.1.0a and got rid of my dietlibc problems with 2.6.7-hardened-r10. However I now have a problem with udev. If I invoke genkernel with the --udev option I get:

* udev: >> Compiling...
* ERROR: Failed to compile the "KERNEL_DIR=/usr/src/linux USE_KLIBC=true USE_LOG=false DEBUG=false udevdir=/dev all etc/udev/udev.conf" target...

* -- Grepping log... --

ENOPKG (65) => "Package not installed"
EREMOTE (66) => "Object is remote"
ENOLINK (67) => "Link has been severed"
EADV (68) => "Advertise error"
ESRMNT (69) => "Srmount error"
ECOMM (70) => "Communication error on send"
--
raise.o(.text+0x17): In function `raise':
/var/tmp/genkernel/udev-039/klibc/klibc/raise.c:9: undefined reference to `__guard'
raise.o(.text+0x3f):/var/tmp/genkernel/udev-039/klibc/klibc/raise.c:11: undefined reference to `__stack_smash_handler'
abort.o(.text+0x15): In function `abort':
/var/tmp/genkernel/udev-039/klibc/klibc/abort.c:10: undefined reference to `__guard'
assert.o(.text+0x16): In function `__assert_fail':
--
libgcc/__umoddi3.c:11: undefined reference to `__guard'
libgcc/__umoddi3.o(.text+0x45):libgcc/__umoddi3.c:16: undefined reference to `__stack_smash_handler'
libgcc/__udivmoddi4.o(.text+0x1a): In function `__udivmoddi4':
libgcc/__udivmoddi4.c:5: undefined reference to `__guard'
libgcc/__udivmoddi4.o(.text+0xcc):libgcc/__udivmoddi4.c:32: undefined reference to `__stack_smash_handler'
make[2]: *** [libc.so] Error 1
make[2]: Leaving directory `/var/tmp/genkernel/udev-039/klibc/klibc'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/var/tmp/genkernel/udev-039/klibc'
make: *** [/var/tmp/genkernel/udev-039/klibc/klibc/crt0.o] Error 2
* Gentoo Linux Genkernel; Version 3.1.0a

* ERROR: Failed to compile the "KERNEL_DIR=/usr/src/linux USE_KLIBC=true USE_LOG=false DEBUG=false udevdir=/dev all etc/udev/udev.conf" target...

# emerge info
Portage 2.0.51-r3 (default-linux/x86/2004.3, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.6.7-hardened-r10 i686)
=================================================================
System uname: 2.6.7-hardened-r10 i686 Pentium III (Coppermine)
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.14.90.0.8-r1
Headers:  sys-kernel/linux-headers-2.4.19-r1,sys-kernel/linux-headers-2.4.21-r1
Libtools: sys-devel/libtool-1.5.2-r5
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=i686 -O2 -mcpu=pentium3 -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=i686 -O2 -mcpu=pentium3 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://linux.rz.ruhr-uni-bochum.de/gentoo-portage"
USE="X X509 aalib acpi acpi4linux alsa apm ared aredmem arts avi berkdb bitmap-fonts bootspla bzlib c crypt css cups dga directfb divx4linux dlloader dvd f77 fam flac foomaticdb fortran gd gdbm gif gnuplot gs gsl gtk gtk2 hardened imap imlib imlib2 innodb ipv6 java jpeg kde libwww lzo mbox md5sum mha mikmod mime mmx mmx2 mng mozilla mozinterfaceinfo mozsvg mpeg mplayer ncurses network nls no_wxgtk1 ntlm oggvorbis opengl oss pam pcmcia pcre pdflib perl pic plotutils png pnp ppds python qt quicktime readline real rtc samba sasl sdl sftplogging slang smime sockets speex spell sse ssl tcpd theora tidy tiff truetype type1 usb webmin-minimal x86 xine xml2 xmms xv xvid zlib"


Is this the correct bug for this issue? 
Koon said something about the --udev flag being obsolete by genkernel-3.0.2g. That means, I should not use it at all? But if genkernel automagically uses udev with 2.6 sources, why do I get that error only if I enable --udev manually?