Summary: | gnome-base/gdm-2.8.0.7-r1 configure fails due to mixage of PIC and non-PIC libraries | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | BlaisorBlade <blaisorblade_spam> |
Component: | [OLD] Core system | Assignee: | The Gentoo Linux Hardened Team <hardened> |
Status: | RESOLVED NEEDINFO | ||
Severity: | normal | CC: | blaisorblade_spam, gnome |
Priority: | High | ||
Version: | 2006.0 | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Log of the failed configure command for GDM |
Description
BlaisorBlade
2006-04-30 04:13:18 UTC
Created attachment 85822 [details]
Log of the failed configure command for GDM
I've just reproduced the compilation failure for the program configure was trying to compile (config.log contain both the program and the command line used to compile it), and then I've verified that adding -fno-PIE to the cmd line makes the program compile: Original command line: x86_64-pc-linux-gnu-gcc -o conftest -march=athlon64 -O2 -pipe -fomit-frame-pointer -Wall -Wmissing-prototypes conftest.c -lXdmcp -L/usr/lib64 -lX11 Add -fno-pie and the program compiles. So, unless I'm missing something (and that's why I'm asking) the problem is simply that installing GCC hardened means recompiling _everything_. Or at least everything providing a .a library (since .so library are always in PIC format, and we don't link against executable). Is this documented somewhere? What provides libXdmcp.a on your system? Can you recompile that and see if you get a proper .so? linking *.a and *.so have always been a bad idea and the -fno-pie is not ideal at all. reassigning to hardened as it seems to be a hardened issue, not a GNOME issue. Due to lack of response from the reporter, marking as needinfo sorry for the bug spam, see previous comment Since the box on which I worked crashed and I haven't had the time to reinstall Gentoo, I'm providing the following info off the top of my memory. The libXdmcp.a library comes from the xorg-x11 package (as I mentioned in the first message) and it doesn't build a .so of that package (but this should be easy to verify). I know -fno-pie isn't the optimal solution; I also tried recompiling X but met the dlloader problem, so I couldn't test if after that recompiling gdm would have worked. Re-open when you have a system with the fault again. When that happens, paste or attach the output of 'emerge --info' I don't think this has anything to do with PIE as such; the problem is you don't/didn't have libXdmcp built as a shared object, which is from Xorg. Assuming that on a normal system with xorg 6 that library is built as a shared object (have you got it on your system) what you say would be true. However, without further hypotesis I could also suppose that library is never built as a .so and it works fine without hardened, fine with hardened when all the system is built like that, but not fine on mixed systems (like mine) where one switches hardened on in the middle of the system life. Please at least verify what happens on _your_ system; if there is none of the above descrived situations then this resolution can be valid. Of course it's normally used as a shared object. Without data like 'emerge --info' we can't even guess why you didn't have it as a shared object. The vast majority of libraries are be built as both shared (.so) and static (.a) libraries on arches that support shared libraries. The static libraries should only used when building something as a static binary, which is rare. However the standard build processes will link to a static library if the shared library is missing, which is what it looks like your system was doing. We cannot proceed until the problem exists on an active system where it can be investigated and fixed. There's really no point discussing it until then. |