Subject: pkg/29175: devel/glib2 link failure on MacOS X 10.[12].x
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <jdbaker@mylinuxisp.com>
List: pkgsrc-bugs
Date: 01/31/2005 21:14:00
>Number:         29175
>Category:       pkg
>Synopsis:       devel/glib2 link failure on MacOS X 10.[12].x
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jan 31 21:14:00 +0000 2005
>Originator:     John D. Baker
>Release:        N/A (MacOS X 10.2.8 w/pkgsrc-current)
>Organization:
>Environment:
Darwin pm8500.technoskunk.fur 6.8 Darwin Kernel Version 6.8: Wed Sep 10 15:20:55 PDT 2003; root:xnu/xnu-344.49.obj~2/RELEASE_PPC  Power Macintosh powerpc

>Description:
building devel/glib2 (2.6.1) on MacOS X 10.2.8 fails as follows:

[...]
if /bin/sh ../../libtool --mode=compile gcc -pipe -DHAVE_CONFIG_H -I. -I. -I../.. -I../..  -DPREFIX="\"/usr/pkg\"" -DPKGLOCALEDIR="\"share\"" -DPKG_SYSCONFDIR="\"/usr/pkg/etc\"" -no-cpp-precomp -I/usr/pkg/include -I/usr/include -D_REENTRANT  -O2 -I/usr/pkg/include -I/usr/include -Wall -MT vasnprintf.lo -MD -MP -MF ".deps/vasnprintf.Tpo" \
  -c -o vasnprintf.lo `test -f 'vasnprintf.c' || echo './'`vasnprintf.c; \
then mv -f ".deps/vasnprintf.Tpo" ".deps/vasnprintf.Plo"; \
else rm -f ".deps/vasnprintf.Tpo"; exit 1; \
fi
 gcc -pipe -DHAVE_CONFIG_H -I. -I../.. -DPREFIX=\"/usr/pkg\" -DPKGLOCALEDIR=\"share\" -DPKG_SYSCONFDIR=\"/usr/pkg/etc\" -no-cpp-precomp -I/Volumes/NetBSD/tmp/pkgsrc/devel/glib2/work/.buildlink/include -D_REENTRANT -O2 -Wall -MT vasnprintf.lo -MD -MP -MF .deps/vasnprintf.Tpo -c vasnprintf.c  -fno-common -DPIC -o .libs/vasnprintf.o
In file included from printf-parse.h:22,
                 from vasnprintf.c:42:
printf-args.h:103: warning: use of `long double' type; its size may change in a future release
printf-args.h:103: warning: (Long double usage is reported only once for each file.
printf-args.h:103: warning: To disable this warning, use -Wno-long-double.)
vasnprintf.c: In function `_g_gnulib_vasnprintf':
vasnprintf.c:542: warning: implicit declaration of function `wcslen'


[...]
/bin/sh ../libtool --mode=link gcc -pipe  -O2 -I/usr/pkg/include -I/usr/include -Wall  -L/usr/pkg/lib -L/usr/lib -o glib-genmarshal  glib-genmarshal.o ../glib/libglib-2.0.la -lintl -liconv
mkdir .libs
gcc -pipe -O2 -I/Volumes/NetBSD/tmp/pkgsrc/devel/glib2/work/.buildlink/include -Wall -o .libs/glib-genmarshal glib-genmarshal.o  -L/Volumes/NetBSD/tmp/pkgsrc/devel/glib2/work/.buildlink/lib ../glib/.libs/libglib-2.0.dylib /Volumes/NetBSD/tmp/pkgsrc/devel/glib2/work/.buildlink/lib/libintl.dylib -lc /Volumes/NetBSD/tmp/pkgsrc/devel/glib2/work/.buildlink/lib/libiconv.dylib
ld: Undefined symbols:
_wcslen
gnumake[2]: *** [glib-genmarshal] Error 1
gnumake[1]: *** [all-recursive] Error 1
gnumake: *** [all] Error 2
*** Error code 2

Stop.
bmake: stopped in /usr/pkgsrc/devel/glib2

>How-To-Repeat:
bootstrap pkgsrc on MacOS X 10.[12].x
cd .../pkgsrc/devel/glib2
bmake


>Fix:
Although MacOS X 10.[12].x have <wchar.h>, the functions prototyped
therein are not present in any library installed on the system.

Workaround:  build without wchar support

bmake configure

then patch as follows:

--- work/glib-2.6.1/config.h.orig       Mon Jan 31 15:12:12 2005
+++ work/glib-2.6.1/config.h    Mon Jan 31 15:12:13 2005
@@ -318,3 +318,3 @@
 /* Define if you have the 'wchar_t' type. */
-#define HAVE_WCHAR_T 1
+#undef HAVE_WCHAR_T
 
 

It is important to explicitly undefine HAVE_WCHAR_T.  Otherwise,
.../work/glib-2.6.1/glib/gnulib/vasnprintf.c seems not to obey its

# ifdef HAVE_WCHAR_T

directives.