Closed Bug 201836 Opened 22 years ago Closed 22 years ago

build fails when using gtk2 and libIDL-2 is not installed

Categories

(SeaMonkey :: Build Config, defect)

x86
Linux
defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.4beta

People

(Reporter: bugzilla, Assigned: netscape)

Details

Attachments

(3 files)

User-Agent: Mozilla/5.0 Galeon/1.2.5 (X11; Linux i686; U;) Gecko/20020605 Build Identifier: Mozilla/5.0 Galeon/1.2.5 (X11; Linux i686; U;) Gecko/20020605 On Slackware 8.1: Linux 2.4.19 i686 compiling from source, mozilla-source-1.3.tar.bz2 build crashes Reproducible: Always Steps to Reproduce: 1) ./configure --host=i686-linux --build=i686-linux --disable-mailnews --disable-debug --enable-optimize --enable-crypto --enable-default-toolkit=gtk2 2) make Actual Results: <SNIP> gcc -o xpidl.o -c -DOSTYPE=\"Linux2.4\" -DOSARCH=\"Linux\" -DOJI -I../../../dist/include/xpcom -I../../../dist/include -I/usr/local/src/mozilla/dist/include/nspr -I/usr/X11R6/include -fPIC -I/usr/X11R6/include -Wall -W -Wno-unused -Wpointer-arith -Wcast-align -pedantic -Wno-long-long -pthread -pipe -DNDEBUG -DTRIMMED -O -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/orbit-1.0 -I/usr/X11R6/include -include ../../../mozilla-config.h -DMOZILLA_CLIENT -Wp,-MD,.deps/xpidl.pp xpidl.c In file included from xpidl.c:42: xpidl.h:53: libIDL/IDL.h: No such file or directory In file included from xpidl.h:49, from xpidl.c:42: /usr/include/glib-1.2/glib.h:1573: warning: ANSI does not permit the keyword `inline' /usr/include/glib-1.2/glib.h:1576: warning: ANSI does not permit the keyword `inline' /usr/include/glib-1.2/glib.h:1591: warning: ANSI does not permit the keyword `inline' /usr/include/glib-1.2/glib.h:1594: warning: ANSI does not permit the keyword `inline' /usr/include/glib-1.2/glib.h:1611: warning: ANSI does not permit the keyword `inline' /usr/include/glib-1.2/glib.h:1613: warning: ANSI does not permit the keyword `inline' In file included from /usr/include/string.h:360, from xpidl.h:50, from xpidl.c:42: /usr/include/bits/string2.h: In function `__strcpy_small': /usr/include/bits/string2.h:428: warning: pointer of type `void *' used in arithmetic /usr/include/bits/string2.h:436: warning: pointer of type `void *' used in arithmetic /usr/include/bits/string2.h:441: warning: pointer of type `void *' used in arithmetic /usr/include/bits/string2.h:446: warning: pointer of type `void *' used in arithmetic /usr/include/bits/string2.h:448: warning: pointer of type `void *' used in arithmetic /usr/include/bits/string2.h:453: warning: pointer of type `void *' used in arithmetic In file included from xpidl.c:42: xpidl.h: At top level: xpidl.h:132: parse error before `IDL_ns' xpidl.h:132: warning: no semicolon at end of struct or union xpidl.h:133: warning: type defaults to `int' in declaration of `tree' xpidl.h:133: ANSI C forbids data definition with no type or storage class xpidl.h:137: parse error before `}' xpidl.h:137: warning: ANSI C does not allow extra `;' outside of a function xpidl.h:151: parse error before `p' xpidl.h:236: parse error before `find_underlying_type' xpidl.h:236: parse error before `typedef_ident' xpidl.h:236: warning: type defaults to `int' in declaration of `find_underlying_type' xpidl.h:236: ANSI C forbids data definition with no type or storage class xpidl.h:243: parse error before `const_tree' xpidl.h:249: parse error before `method_tree' xpidl.h:255: parse error before `method_tree' xpidl.h:261: parse error before `method_tree' make[4]: *** [xpidl.o] Error 1 make[4]: Leaving directory `/usr/local/src/mozilla/xpcom/typelib/xpidl' make[3]: *** [export] Error 2 make[3]: Leaving directory `/usr/local/src/mozilla/xpcom/typelib' make[2]: *** [export] Error 2 make[2]: Leaving directory `/usr/local/src/mozilla/xpcom' make[1]: *** [tier_2] Error 2 make[1]: Leaving directory `/usr/local/src/mozilla' make: *** [default] Error 2 Expected Results: built the software I've not been able to build any of the 1.3x from source, for one reason or another...
oh, yeah... gcc 2.95.3
xpidl.h:53: libIDL/IDL.h: No such file or directory That's the problem. I don't know how you managed to get passed the configure test for libIDL if you dont' have it installed. Can you provide a log of the configure run as well as config.log?
Attached file config.log
fwiw: # locate libIDL | grep -v mozilla /var/log/removed_packages/libIDL-dropline-0.8.0-i386-1 /var/log/removed_scripts/libIDL-dropline-0.8.0-i386-1 /usr/bin/libIDL-config /usr/doc/ORBit-0.5.17/libIDL /usr/doc/ORBit-0.5.17/libIDL/BUGS /usr/doc/ORBit-0.5.17/libIDL/NEWS /usr/doc/ORBit-0.5.17/libIDL/README /usr/doc/ORBit-0.5.17/libIDL/AUTHORS /usr/doc/ORBit-0.5.17/libIDL/INSTALL /usr/doc/ORBit-0.5.17/libIDL/ChangeLog /usr/doc/ORBit-0.5.17/libIDL/COPYING /usr/lib/pkgconfig/libIDL.pc /usr/lib/libIDL-0.6.so.0 /usr/lib/libIDL.la /usr/lib/libIDL.so /usr/lib/libIDL-0.6.so.0.4.4 /usr/lib/libIDL.a /usr/lib/libIDLConf.sh /usr/info/libIDL.info.gz /usr/share/aclocal/libIDL.m4 /usr/include/libIDL-1.0 /usr/include/libIDL-1.0/libIDL /usr/include/libIDL-1.0/libIDL/IDL.h
Ok, that's odd. You're trying to build against gtk2 but it can't find libIDL 2 so it falls back to looking for libIDL 1 except that it skips the libIDL check and find the wrong orbit-config instead. Blizzard, why do we even bother falling back to libIDL-1 for a gtk2 build?
Status: UNCONFIRMED → NEW
Ever confirmed: true
That setup still seems odd. What is /usr/lib/libIDL.so symlinked to? What does /usr/lib/pkgconfig/libIDL.pc think its version is? The libIDL 2 header seems to be there but not the libs? (I don't use gtk2 so I have no idea what the libIDL-2 libs are versioned as.)
Summary: can't build on linux -- compile errors in xpidl.h → build fails when using gtk2 and libIDL-2 is not installed
$ ll /usr/lib/libIDL* lrwxrwxrwx 1 root root 19 Sep 16 2002 /usr/lib/libIDL-0.6.so.0 -> libIDL-0.6.so.0.4.4* -rwxr-xr-x 1 root root 147272 Jun 8 2002 /usr/lib/libIDL-0.6.so.0.4.4* -rw-r--r-- 1 root root 183724 Jun 8 2002 /usr/lib/libIDL.a -rwxr-xr-x 1 root root 735 Jun 8 2002 /usr/lib/libIDL.la* lrwxrwxrwx 1 root root 19 Sep 16 2002 /usr/lib/libIDL.so -> libIDL-0.6.so.0.4.4* -rw-r--r-- 1 root root 254 Jun 8 2002 /usr/lib/libIDLConf.sh $ cat /usr/lib/pkgconfig/libIDL.pc prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: libIDL Description: IDL parsing library Version: 0.6.8 Requires: glib Libs: -L${libdir} -lIDL Cflags: -I${includedir}
compiles and runs after installing libIDL-0.8.0 from source thanks!
Comment on attachment 120393 [details] [diff] [review] Fix fallback checks Blizzard, is there any problem with using libIDL-1 when building against gtk2 (keeping in mind that libIDL is just used for xpidl)? Should we make the failure to find libIDL-2 a fatal error?
Attachment #120393 - Flags: review?(blizzard)
I think the sun folks did that work, so I don't remember why it should fall back.
Oh, I think the idea was that the sun folks wanted to be able to build in an environment without gtk1.2 installed.
It might due to bug 156593
Of course, libIDL has nothing to do with gtk1.2 but I'm not getting into that again. Do we want to support building with gtk2 and libIDL-1 or do we want to force the use of libIDL-2 when building with gtk2 ?
It's up to you. There's no run-time dependency for the browser, just for the utilities that do IDL -> header file conversions at build time.
Patch has been checked in.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.4beta
Attachment #120393 - Flags: review?(blizzard)
Has anyone who knows what they're doing tested this? I've never built before. I still haven't successfully, as, using today's http://ftp.mozilla.org/pub/mozilla/nightly/latest-trunk/mozilla-source.tar.gz I get the error: The libIDL-config script installed by libIDL could not be found . . . This is the same error I got on Friday, before the fix to this bug landed. In /usr/lib I found only libIDL-config-2, no /usr/lib/libIDL-config. I symlinked the latter to the former, but the build failed with: Could not run libIDL test program . . . These are my Mandrake 9.0 gtk & glib installed packages: glibc-2.2.5-16mdk glibc-devel-2.2.5-16mdk glibc-i18ndata-2.2.5-16mdk glibc_lsb-2.2.90-11mdk glibc-static-devel-2.2.5-16mdk glib-gettextize-2.0.6-2mdk gtk+2.0-2.0.6-8mdk gtkdialogs-1.2-3mdk gtk-engines-0.12-3mdk gtkhtml-1.0.4-4mdk gtk+mdk-0.1.6-12mdk libIDL2_0-0.8.0-1mdk libIDL2_0-devel-0.8.0-1mdk libglib1.2-1.2.10-6mdk libglib2.0_0-2.0.6-2mdk libglib2.0_0-devel-2.0.6-2mdk libgtk+1.2-1.2.10-29mdk libgtk+2.0_0-2.0.6-8mdk libgtk+2.0_0-devel-2.0.6-8mdk libgtkglarea5-1.2.3-4mdk libgtkhtml20-1.0.4-4mdk libgtk+-x11-2.0_0-2.0.6-8mdk libgtkxmhtml1-1.4.2-1mdk pygtk-0.6.9-3mdk pygtk-glarea-0.6.9-3mdk pygtk-libglade-0.6.9-3mdk
You only have libIDL-2 installed. Given that you neglected to provide the configure options you used, I'm going to assume that you're attempting to build against gtk (the default) so the test failed since gtk1 builds requires libIDL1.
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: