Bug 75806 - eclipse-sdk-3.1_pre4, pre5, fail to build on amd64
Bug#: 75806 Product:  Gentoo Linux Version: unspecified Platform: AMD64
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: dev-tools@gentoo.org Reported By: gentoo@streamonix.com
Component: Development
URL: 
Summary: eclipse-sdk-3.1_pre4, pre5, fail to build on amd64
Keywords:  
Status Whiteboard: 
Opened: 2004-12-27 08:42 0000
Description:   Opened: 2004-12-27 08:42 0000
The eclipse-sdk-3.1_pre4.ebuild fails on amd64 systems (64-bit mode). This bug
was also present in eclipse-sdk-3.1_pre3. 

Also see:
http://forums.gentoo.org/viewtopic.php?t=248171&highlight=eclipsesdk

Reproducible: Always
Steps to Reproduce:
1. echo "dev-utils/eclipse-sdk ~amd64" >> /etc/portage/package.keywords
2. emerge eclipse-sdk
3.

Actual Results:  
 * Building gtk+ SWT
Building Linux launcher. Defaults: -os linux -arch amd64 -ws gtk
rm -f eclipse-gtk eclipse.o eclipseUtil.o eclipseShm.o eclipseConfig.o
eclipseGtk.o
gcc -O -s -fpic -DMOZILLA_FIX -DDEFAULT_OS="\"linux\""
-DDEFAULT_OS_ARCH="\"amd64\"" -DDEFAULT_WS="\"gtk\"" -I. -I.. `pkg-config
--cflags gtk+-2.0` -c ../eclipse.c -o eclipse.o
gcc -O -s -fpic -DMOZILLA_FIX -DDEFAULT_OS="\"linux\""
-DDEFAULT_OS_ARCH="\"amd64\"" -DDEFAULT_WS="\"gtk\"" -I. -I.. `pkg-config
--cflags gtk+-2.0` -c ../eclipseUtil.c -o eclipseUtil.o
gcc -O -s -fpic -DMOZILLA_FIX -DDEFAULT_OS="\"linux\""
-DDEFAULT_OS_ARCH="\"amd64\"" -DDEFAULT_WS="\"gtk\"" -I. -I.. `pkg-config
--cflags gtk+-2.0` -c ../eclipseShm.c -o eclipseShm.o
gcc -O -s -fpic -DMOZILLA_FIX -DDEFAULT_OS="\"linux\""
-DDEFAULT_OS_ARCH="\"amd64\"" -DDEFAULT_WS="\"gtk\"" -I. -I.. `pkg-config
--cflags gtk+-2.0` -c ../eclipseConfig.c -o eclipseConfig.o
gcc -O -s -fpic -DMOZILLA_FIX -DDEFAULT_OS="\"linux\""
-DDEFAULT_OS_ARCH="\"amd64\"" -DDEFAULT_WS="\"gtk\"" -I. -I.. `pkg-config
--cflags gtk+-2.0`   -c -o eclipseGtk.o eclipseGtk.c
gcc -o eclipse-gtk eclipse.o eclipseUtil.o eclipseShm.o eclipseConfig.o
eclipseGtk.o `pkg-config --libs-only-L gtk+-2.0` -lgtk-x11-2.0 -lgdk_pixbuf-2.0
-lgobject-2.0 -lgdk-x11-2.0
/usr/lib/portage/bin/ebuild.sh: line 399: cd:
/var/tmp/portage/eclipse-sdk-3.1_pre4/work/eclipse-sdk-3.1_pre4/plugins/org.eclipse.swt.gtk64/src/Eclipse
SWT PI/gtk/library: No such file or directory
./build64.sh: ./build64.sh: No such file or directory

!!! ERROR: dev-util/eclipse-sdk-3.1_pre4 failed.
!!! Function build-gtk-native, Line 406, Exitcode 127
!!! Failed to build platform-independent SWT support
!!! If you need support, post the topmost build error, NOT this status message.


Expected Results:  
error-free emerge

