pkgsrc-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
building glib2
On a fresh from cvs i386 system (kernel, userland, pkgsrc), make in
pkgsrc/devel/glib2 gives:
===> Configuring for glib2-2.20.3
=> Modifying GNU configure scripts to avoid --recheck
=> Replacing config-guess with pkgsrc versions
=> Replacing config-sub with pkgsrc versions
=> Replacing install-sh with pkgsrc version
=> Adding run-time search paths to pkg-config files.
...
=> Fixing locale directory references.
configure: WARNING: unrecognized options: --without-libiconv-prefix,
--without-libintl-prefix
configure: WARNING: If you wanted to set the --build type, don't use --host.
...
checking for an implementation of va_copy()... yes
checking for an implementation of __va_copy()... yes
checking whether va_lists can be copied by value... yes
checking for dlopen... yes
checking for dlsym... yes
rm: .libs/plugin.o: No such file or directory
rm: plugin.lo: No such file or directory
rm: plugin.loT: No such file or directory
/usr/lib/crt0.o: In function `___start':
: undefined reference to `main'
checking for RTLD_GLOBAL brokenness... no
checking for preceeding underscore in symbols... no
checking for dlerror... yes
checking for dlopen(NULL, 0) brokenness... yes
checking for the suffix of module shared libraries... eval: 1: Syntax error:
Unterminated quoted string
*** Error code 2
...
One question might be why
#include <stdio.h>
#include <dlfcn.h>
#ifndef RTLD_GLOBAL
# define RTLD_GLOBAL 0
#endif
#ifndef RTLD_LAZY
# define RTLD_LAZY 0
#endif
int gettext;
int main () {
void *handle;
handle = dlopen ("libm.so", RTLD_GLOBAL | RTLD_LAZY);
if (!handle) {printf("1st null\n");return 0;}
handle = dlopen (NULL, 0);
if (!handle) {printf("2nd null\n");return 0;}
handle = dlsym (handle, "sin");
if (!handle) {printf("3rd null\n");return 0;}
return handle == NULL;
}
prints:
3rd null
yet libm.so has
00010960 T sin
Next, the unterminated quoted string is because:
# ./libtool --config | grep '^shrext_cmds='
shrext_cmds=".so
so there is a "...
./libtool --config outputs a \n, so
# Shared library suffix (normally ".so").
shrext_cmds=".so
"
Also interesting is that (in work.i386/glib-2.20.3)
# ./libtool --version
ltmain.sh (GNU libtool) 2.2.6
whereas
# /usr/pkg/bin/libtool --version
ltmain.sh (GNU libtool) 1.5.24 (1.1220.2.455 2007/06/24 02:13:29)
OK, so the problem is with the version of libtool which comes in
glib-2.20.3/ltmain.sh, as a newer libtool:
libtool (GNU libtool 1.3090 2009-04-22) 2.2.7a
# Shared library suffix (normally ".so").
shrext_cmds=".so"
has no \n. Presumably this will bite pkgsrc users though...
Running autogen.sh in work.i386/glib-2.20.3, then returning ../.. to make
gives:
checking for RTLD_GLOBAL brokenness... no
checking for preceeding underscore in symbols... no
checking for dlerror... yes
checking for dlopen(NULL, 0) brokenness... yes <-- still wonder why
checking for the suffix of module shared libraries... .so <-- now OK
checking for gspawn implementation... gspawn.lo
and the compilation is successful... (live-g-file.c:714:do_copy_move fails)
Cheers,
Patrick
Home |
Main Index |
Thread Index |
Old Index