trying emerge with new use (USE=gcj): localhost ~ # emerge -pv gcc These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] sys-devel/gcc-4.0.2-r1 (-altivec) -bootstrap -boundschecking -build -fortran +gcj* +gtk* -hardened -ip28 (-multilib) +multislot* (-n32) (-n64) +nls -nocxx -nopie +objc* -static -vanilla 0 kB /media/sda5/xxx/portage/gcc-4.0.2-r1/work/build/gcc/xgcc -B/media/sda5/xxx/portage/gcc-4.0.2-r1/work/build/gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include -DHAVE_CONFIG_H -I. -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava -I./include -I./gcj -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava -Iinclude -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/include -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/../boehm-gc/include -I../boehm-gc/include -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/libltdl -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/libltdl -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/.././libjava/../gcc -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/../libffi/include -I../libffi/include -Ijniinclude -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/classpath -I/media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer -ansi -pedantic -Wall -Wno-long-long -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libart-2.0 -O2 -march=pentium3 -O2 -pipe -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.lo -MD -MP -MF jni/gtk-peer/.deps/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.Tpo -c /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c -fPIC -DPIC -o jni/gtk-peer/.libs/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.o In file included from /usr/include/pango-1.0/pango/pangofc-font.h:25, from /usr/include/pango-1.0/pango/pangoft2.h:29, from /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gdkfont.h:46, from /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:42: /usr/include/ft2build.h:56:38: error: freetype/config/ftheader.h: No such file or directory In file included from /usr/include/pango-1.0/pango/pangoft2.h:29, from /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gdkfont.h:46, from /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:42: /usr/include/pango-1.0/pango/pangofc-font.h:26:10: error: #include expects "FILENAME" or <FILENAME> In file included from /usr/include/pango-1.0/pango/pangoft2.h:29, from /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gdkfont.h:46, from /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:42: /usr/include/pango-1.0/pango/pangofc-font.h:144: error: syntax error before 'pango_fc_font_lock_face' /usr/include/pango-1.0/pango/pangofc-font.h:144: warning: type defaults to 'int' in declaration of 'pango_fc_font_lock_face' /usr/include/pango-1.0/pango/pangofc-font.h:144: warning: data definition has no type or storage class In file included from /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gdkfont.h:46, from /media/sda5/xxx/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:42: /usr/include/pango-1.0/pango/pangoft2.h:48: error: syntax error before '*' token /usr/include/pango-1.0/pango/pangoft2.h:53: error: syntax error before '*' token /usr/include/pango-1.0/pango/pangoft2.h:60: error: syntax error before '*' token /usr/include/pango-1.0/pango/pangoft2.h:64: error: syntax error before '*' token /usr/include/pango-1.0/pango/pangoft2.h:68: error: syntax error before '*' token /usr/include/pango-1.0/pango/pangoft2.h:72: error: syntax error before '*' token /usr/include/pango-1.0/pango/pangoft2.h:103: error: syntax error before 'pango_ft2_font_get_face' /usr/include/pango-1.0/pango/pangoft2.h:103: warning: type defaults to 'int' in declaration of 'pango_ft2_font_get_face' /usr/include/pango-1.0/pango/pangoft2.h:103: warning: data definition has no type or storage class make[3]: *** [jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.lo] Error 1 make[3]: Leaving directory `/media/sda5/xxx/portage/gcc-4.0.2-r1/work/build/i686-pc-linux-gnu/libjava' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/media/sda5/xxx/portage/gcc-4.0.2-r1/work/build/i686-pc-linux-gnu/libjava' make[1]: *** [all-target-libjava] Error 2 make[1]: Leaving directory `/media/sda5/xxx/portage/gcc-4.0.2-r1/work/build' make: *** [profiledbootstrap] Error 2 !!! ERROR: sys-devel/gcc-4.0.2-r1 failed. !!! Function gcc_do_make, Line 1308, Exitcode 2 Checking for missed header: localhost ~ # locate ftheader.h /usr/include/freetype2/freetype/config/ftheader.h localhost ~ # emerge -pv freetype pango cairo These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] media-libs/freetype-2.1.10 -bindist +doc +zlib 0 kB [ebuild R ] x11-libs/pango-1.10.1 -debug +doc 0 kB [ebuild R ] x11-libs/cairo-1.0.2 +X +doc +glitz +png 0 kB
from ft2build.h #ifndef __FT2_BUILD_UNIX_H__ #define __FT2_BUILD_UNIX_H__ /* "<prefix>/include/freetype2" must be in your current inclusion path */ #include <freetype/config/ftheader.h> #endif /* __FT2_BUILD_UNIX_H__ */ /* END */
localhost ~ # etcat -v freetype [ Results for search key : freetype ] [ Candidate applications found : 4 ] Only printing found installed programs. * media-libs/freetype : [ ] 1.3.1-r4 (1) [ I] 1.3.1-r5 (1) [ ] 2.1.9-r1 (2) [ I] 2.1.10 (2)
only stupid solution maybe helpful for immediatly building :( do it temporary for build gcc only: mv /usr/include/freetype /usr/include/freetype.1.3 ln -s /usr/include/freetype2/freetype /usr/include/freetype and rollback after rm -rf /usr/include/freetype mv /usr/include/freetype.1.3 /usr/include/freetype
localhost portage # emerge info Portage 2.0.53_rc5 (default-linux/x86/2005.1, gcc-4.0.2, glibc-2.3.5.20050722-r0, 2.6.14-rc3-nitro1 i686) ================================================================= System uname: 2.6.14-rc3-nitro1 i686 AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.12.0_pre9 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [disabled] dev-lang/python: 2.3.4-r1, 2.4.2 sys-apps/sandbox: 1.2.13 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.91.0.3 sys-devel/libtool: 1.5.20 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS=" -march=pentium3 -O2 -pipe -fomit-frame-pointer -ffast-math" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /opt/openjms/config /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/splash /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS=" -march=pentium3 -O2 -pipe -fomit-frame-pointer -ffast-math -fvisibility-inlines-hidden" DISTDIR="/media/hda9/gentoo/distfiles" FEATURES="autoconfig distlocks prelink sandbox sfperms strict strip" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_US.UTF-8" LINGUAS="ru" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/media/sda5/xxx" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/local/bmg-main" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 7zip X a52 aac aalib acl acpi adns alsa amuled ao apache2 artworkextra asterisk atm audiofile avi bash-completion berkdb bidi bitmap-fonts bluetooth browserplugin bzip2 cairo caps cdda cddb cdparanoia cdr cflags chm chroot cjk corba crypt cups curl custom-cflags daap dbus dga dhcp djbfft doc dts dv dvb dvd dvdr dvdread dxr3 dynagraph ecc edl eds emacs encode evo exif expat extensions fame fat fbcon fbsplash ffmpeg firefox flac foomaticdb freetype gcj gd gdbm ggi gif gimpprint glitz gmail gnome gnutls gpm graphviz gsf gsm gtk gtk2 gtkhtml hal hfs howl httpd iconv idea ieee1394 imagemagick imap imlib innodb iproute2 irda irmc ithreads jack java javascript jfs jpeg kerberos ladcca ladspa lcms ldap libcaca libclamav libgda libsamplerate lirc live lmtp logrotate lzo mad maildir mailwrapper maps matroska mbox mbrola md5sum mdb mh mikmod mjpeg mmx mng mod mono motif mozdevelop mozilla moznocompose moznoirc moznomail mozsvg mp3 mpeg mppe-mppc multislot multitarget music mysql nas nautilus ncurses network nls nntp nocd nptl nptlonly nsplugin ntfs numeric nvidia objc odbc ogg oggvorbis opengl osc oss pam pam_console pcmcia pda pdflib perl pic plotutils png pop3 portaudio postgres ppds pwdb python qt quicktime quotas radius readline real reiserfs remote rtc samba sblive screen sdl sensord sftplogging silc skey slang slic slp smartcard sms socks5 sounds speex spell srv sse ssl stats stream svg svga syslog tcltk tetex theora threads tiff truetype truetype-fonts unicode usb v4l v4l2 vcd vidix vlm vorbis webservices win32codecs winbind wmf wxwindows xanim xbase xchatdccserver xfs xine xml xml2 xprint xv xvid xvmc yv12 zlib linguas_ru userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LC_ALL, LDFLAGS
Same happening on my system. What actually happens is, that the include path is missind (no -I/usr/include/freetype2) ... I am not sure, if the issue is freetype version dependant, but how about patching the Makefile.in (or configure.in/whatever) that's in the directory, to include the path ?
Okay, here's some diagnostics .... In configure.ac there is: if test "x${enable_gtk_cairo}" = xyes then PKG_CHECK_MODULES(CAIRO, cairo) PKG_CHECK_MODULES(PANGOFT2, pangoft2) fi AC_SUBST(CAIRO_LIBS) AC_SUBST(CAIRO_CFLAGS) AC_SUBST(PANGOFT2_LIBS) AC_SUBST(PANGOFT2_CFLAGS) okay, we have a check for pangoft2 (do a package-config pangoft2) and, PKG_CHECK_MODULES checks for lib and cflags and sets up the 'variables' PANGOFT2_CFALGS etc. - if you do a pkg-config pangoft2, you will see, that there is an -I/usr/include/freetype2 Assuming the if statement evaluates to true ... In the Makefile am, there is: lib_gnu_java_awt_peer_gtk_la_CFLAGS = \ -Ijniinclude -I$(srcdir)/jni/classpath \ -I$(srcdir)/jni/gtk-peer $(PEDANTIC_CFLAGS) $(GTK_CFLAGS) $(LIBART_CFLAGS) \ $(X_CFLAGS) $(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS) which seems to be sane too .. since the pangoft cflags are added ... In Makefile.in: PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ This seems to be sane to ... and at some other point lib_gnu_java_awt_peer_gtk_la_CFLAGS = \ -Ijniinclude -I$(srcdir)/jni/classpath \ -I$(srcdir)/jni/gtk-peer $(PEDANTIC_CFLAGS) $(GTK_CFLAGS) $(LIBART_CFLAGS) \ $(X_CFLAGS) $(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS) which seems to add the cflags (namely -I/usr/include/freetype2) The error: /var/tmp/portage/gcc-4.0.2-r1/work/build/gcc/xgcc -B/var/tmp/portage/gcc-4.0.2-r1/work/build/gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include -DHAVE_CONFIG_H -I. -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava -I./include -I./gcj -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava -Iinclude -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/include -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/../boehm-gc/include -I../boehm-gc/include -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/libltdl -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/libltdl -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/.././libjava/../gcc -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/../libffi/include -I../libffi/include -Ijniinclude -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/classpath -I/var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer -ansi -pedantic -Wall -Wno-long-long -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libart-2.0 -O2 -O2 -mtune=pentium4 -march=pentium4 -pipe -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.lo -MD -MP -MF jni/gtk-peer/.deps/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.Tpo -c /var/tmp/portage/gcc-4.0.2-r1/work/gcc-4.0.2/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c -fPIC -DPIC -o jni/gtk-peer/.libs/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.o I see the pango include as well as the cairo include etc. but I can't the the include path -I/usr/include/freetype2 unfortunately, I seem incapable of finding the actual Makefile that is used ... to see if the include were set up completely, this is a little confusing ... So, the question that remains is, why do Makefile.am and configure.ac look okay, but the correpspondig -I flag is missing during compilation - maybe someone can help on this ?
Okay, I looked further into the problem and came to this conclusion: if test "x${enable_gtk_cairo}" = xyes then PKG_CHECK_MODULES(CAIRO, cairo) PKG_CHECK_MODULES(PANGOFT2, pangoft2) fi only evaluates to true if --enable-gtk-cairo is passed to configure, unfortunately the cairo relevant sourcs won't compile to various syntax etc. errors ... on the other hand if awt-gtk ist used, the file gnu_java_awt_peer_gtk_GdkTextLayout.c needs do be compiled, which include gdkfont.h and as a result tries to include freetype ... unfortunately the corrsponding -I flag only gets included if --enable-gtk-cairo ist passed to configure ... if I want to use gtk, but not cairo (though still using fretype) the flags don't get set up properly ... I think the configure.ac needs to be patches from: if test "x${enable_gtk_cairo}" = xyes then PKG_CHECK_MODULES(CAIRO, cairo) PKG_CHECK_MODULES(PANGOFT2, pangoft2) fi to: if test "x${enable_gtk_cairo}" = xyes then PKG_CHECK_MODULES(CAIRO, cairo) fi PKG_CHECK_MODULES(PANGOFT2, pangoft2) since the pango freetype cflags are alwqays needed when building with gtk ... Maybe the maintainer of the package could provide a fix/patch for this and include it in the ebuild, since it's a little tricky to realize this ....
sounds about right looks like http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22889
Created attachment 72979 [details, diff] gcc4-pr22889.patch i never use gcj/java/etc... so can someone test this patch for me ? just put it into your $FILESDIR and add an 'epatch $FILESDIR/gcc4-pr22889.patch' line to the end of src_unpack() in the gcc-4 ebuild
patch is good!!
Strike last post :( after further upgrade we end up at another error. I will try to post the error before tonight.
is it a linking error about missing symbols that come from an X lib ?
after update to gtk-2.8.6-r1 this morning I am unable to recreate the error. it was a gtk link issue that was causing error all seems well and gcj is built on this system now.
can any other gcj users test this ?
The patch worked for my, I am just emerging gtk-2.8.7, so I can't check on the 2.6.8-r1 specific issue - sorry ... bte, I had the same issue with gcc-4.1beta, unfortunately for some reason I cannot explain, the patch doesn'T seem to work there ... but I will look into this during the weekend I think ...
thanks for testing; patch has been added to our current 4.0 patchset and will be in next release
The current 34_all_gcc4-pr22889.patch is playing havoc when pango is not installed and USE="gcj -gtk": checking for IceConnectionNumber in -lICE... yes checking for pkg-config... /usr/bin/pkg-config checking for pangoft2... Package pangoft2 was not found in the pkg-config search path. Perhaps you should add the directory containing `pangoft2.pc' to the PKG_CONFIG_PATH environment variable No package 'pangoft2' found configure: error: Library requirements (pangoft2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them. make[2]: *** [configure-target-libjava] Error 1 make[2]: Leaving directory `/var/tmp/portage/gcc-4.1.0/work/build' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/gcc-4.1.0/work/build' make: *** [profiledbootstrap] Error 2 I don't think we should be checking for pangoft2 unless the gtk peer is specified.
Created attachment 85751 [details, diff] updated gcc4-pr22889.patch Find attached an attempt at 34_all_gcc4-pr22889.patch parte deux.
I've just removed this patch since it isn't applied upstream any longer. The cairo issues shouldn't be a problem anymore since the stable versions of pango all use cairo.