Portage 2.0.51-r3 (default-linux/amd64/2004.3, gcc-3.4.3,
glibc-2.3.4.20040808-r1, 2.6.10-gentoo-r1 x86_64)
=================================================================
System uname: 2.6.10-gentoo-r1 x86_64 Mobile AMD Athlon 64 Processor 2800+
Gentoo Base System version 1.4.16
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.15.90.0.1.1-r3
Headers:  sys-kernel/linux26-headers-2.6.8.1-r1
Libtools: sys-devel/libtool-1.5.2-r7
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CFLAGS="-march=k8 -O3 -pipe -ftracer"
CHOST="x86_64-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=k8 -O3 -pipe -ftracer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks fixpackages sandbox strict
userpriv"
GENTOO_MIRRORS="http://gentoo.osuosl.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 X X509 aac aalib acl acpi adns aliaschain alsa antlr audiofile bcel
berkdb bindist bitmap-fonts bonobo bsh canna caps cddb cdparanoia cdr chasen
cjk
cnamefix crypt cups dga djbfft dnd dv dvb dvd dvdr dvdread edl encode erandom
expat f77 faac faad fam fbcon flac flash fltk foomaticdb fortran freetype
freewnn fs fwdzone gdbm ggi gif gimpprint gnome gnomedb gpm gstreamer gtk gtk2
gtkhtml hbci idea imagemagick imap imlib imlib2 ipv6 jack jack-tmpfs java
javamail javascript jbig jce jdepend jikes jp2 jpeg jsch junit kakasi lcd lcms
ldap libgda lirc log4j ltsp lzw lzw-tiff mad md5sum mikmod mmap motif mpeg
multilib multipleip nas ncurses nls noantlr nocd nopri nptl oggvorbis openal
opengl openssh optional-tasks oro pam perl pg-intdatetime plotutils png
portaudio postgres ppds python qt readline regexp rhino rtc sdl semanticfix
slang slp sndfile spell sqlite ssl tcltk tcpd theora tiff transcode truetype
type1 unicode usb userlocales v4l2 wmf wxwindows xalan xerces xface xml xml2
xmms xpm xprint xrandr xv xvid zlib"

------- Comment #1 From Rahul Rekapalli 2005-01-10 11:18:38 0000 -------
*** Bug 76529 has been marked as a duplicate of this bug. ***

------- Comment #2 From Benedikt Huber 2005-02-27 07:00:35 0000 -------
same with pre5. 
Someone compiled eclipse-3.1 successfully on amd64 ?

------- Comment #3 From Karl Trygve Kalleberg (RETIRED) 2005-03-03 03:44:56 0000 -------
An amd64 user claimed removing the 64 in build64.sh solved the issue, but I
have my doubts. I have no amd64 to test it on, and I don't think the dev-tools
herd as a whole has either. 

I have removed the amd64 keyword on this package for now.

------- Comment #4 From Karl Trygve Kalleberg (RETIRED) 2005-03-03 03:45:46 0000 -------
If you amd64 guys want to have a bash at getting this built on amd64 again,
knock yourselves out.

------- Comment #5 From Mikko Tiihonen 2005-03-29 22:23:52 0000 -------
At least for eclipse 3.0.1->3.0.2 the build64.sh was changed to build.sh for
amd64 making it the same for all architectures.

While creating the ebuild for 3.0.2 I had to heavily modify all other parts of
the patching of build scripts to get it to work so that might not be enough.

I'll try to see if I can get the 3.1M5 to build on amd64 too.

------- Comment #6 From Mikko Tiihonen 2005-04-05 22:56:25 0000 -------
Created an attachment (id=55436) [details]
My current try at eclipse 3.1 M6 ebuild

Ebuild that compiles on amd64 + java5.
Unfortunately I still cannot get it to run as it complains about a missing
memmove in native library.

------- Comment #7 From Mikko Tiihonen 2005-04-05 22:58:14 0000 -------
Created an attachment (id=55437) [details]
Patch to fix compiling with java5 (fixed yestreday in eclipse cvs)

------- Comment #8 From Karl Trygve Kalleberg (RETIRED) 2005-04-08 11:44:54 0000 -------
Mikko, can you update your patches to be against the current M6 that I
committed two days ago? I'm sorry for not having an amd64 to do this myself.

------- Comment #9 From Mikko Tiihonen 2005-04-14 23:07:15 0000 -------
Created an attachment (id=56321) [details]
Patch against current 3.1_pre6 ebuild to enable java5.0 and amd64 support

------- Comment #10 From Jan Brinkmann (RETIRED) 2005-04-15 11:09:03 0000 -------
ok, i'm going to take care of this. currently compiling gcc4 as it's a
dependency for 3.1_pre6 with gcj enabled :-)

------- Comment #11 From Jan Brinkmann (RETIRED) 2005-04-15 13:31:21 0000 -------
doesnt work on amd64 with the blackdown-jdk-1.4.2.01 out of the box:

 * Building AWT support
cc -O -Wall -DSWT_VERSION=3128  -DLINUX -DGTK -I/opt/blackdown-jdk-1.4.2.01/include -fpic -DSWT_PTR_SIZE_64 -I/opt/blackdown-jdk-1.4.2.01/include -I/opt/blackdown-jdk-1.4.2.01/include/linux   -c -o swt_awt.o swt_awt.c
ld -L/opt/blackdown-jdk-1.4.2.01/jre/lib/x86_64 -ljawt -shared -o libswt-awt-gtk-3128.so swt_awt.o
ld: cannot find -ljawt
make: *** [libswt-awt-gtk-3128.so] Error 1

