GNOME and glibc-2.3.4



Hi folks.

First, sorry if this was discussed before here.

The majority of developers and distro's are using glibc-2.3.3 to write code.
Unfortunately there's others -- i.e those from Slackware -current like myself
-- who upgraded to glibc-2.3.4.

This updated glibc is raising a strange situation in some applications and GNOME
code, specially those network-based: undefined structures, flags and variables
not being correctly inserted.

As could be seen in this small compilation log (cvs from 04.04.2005),

make[2]: Entering directory `/home/hquest/cvs/gnome2/gnome-nettool/src'
if gcc -DHAVE_CONFIG_H -I. -I. -I..
-DGNOME_NETTOOL_LOCALEDIR=\""/opt/gnome2/share/locale"\"
-DDATADIR=\""/opt/gnome2/share/gnome-nettool/dialogs/"\"
-DPIXMAPS_DIR=\""/opt/gnome2/share/gnome-nettool/pixmaps"\" -DXTHREADS
-D_REENTRANT -DXUSE_MTSAFE_API -D_XOPEN_SOURCE=500 -DORBIT2=1 -pthread
-I/opt/gnome2/include/gtk-2.0 -I/opt/gnome2/lib/gtk-2.0/include
-I/usr/X11R6/include -I/opt/gnome2/include -I/opt/gnome2/include/atk-1.0
-I/opt/gnome2/include/pango-1.0 -I/usr/include/freetype2
-I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib/glib-2.0/include
-I/opt/gnome2/include/libglade-2.0 -I/opt/gnome2/include/libxml2
-I/opt/gnome2/include/gconf/2 -I/opt/gnome2/include/orbit-2.0      -g -O2
-march=pentium4 -msse2 -mfpmath=sse -Wall -Wmissing-prototypes  -MT info.o -MD
-MP -MF ".deps/info.Tpo" \
  -c -o info.o `test -f 'info.c' || echo './'`info.c; \
then mv -f ".deps/info.Tpo" ".deps/info.Po"; \
else rm -f ".deps/info.Tpo"; exit 1; \
fi
info.c: In function `info_set_nic':
info.c:98: warning: implicit declaration of function `strcmp'
info.c: In function `info_get_interface_from_dev_name':
info.c:133: warning: implicit declaration of function `strstr'
info.c: In function `info_get_nic_information':
info.c:401: error: storage size of `ifc' isn't known
info.c:402: error: storage size of `ifrcopy' isn't known
info.c:448: warning: implicit declaration of function `bzero'
info.c:464: error: dereferencing pointer to incomplete type
info.c:466: error: dereferencing pointer to incomplete type
info.c:471: error: dereferencing pointer to incomplete type
info.c:526: error: `IFF_UP' undeclared (first use in this function)
info.c:526: error: (Each undeclared identifier is reported only once
info.c:526: error: for each function it appears in.)
info.c:533: error: `IFF_LOOPBACK' undeclared (first use in this function)
info.c:550: error: `IFF_MULTICAST' undeclared (first use in this function)
info.c:557: error: `IFF_POINTOPOINT' undeclared (first use in this function)
info.c:401: warning: unused variable `ifc'
info.c:402: warning: unused variable `ifrcopy'
info.c: In function `info_get_interfaces':
info.c:624: error: `IFF_UP' undeclared (first use in this function)
make[2]: *** [info.o] Error 1
make[2]: Leaving directory `/home/hquest/cvs/gnome2/gnome-nettool/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/hquest/cvs/gnome2/gnome-nettool'
make: *** [all] Error 2

But all these "undeclared" errors are declared in <net/if.h>.

A crappiest example, too:

