ID:               42374
 User updated by:  galtgendo at o2 dot pl
 Reported By:      galtgendo at o2 dot pl
 Status:           Open
 Bug Type:         Compile Failure
 Operating System: gentoo linux
 PHP Version:      5.2.3
 New Comment:

For a simple test case:
#include <glib.h>
int main()
{
g_print("test done\n");
return 0;
}
gcc -o minitest -Wl,--as-needed `pkg-config glib-2.0 --cflags`
minitest.c `pkg-config glib-2.0 --libs`
- compiles fine
gcc -o minitest -Wl,--as-needed `pkg-config glib-2.0 --cflags`
`pkg-config glib-2.0 --libs` minitest.c
- gives 
/tmp/ccKZrHDW.o: In function `main':
minitest.c:(.text+0x19): undefined reference to `g_print'
collect2: ld returned 1 exit status


Previous Comments:
------------------------------------------------------------------------

[2007-08-23 15:21:10] galtgendo at o2 dot pl

Well, that's incorrect.
PHP_CHECK_LIBRARY calls AC_CHECK_LIB.
without -Wl,--as-needed it does not matter whether libs are in LDFLAGS
or in LIBS, with that flag however all dependent libraries must appear
after the objects.
AC_CHECK_LIB does something like 
i686-pc-linux-gnu-gcc -o conftest  ${CFLAGS}  ${LDFLAGS} conftest.c
${LIBS}
(more or less)

that check fails with --as-needed flag if lib is added to LDFLAGS
so it does not matter if it gets restored, cause the check already
failed - those are the false negatives I'm talking about.
All the other macros from the patch seem to do this, so that's why I
changed them. I'm not sure if something got broken, however it was
correct for the ext/ldap/config.m4 so there's at least a chance it will
work for the rest.

------------------------------------------------------------------------

[2007-08-23 10:38:24] [EMAIL PROTECTED]

PHP_CHECK_LIBRARY restores the LDFLAGS after doing the test so it
shouldn't be any problem?

And bug #41973 was about ext/ldap and that was fixed.
I'd fix these case by case rather than blindly changing places unlikely
to even cause any problems.


------------------------------------------------------------------------

[2007-08-22 15:40:41] galtgendo at o2 dot pl

Well, I'm not 100%, if I was, I would mentioned it, not asked for
futher testing.
And AFAIK that commit from bug #41973 was only
http://cvs.php.net/viewvc.cgi/php-src/ext/ldap/config.m4?r1=1.44&r2=1.45&diff_format=u
so only about ext/ldap/config.m4 (as in my patch).
What's more, although I can't recall if it made any difference you
should consider changes in acinclude.m4, cause in PHP_CHECK_LIBRARY
macro you were adding libraries to LDFLAGS instead of LIBS and that's
most common source of --as-needed bugs. That's why I'm talking about
false negatives - standard configure check would put those libraries in
wrong place and check would fail even if the library was OK.

------------------------------------------------------------------------

[2007-08-22 14:46:27] [EMAIL PROTECTED]

And have you even tested what was committed in our CVS?

------------------------------------------------------------------------

[2007-08-22 14:45:33] [EMAIL PROTECTED]

FYI: this is not bugzilla and it's not annoying. It's just old. :)

And about your patch..are you really sure you need to change all those
places?

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/42374

-- 
Edit this bug report at http://bugs.php.net/?id=42374&edit=1

Reply via email to