!!! ERROR: dev-util/eclipse-sdk-3.1_pre6 failed.
!!! Function build-native, Line 309, Exitcode 2
!!! Failed to build AWT support
!!! If you need support, post the topmost build error, NOT this status message.


i've already located the problem, /opt/blackdown-jdk-1.4.2.01/jre/lib/x86_64 is added to the classpath where it should be /opt/blackdown-jdk-1.4.2.01/jre/lib/amd64. will try to make build possible. maybe you want to contact me on irc? would be nice, just join #gentoo-java on irc.freenode.net . however, will investigate more time into this tomorrow.

------- Comment #12 From Steve Olivieri 2005-04-30 20:12:12 0000 -------
Created an attachment (id=57699) [details]
Working ebuild for x86_64 with Java 1.5

I used this ebuild to compile eclipse-sdk-3.1_pre6 on an x86 machine with Java
1.5 and it worked perfectly.  I also used it to compile the same package on an
amd64 machine with Java 1.5 and it compiled flawlessly.  However, when
attempting to run it as a regular user, I received the following error (copied
from the log):

!SESSION 2005-04-30 17:36:56.613
-----------------------------------------------eclipse.buildId=unknown
java.version=1.5.0_02
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY org.eclipse.osgi 2005-04-30 17:36:56.637
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: No application id has been found.
	at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:206)


When running as root, I received a different error, as follows, but not the
above user error:

!SESSION 2005-04-30 23:07:58.43
------------------------------------------------eclipse.buildId=Gentoo Linux
eclipse-sdk-3.1_pre6
java.version=1.5.0_02
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY org.eclipse.osgi 2005-04-30 23:07:58.44
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3128 in java.library.path


In addition, I edited the ebuild to work with both mozilla and mozilla-firefox,
finally.

------- Comment #13 From Sean Lynn 2005-05-01 18:37:59 0000 -------
Having the same problem as Steve...  Tracked this down a bit though.

Version 3.0.2 has the following directory installed:

    /usr/lib/eclipse-3/plugins/org.eclipse.swt.gtk64_3.0.2/os/linux/amd64

which contains the libs:

    libswt-atk-gtk-3064.so
    libswt-gtk-3064.so
    libswt-gnome-gtk-3064.so
    libswt-pi-gtk-3064.so

Version 3.1_pre6 does not have this directory in the install, but does have:

    /usr/lib/eclipse-3.1/plugins/org.eclipse.swt.gtk64_3.1.0.jar

which does not contain the shared libs.  I've searched through all existing installed jars for the missing libs and cannot find them.

However, during the build these libraries _do_ exist: 

ebuild eclipse-sdk-3.1_pre6 compile creates the libs in

    ./eclipse-sdk-3.1_pre6/plugins/org.eclipse.swt.gtk/os/linux/x86_64/

Haven't tracked down why the libs aren't being jar'd, but figured I'd pass the 
information on.  Hope this helps somebody.

------- Comment #14 From Jacob Quinn Shenker 2005-05-10 15:43:41 0000 -------
Hey guys. I am trying to get eclipse on java 5.0 working. The ebuild compiled
on 1.4 (blackdown), although not on 5 (not sure why, using jrockit). Is eclipse
3.1 supposed to RUN on 5 or COMPILE on it? Anyway, that's not the issue. The
last post says that swt libs are missing. I have that problem too. Well, I
downloaded the amd64/GTK binary from eclipse.org, and behold... it was missing
there too, but the BINARY STILL RAN! So, the "problem" is a) not a problem and
b) is buried in the ant script, possibly. Although I'm a linux/java newbie, I
found that the "org.eclipse.swt.gtk/os/linux/x86_64/" folder is packaged in the
"org.eclipse.swt.gtk64_3.1.0.jar" file. Unpackaging doesn't help. Is the
CLASSPATH  the problem? Good luck! I want my java5/eclipse!

------- Comment #15 From Jacob Quinn Shenker 2005-05-10 16:14:56 0000 -------
I'm sorry, the compiliation issue with java 5 is actually not an issue, just
that jikes didn't compile it with the 5 jdk. Compiling with plain old javac on
jrockit-5 worked like a charm, the swt lib is still a problem.

------- Comment #16 From Karl Trygve Kalleberg (RETIRED) 2005-07-13 07:00:38 0000 -------
The 3.1 final release is available for testing on amd64. Please test that, and
open a new bug (with relevant patches, if possible) should it fail.