Bug 2809 - failed to compile libglib2
Summary: failed to compile libglib2
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: PC Linux
: P5 major
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-14 21:20 UTC by oilehus
Modified: 2010-11-17 06:28 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description oilehus 2010-11-14 21:20:55 UTC
I turned on libglib2, I got the following comipler error

libtool: compile:  /local/home/src/buildroot-2010.11-rc1/output/staging/usr/bin/i386-unknown-linux-uclibc-gcc --sysroot=/local/home/src/buildroot-2010.11-rc1/output/staging -DHAVE_CONFIG_H -I. -I.. -I.. -I../glib -I../glib -I.. -DG_LOG_DOMAIN=\"GLib\" -DG_DISABLE_CAST_CHECKS -DG_DISABLE_DEPRECATED -DGLIB_COMPILATION -DPCRE_STATIC -DG_DISABLE_SINGLE_INCLUDES -pthread -pipe -Os -mtune=i386 -march=i386 -I/local/home/src/buildroot-2010.11-rc1/output/staging/usr/include -I/local/home/src/buildroot-2010.11-rc1/output/staging/include -Wall -MT gatomic.lo -MD -MP -MF .deps/gatomic.Tpo -c gatomic.c  -fPIC -DPIC -o .libs/gatomic.o
gatomic.c:885: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
gatomic.c: In function 'g_atomic_int_exchange_and_add':
gatomic.c:906: warning: implicit declaration of function 'g_mutex_lock'
gatomic.c:906: error: 'g_atomic_mutex' undeclared (first use in this function)
gatomic.c:906: error: (Each undeclared identifier is reported only once
gatomic.c:906: error: for each function it appears in.)
gatomic.c:909: warning: implicit declaration of function 'g_mutex_unlock'
gatomic.c: In function 'g_atomic_int_add':
gatomic.c:928: error: 'g_atomic_mutex' undeclared (first use in this function)
gatomic.c: In function 'g_atomic_int_compare_and_exchange':
gatomic.c:954: error: 'g_atomic_mutex' undeclared (first use in this function)
gatomic.c: In function 'g_atomic_pointer_compare_and_exchange':
gatomic.c:988: error: 'g_atomic_mutex' undeclared (first use in this function)
gatomic.c: In function '_g_atomic_thread_init':
gatomic.c:1155: error: 'g_atomic_mutex' undeclared (first use in this function)
gatomic.c:1155: warning: implicit declaration of function 'g_mutex_new'
make[5]: *** [gatomic.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
mv -f .deps/garray.Tpo .deps/garray.Plo
make[5]: Leaving directory `/local/home/src/buildroot-2010.11-rc1/output/build/libglib2-2.26.0/glib'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/local/home/src/buildroot-2010.11-rc1/output/build/libglib2-2.26.0/glib'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/local/home/src/buildroot-2010.11-rc1/output/build/libglib2-2.26.0/glib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/local/home/src/buildroot-2010.11-rc1/output/build/libglib2-2.26.0'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/local/home/src/buildroot-2010.11-rc1/output/build/libglib2-2.26.0'
Comment 1 Lionel Landwerlin 2010-11-14 22:52:57 UTC
It should be fixed in git :

http://git.buildroot.org/buildroot/commit/?id=6c01ef20ee96f770bf7fc0fede90b3861d529015

Do you have this commit in your tree ?
Comment 2 oilehus 2010-11-15 03:44:54 UTC
I can see the patch file in the tree, but somehow it didn't automatically apply this patch, if I manually applied the patch, it can build without problem.
Comment 3 oilehus 2010-11-15 05:38:20 UTC
is it a typo for the patch file's name ?
Should 
"libglib-2.26.0-fix-compilation-with-no-builtin-atomic.patch"
be 
"libglib2-2.26.0-fix-compilation-with-no-builtin-atomic.patch"?

After I made that change, I don't see that error any more but I saw another one:

./.libs/libgio-2.0.so: undefined reference to `in6addr_loopback'
./.libs/libgio-2.0.so: undefined reference to `in6addr_any'
collect2: ld returned 1 exit status
make[5]: *** [gsettings] Error 1
make[5]: *** Waiting for unfinished jobs....
../glib/.libs/libglib-2.0.so: warning: the use of OBSOLESCENT `utime' is discouraged, use `utimes'
./.libs/libgio-2.0.so: undefined reference to `in6addr_loopback'
./.libs/libgio-2.0.so: undefined reference to `in6addr_any'
collect2: ld returned 1 exit status
make[5]: *** [gio-querymodules] Error 1

if I enable "IPv6" in toolchain, it's ok. It seems like libglib2 2.26.0 is not compatible with IPv4 any more.
Comment 4 Peter Korsgaard 2010-11-17 06:28:06 UTC
Fixed in git, thanks