| Summary: | sys-block/mbuffer-20070317 fails to find MD5_Init in -lssl due to -Wl,--as-needed | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Liganic |
| Component: | [OLD] Core system | Assignee: | Gentoo's Team for Core System packages <base-system> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: |
The resulting config.log with the wrong value.
emerge --info |
||
|
Description
Liganic
2007-08-15 20:54:49 UTC
you need to post real info ... saying "it fails" is not debuggable start with the actual emerge output and the config.log in the build dir Relevant part of emerge.log:
checking for library containing MD5Init... -lmd5
configure: creating ./config.status
config.status: creating Makefile
config.status: creating mbuffer.1
config.status: creating config.h
mbuffer.c:32:3: Warnung: #warning Your sendfile implementation does not seem to support sending from buffers - disabling sendfile support.
mbuffer.c:41:17: Fehler: md5.h: Datei oder Verzeichnis nicht gefunden
config.log:
configure:3705: checking for library containing MD5Init
configure:3735: i686-pc-linux-gnu-gcc -o conftest -O2 -march=pentium-m -msse2 -pipe -fomit-frame-pointer
-Wl,--as-needed conftest.c -lpthread >&5
/var/tmp/portage/sys-block/mbuffer-20070317/temp/cc8djT5n.o: In function `main':
conftest.c:(.text+0xf): undefined reference to `MD5Init'
collect2: ld returned 1 exit status
configure:3741: $? = 1
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define HAVE_LIBPTHREAD 1
| #define RETSIGTYPE void
| #define _FILE_OFFSET_BITS 64
| #define HAVE_SENDFILE 1
| /* end confdefs.h. */
|
| /* Override any gcc2 internal prototype to avoid an error. */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
| builtin and then its argument prototype would still apply. */
| char MD5Init ();
| int
| main ()
| {
| MD5Init ();
| ;
| return 0;
| }
configure:3790: i686-pc-linux-gnu-gcc -o conftest -O2 -march=pentium-m -msse2 -pipe -fomit-frame-pointer -Wl,--as-needed conftest.c -lmd5 -lpthread >&5
configure:3796: $? = 0
configure:3800: test -z
|| test ! -s conftest.err
configure:3803: $? = 0
configure:3806: test -s conftest
configure:3809: $? = 0
configure:3824: result: -lmd5
configure:3967: creating ./config.status
Found under cache variables in config.log:
ac_cv_search_MD5Init=-lmd5
Hope this is verbose enough.
dont post snippets of config.log, post the whole thing as an attachment the md5 functions should have been found in libssl (MD5_Init) Created attachment 128333 [details]
The resulting config.log with the wrong value.
your -Wl,--as-needed is screwing things up i noticed you *still* havent posted `emerge --info` Created attachment 128366 [details]
emerge --info
You are right, if I temporarily change the LDFLAGS to "" it compiles just fine. So I guess the best way would be to strip the flags in the ebuild? no, the configure script should be tweaked ... it asks for -lssl when in reality it wants -lcrypto mbuffer-20070518 should work I have no clue why it doesn't work but I had to strip the LDFLAGS to make it work. |