Created attachment 355966 [details] emerge --info '=sys-apps/kmod-14-r1' see title
Created attachment 355968 [details] build.log
The relevant bit from the build.log: libtool: link: x86_64-pc-linux-gnu-gcc -std=gnu99 -pipe -DANOTHER_BRICK_IN_THE -Wall -W -Wextra -Wno-inline -Wvla -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wstrict-aliasing=2 -Wwrite-strings -Wno-long-long -Wno-overlength-strings -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unused-result -Wnested-externs -Wchar-subscripts -Wtype-limits -Wuninitialized -fno-common -fdiagnostics-show-option -fvisibility=hidden -ffunction-sections -fdata-sections -march=native -pipe -O2 -Wl,--gc-sections -Wl,-O1 -o tools/.libs/kmod tools/kmod.o tools/lsmod.o tools/rmmod.o tools/insmod.o tools/modinfo.o tools/modprobe.o tools/depmod.o tools/log.o tools/static-nodes.o -Wl,--as-needed libkmod/.libs/libkmod-util.a libkmod/.libs/libkmod.so -L/usr/lib64 -lz tools/kmod.o: In function `kmod_help': kmod.c:(.text.kmod_help+0x2c): undefined reference to `_Static_assert' kmod.c:(.text.kmod_help+0x66): undefined reference to `_Static_assert' kmod.c:(.text.kmod_help+0x89): undefined reference to `_Static_assert' kmod.c:(.text.kmod_help+0xc6): undefined reference to `_Static_assert' tools/kmod.o: In function `main': kmod.c:(.text.main+0x5b): undefined reference to `_Static_assert' tools/kmod.o:kmod.c:(.text.main+0x8c): more undefined references to `_Static_assert' follow collect2: ld returned 1 exit status tools/kmod.o: In function `kmod_help': kmod.c:(.text.kmod_help+0x2c): undefined reference to `_Static_assert' kmod.c:(.text.kmod_help+0x66): undefined reference to `_Static_assert' kmod.c:(.text.kmod_help+0x89): undefined reference to `_Static_assert' kmod.c:(.text.kmod_help+0xc6): undefined reference to `_Static_assert' tools/kmod.o: In function `main': kmod.c:make[1]: (.*** [tools/test/kmod] Error 1text.main +0x5b): undefined reference to `_Static_assert' toolsmake[1]: /*** Waiting for unfinished jobs....kmod.o :kmod.c:(.text.main+0x8c): more undefined references to `_Static_assert' follow collect2: ld returned 1 exit status make[1]: *** [tools/kmod] Error 1 make: *** [install-recursive] Error 1
Looks like bug 451110, but this time in kmod instead of udev.
Created attachment 356056 [details, diff] Patch adapted from sys-fs/udev Try this patch with gcc-4.5
Created attachment 356170 [details] build.log with patched ebuild
Comment on attachment 356170 [details] build.log with patched ebuild The ebuild patch fixed the _Static_assert problem, but a new undefined reference appeared: libtool: link: x86_64-pc-linux-gnu-gcc -std=gnu99 -pipe -DANOTHER_BRICK_IN_THE -Wall -W -Wextra -Wno-inline -Wvla -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wstrict-aliasing=2 -Wwrite-strings -Wno-long-long -Wno-overlength-strings -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unused-result -Wnested-externs -Wchar-subscripts -Wtype-limits -Wuninitialized -fno-common -fdiagnostics-show-option -fvisibility=hidden -ffunction-sections -fdata-sections -march=native -pipe -O2 -Wl,--gc-sections -Wl,-O1 -o tools/.libs/kmod tools/kmod.o tools/lsmod.o tools/rmmod.o tools/insmod.o tools/modinfo.o tools/modprobe.o tools/depmod.o tools/log.o tools/static-nodes.o -Wl,--as-needed libkmod/.libs/libkmod-util.a libkmod/.libs/libkmod.so -L/usr/lib64 -lz tools/kmod.o: In function `kmod_help': kmod.c:(.text.kmod_help+0x2c): undefined reference to `_alsdjflkasjdfa' kmod.c:(.text.kmod_help+0x66): undefined reference to `_alsdjflkasjdfa' kmod.c:(.text.kmod_help+0x89): undefined reference to `_alsdjflkasjdfa' kmod.c:(.text.kmod_help+0xc6): undefined reference to `_alsdjflkasjdfa' tools/kmod.o: In function `main': kmod.c:(.text.main+0x5b): undefined reference to `_alsdjflkasjdfa' tools/kmod.o:kmod.c:(.text.main+0x8c): more undefined references to `_alsdjflkasjdfa' follow collect2: ld returned 1 exit status make[1]: *** [tools/test/kmod] Error 1 make[1]: *** Waiting for unfinished jobs.... tools/kmod.o: In function `kmod_help': kmod.c:(.text.kmod_help+0x2c): undefined reference to `_alsdjflkasjdfa' kmod.c:(.text.kmod_help+0x66): undefined reference to `_alsdjflkasjdfa' kmod.c:(.text.kmod_help+0x89): undefined reference to `_alsdjflkasjdfa' kmod.c:(.text.kmod_help+0xc6): undefined reference to `_alsdjflkasjdfa' tools/kmod.o: In function `main': kmod.c:(.text.main+0x5b): undefined reference to `_alsdjflkasjdfa' tools/kmod.o:kmod.c:(.text.main+0x8c): more undefined references to `_alsdjflkasjdfa' follow collect2: ld returned 1 exit status make[1]: *** [tools/kmod] Error 1
Well, current stable sys-devel/gcc is 4.6.3, so that's all we have to support so I'm thinking of: -- cut -- @@ -6,7 +6,7 @@ VIRTUAL_MODUTILS=1 -inherit autotools eutils libtool multilib linux-mod +inherit autotools eutils libtool multilib linux-mod versionator toolchain-funcs if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/kernel/${PN}/${PN}.git" @@ -42,6 +42,8 @@ pkg_setup() { CONFIG_CHECK="~MODULES ~MODULE_UNLOAD" linux-info_pkg_setup + version_is_at_least 4.6 $(gcc-version) || \ + die "At least sys-devel/gcc >= 4.6 is required." } src_prepare() { -- cut -- Or is there any reason we should be backporting patch to sys-devel/gcc-4.5.x, or is there any reason we even carry a patch for that in sys-fs/udev anymore?
Hans, # emerge sys-devel/gcc:4.6 # gcc-config -l And select 4.6 # env-update # source /etc/profile
libtool: install: /usr/bin/install -c libkmod/.libs/libkmod.so.2.2.4 /var/tmp/portage/sys-apps/kmod-14-r1/image//usr/lib64/libkmod.so.2.2.4 libtool: install: (cd /var/tmp/portage/sys-apps/kmod-14-r1/image//usr/lib64 && { ln -s -f libkmod.so.2.2.4 libkmod.so.2 || { rm -f libkmod.so.2 && ln -s libkmod.so.2.2.4 libkmod.so.2; }; }) libtool: install: (cd /var/tmp/portage/sys-apps/kmod-14-r1/image//usr/lib64 && { ln -s -f libkmod.so.2.2.4 libkmod.so || { rm -f libkmod.so && ln -s libkmod.so.2.2.4 libkmod.so; }; }) libtool: install: /usr/bin/install -c libkmod/.libs/libkmod.lai /var/tmp/portage/sys-apps/kmod-14-r1/image//usr/lib64/libkmod.la libtool: install: warning: remember to run `libtool --finish /usr/lib64' /bin/mkdir -p '/var/tmp/portage/sys-apps/kmod-14-r1/image//bin' /bin/sh ./libtool --mode=install /usr/bin/install -c tools/kmod '/var/tmp/portage/sys-apps/kmod-14-r1/image//bin' libtool: install: warning: `libkmod/libkmod.la' has not been installed in `/usr/lib64' libtool: install: /usr/bin/install -c tools/.libs/kmod /var/tmp/portage/sys-apps/kmod-14-r1/image//bin/kmod make --no-print-directory install-exec-hook if test "/usr/lib64" != "/lib64"; then \ /bin/mkdir -p /var/tmp/portage/sys-apps/kmod-14-r1/image//lib64 && \ so_img_name=$(readlink /var/tmp/portage/sys-apps/kmod-14-r1/image//usr/lib64/libkmod.so) && \ so_img_rel_target_prefix=$(echo /usr/lib64 | sed 's,\(^/\|\)[^/][^/]*,..,g') && \ ln -sf $so_img_rel_target_prefix/lib64/$so_img_name /var/tmp/portage/sys-apps/kmod-14-r1/image//usr/lib64/libkmod.so && \ mv /var/tmp/portage/sys-apps/kmod-14-r1/image//usr/lib64/libkmod.so.* /var/tmp/portage/sys-apps/kmod-14-r1/image//lib64; \ fi Making install in libkmod/docs make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. Making install in man make[2]: Nothing to be done for `install-exec-am'. /bin/mkdir -p '/var/tmp/portage/sys-apps/kmod-14-r1/image//usr/share/man/man5' /bin/mkdir -p '/var/tmp/portage/sys-apps/kmod-14-r1/image//usr/share/man/man8' /usr/bin/install -c -m 644 depmod.8 insmod.8 lsmod.8 rmmod.8 modprobe.8 modinfo.8 '/var/tmp/portage/sys-apps/kmod-14-r1/image//usr/share/man/man8' /usr/bin/install -c -m 644 depmod.d.5 modprobe.d.5 modules.dep.5 modules.dep.bin.5 '/var/tmp/portage/sys-apps/kmod-14-r1/image//usr/share/man/man5' * Removing unnecessary /usr/lib64/libkmod.la (no static archive) !!! doexe: /usr/local/portage/sys-apps/kmod/files/static-nodes does not exist * ERROR: sys-apps/kmod-14-r1 failed (install phase): * doexe failed *
$ ls -l /usr/portage/sys-apps/kmod/files/*static-nodes -rw-r--r-- 1 ssuominen ssuominen 584 Aug 9 22:08 /usr/portage/sys-apps/kmod/files/kmod-static-nodes -rw-r--r-- 1 ssuominen users 575 Jul 30 20:21 /usr/portage/sys-apps/kmod/files/static-nodes the file is present here. but what you should do is upgrade sys-apps/openrc to version 0.12 before emerging sys-apps/kmod 14 or newer. 0.12 of openrc is required for proper static-nodes /dev support kmod needs.
(In reply to Hans from comment #9) > !!! doexe: /usr/local/portage/sys-apps/kmod/files/static-nodes does not exist you can remove it from your local overlay :P
thanks, it's fixed after setting gcc to 4.6 and removing the local overlay
I had the same issue for several versions of kmod-14. If upgrading through the usual emerge -auv world, kmod-14-Rx is emerged before openrc is upgraded and then fails because of the old openrc version. In my opinion the error is caused by the wrong order of emerging. Possibly not relevant but I use gcc-4.7.3
(In reply to Peter from comment #13) > I had the same issue for several versions of kmod-14. If upgrading through > the usual emerge -auv world, kmod-14-Rx is emerged before openrc is upgraded > and then fails because of the old openrc version. In my opinion the error is > caused by the wrong order of emerging. Possibly not relevant but I use > gcc-4.7.3 Sorry, but you have wrong bug, the compile failure from Comment #1 has nothing to do with sys-apps/openrc, emerge order, or -rX revision of kmod It's about old gcc being selected in gcc-config and `gcc --version` saying the compiler is 4.5 or older
Added check to the ebuild.