make[2]: Entering directory `/home/hquest/cvs/gnome2/gnome-media/cddb-slave2'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -DORBIT2=1 -pthread -DXTHREADS
-D_REENTRANT -DXUSE_MTSAFE_API -D_XOPEN_SOURCE=500
-I/opt/gnome2/include/glib-2.0 -I/opt/gnome2/lib/glib-2.0/include
-I/opt/gnome2/include/libgnomeui-2.0 -I/opt/gnome2/include/libgnome-2.0
-I/opt/gnome2/include/libgnomecanvas-2.0 -I/opt/gnome2/include/gtk-2.0
-I/opt/gnome2/include/libart-2.0 -I/opt/gnome2/include/gconf/2
-I/opt/gnome2/include/libbonoboui-2.0 -I/opt/gnome2/include/orbit-2.0
-I/opt/gnome2/include/libbonobo-2.0 -I/opt/gnome2/include/gnome-vfs-2.0
-I/opt/gnome2/lib/gnome-vfs-2.0/include
-I/opt/gnome2/include/bonobo-activation-2.0 -I/opt/gnome2/include/pango-1.0
-I/opt/gnome2/include -I/usr/include/freetype2
-I/opt/gnome2/lib/gtk-2.0/include -I/usr/X11R6/include
-I/opt/gnome2/include/atk-1.0 -I/opt/gnome2/include/libxml2   -Wall -Werror
-DGNOMELOCALEDIR=\""/opt/gnome2/share/locale"\"
-DDATADIR=\""/opt/gnome2/share"\" -DG_LOG_DOMAIN=\"CDDBSlave2\"    -g -O2
-march=pentium4 -msse2 -mfpmath=sse -MT gnet-private.o -MD -MP -MF
".deps/gnet-private.Tpo" \
  -c -o gnet-private.o `test -f 'gnet-private.c' || echo './'`gnet-private.c; \
then mv -f ".deps/gnet-private.Tpo" ".deps/gnet-private.Po"; \
else rm -f ".deps/gnet-private.Tpo"; exit 1; \
fi
In file included from gnet-private.h:67,
                 from gnet-private.c:21:
/usr/include/arpa/nameser.h:113: error: parse error before '*' token
/usr/include/arpa/nameser.h:115: error: parse error before '*' token
/usr/include/arpa/nameser.h:118: error: parse error before '*' token
/usr/include/arpa/nameser.h:119: error: parse error before '}' token
/usr/include/arpa/nameser.h:145: error: parse error before '*' token
/usr/include/arpa/nameser.h:502: error: parse error before "__ns_get16"
/usr/include/arpa/nameser.h:502: error: parse error before '*' token
/usr/include/arpa/nameser.h:503: error: parse error before "__ns_get32"
/usr/include/arpa/nameser.h:503: error: parse error before '*' token
/usr/include/arpa/nameser.h:504: error: parse error before '*' token
/usr/include/arpa/nameser.h:505: error: parse error before '*' token
/usr/include/arpa/nameser.h:506: error: parse error before '*' token
/usr/include/arpa/nameser.h:507: error: parse error before '*' token
/usr/include/arpa/nameser.h:509: error: parse error before '*' token
/usr/include/arpa/nameser.h:510: error: parse error before '*' token
/usr/include/arpa/nameser.h:513: error: parse error before '*' token
/usr/include/arpa/nameser.h:517: error: parse error before "char"
/usr/include/arpa/nameser.h:518: error: parse error before "u_long"
/usr/include/arpa/nameser.h:520: error: parse error before '*' token
/usr/include/arpa/nameser.h:521: error: parse error before '*' token
/usr/include/arpa/nameser.h:522: error: parse error before "u_char"
/usr/include/arpa/nameser.h:523: error: parse error before '*' token
/usr/include/arpa/nameser.h:525: error: parse error before '*' token
/usr/include/arpa/nameser.h:527: error: parse error before '*' token
/usr/include/arpa/nameser.h:529: error: parse error before "u_char"
/usr/include/arpa/nameser.h:531: error: parse error before '*' token
/usr/include/arpa/nameser.h:532: error: parse error before '*' token
/usr/include/arpa/nameser.h:534: error: parse error before '*' token
/usr/include/arpa/nameser.h:536: error: parse error before '*' token
/usr/include/arpa/nameser.h:538: error: parse error before '*' token
/usr/include/arpa/nameser.h:540: error: parse error before '*' token
/usr/include/arpa/nameser.h:540: error: parse error before '*' token
/usr/include/arpa/nameser.h:541: error: parse error before '*' token
/usr/include/arpa/nameser.h:543: error: parse error before '*' token
/usr/include/arpa/nameser.h:545: error: parse error before '*' token
In file included from /usr/include/arpa/nameser.h:554,
                 from gnet-private.h:67,
                 from gnet-private.c:21:
/usr/include/arpa/nameser_compat.h:66: error: duplicate member `rd'
/usr/include/arpa/nameser_compat.h:67: error: duplicate member `tc'
/usr/include/arpa/nameser_compat.h:68: error: duplicate member `aa'
/usr/include/arpa/nameser_compat.h:69: error: duplicate member `opcode'
/usr/include/arpa/nameser_compat.h:70: error: duplicate member `qr'
/usr/include/arpa/nameser_compat.h:72: error: duplicate member `rcode'
/usr/include/arpa/nameser_compat.h:73: error: duplicate member `cd'
/usr/include/arpa/nameser_compat.h:74: error: duplicate member `ad'
/usr/include/arpa/nameser_compat.h:75: error: duplicate member `unused'
/usr/include/arpa/nameser_compat.h:76: error: duplicate member `ra'
In file included from gnet-private.h:68,
                 from gnet-private.c:21:
/usr/include/resolv.h:75: error: parse error before '*' token
/usr/include/resolv.h:82: error: parse error before '*' token
/usr/include/resolv.h:107: error: parse error before "u_long"
/usr/include/resolv.h:112: error: parse error before "id"
/usr/include/resolv.h:115: error: parse error before "pfcode"
/usr/include/resolv.h:116: error: parse error before ':' token
/usr/include/resolv.h:117: error: parse error before ':' token
/usr/include/resolv.h:127: error: parse error before "_flags"
/usr/include/resolv.h:127: error: conflicting types for `_flags'
/usr/include/arpa/nameser.h:114: error: previous declaration of `_flags'
/usr/include/resolv.h:145: error: parse error before '}' token
/usr/include/resolv.h:256: error: parse error before '*' token
/usr/include/resolv.h:257: error: parse error before '*' token
/usr/include/resolv.h:259: error: parse error before '*' token
/usr/include/resolv.h:263: error: parse error before '*' token
/usr/include/resolv.h:265: error: parse error before "u_char"
/usr/include/resolv.h:267: error: parse error before "u_char"
/usr/include/resolv.h:268: error: parse error before "u_char"
/usr/include/resolv.h:269: error: parse error before '*' token
/usr/include/resolv.h:323: error: parse error before "const"
/usr/include/resolv.h:324: error: parse error before "u_char"
/usr/include/resolv.h:325: error: parse error before "u_char"
/usr/include/resolv.h:326: error: parse error before '*' token
/usr/include/resolv.h:327: error: parse error before '*' token
/usr/include/resolv.h:328: error: parse error before "u_char"
/usr/include/resolv.h:329: error: parse error before "u_char"
/usr/include/resolv.h:334: error: parse error before '*' token
/usr/include/resolv.h:334: error: parse error before '*' token
/usr/include/resolv.h:336: error: parse error before '*' token
/usr/include/resolv.h:336: error: parse error before '*' token
/usr/include/resolv.h:337: error: parse error before '*' token
/usr/include/resolv.h:337: error: parse error before '*' token
/usr/include/resolv.h:339: error: parse error before '*' token
/usr/include/resolv.h:339: error: parse error before '*' token
/usr/include/resolv.h:340: error: parse error before "option"
/usr/include/resolv.h:343: error: parse error before "u_char"
/usr/include/resolv.h:345: error: parse error before '*' token
/usr/include/resolv.h:347: error: parse error before "__res_randomid"
/usr/include/resolv.h:349: error: parse error before '*' token
/usr/include/resolv.h:350: error: parse error before '*' token
/usr/include/resolv.h:358: error: parse error before '*' token
/usr/include/resolv.h:362: error: parse error before "u_char"
/usr/include/resolv.h:364: error: parse error before "u_char"
/usr/include/resolv.h:367: error: parse error before "u_char"
/usr/include/resolv.h:369: error: parse error before '*' token
/usr/include/resolv.h:371: error: parse error before '*' token
make[2]: *** [gnet-private.o] Error 1
make[2]: Leaving directory `/home/hquest/cvs/gnome2/gnome-media/cddb-slave2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/hquest/cvs/gnome2/gnome-media'
make: *** [all] Error 2

These same file compiles perfectly when used glibc-2.3.3 include files.

I don't know if GNU folks will accept this issue as a bug for glibc-2.3.4.

While there's only a small part of people using this new glibc version, this is
not a real big issue, but when major distros start to upgrade it, i see this as
a real nightmare.

Any advice?

Thanks.

-- 
Alexandre Hautequest

----------------------------------------------------------------
Mensagem Enviada utilizando o Onda Mail.
http://www.onda.com.br
Onda Provedor de Servicos S/A




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]