First Last Prev Next    No search results available      Search page      Enter new bug
Bug#: 183526
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: dotnet AT gentoo DOT org <dotnet@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Stefan Stroe <stroestefan@gmail.com>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
ikvm-0.34.0.2.ebuild ikvm ebuild with javac instead of ecj text/plain Jurek Bartuszek 2007-06-28 23:39 0000 1.21 KB Details
ikvm-0.34.0.2.ebuild ikvm ebuild modified with javac heap increased to 256M text/plain Bernie Hackett 2007-06-29 02:08 0000 1.23 KB Details
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 183526 depends on: Show dependency tree
Show dependency graph
Bug 183526 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)







View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2007-06-28 14:17 0000
When emerging monodevelop-0.12 (with java use flag enabled) the dependency
requires ikvm-0.34.0.2.
When emerging ikvm here is what finally happens:
__________________________________________________
[nant]
/var/tmp/portage/portage/dev-dotnet/ikvm-0.34.0.2/work/ikvm-0.34.0.2/classpath/classpath.build
Buildfile:
file:///var/tmp/portage/portage/dev-dotnet/ikvm-0.34.0.2/work/ikvm-0.34.0.2/classpath/classpath.build
Target framework: Mono 1.0 Profile
Target(s) specified: IKVM.GNU.Classpath.dll


jars:


classes:

[exec] Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

BUILD FAILED - 0 non-fatal error(s), 1 warning(s)

/var/tmp/portage/portage/dev-dotnet/ikvm-0.34.0.2/work/ikvm-0.34.0.2/classpath/classpath.build(27,10):
External Program Failed: /usr/bin/ecj-3.2 (return code was 1)

Total time: 32.9 seconds.


BUILD FAILED

Nested build failed. Refer to build log for exact reason.

Total time: 44 seconds.


!!! ERROR: dev-dotnet/ikvm-0.34.0.2 failed.
Call stack:
ebuild.sh, line 1615: Called dyn_compile
ebuild.sh, line 972: Called qa_call 'src_compile'
ebuild.sh, line 44: Called src_compile
ikvm-0.34.0.2.ebuild, line 36: Called die

!!! ikvm build failed 

Reproducible: Always

Steps to Reproduce:
1. emerge ikvm (or emerge monodevelop, with java use flag enabled)

Actual Results:  
Check the description for a quote from the log.

Expected Results:  
Successful build of ikvm.

I think memory requirement for x64 systems is double than for x86. I want to
find out how to modify the ebuild to instruct ecj to use more memory.
I think this would fix the ebuild's problem.

------- Comment #1 From Stefan Stroe 2007-06-28 14:21:31 0000 -------
Portage 2.1.2.7 (default-linux/amd64/2007.0, gcc-4.1.2, glibc-2.5-r3,
2.6.20-gentoo-r8_vyper_v0.1 x86_64)
=================================================================
System uname: 2.6.20-gentoo-r8_vyper_v0.1 x86_64 AMD Turion(tm) 64 X2 Mobile
Technology TL-52
Gentoo Base System release 1.12.9
Timestamp of tree: Wed, 27 Jun 2007 12:50:01 +0000
ccache version 2.4 [disabled]
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r7
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.23b
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -mtune=athlon64 -msse3 -O2 -pipe -falign-functions=64
-fforce-addr -ftracer -funit-at-a-time"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild
/etc/splash /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=athlon64 -mtune=athlon64 -msse3 -O2 -pipe -falign-functions=64
-fforce-addr -ftracer -funit-at-a-time"
DISTDIR="/usr/portage/distfiles"
FEATURES="collision-protect distlocks fixpackages metadata-transfer
parallel-fetch sandbox sfperms strict userfetch"
GENTOO_MIRRORS="http://ftp.roedu.net/pub/mirrors/gentoo.org/
http://ftp.lug.ro/gentoo/ http://ftp.romnet.org/gentoo/
http://mirrors.evolva.ro/gentoo/ http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1"
LINGUAS="en ro"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --stats --timeout=180
--exclude=/distfiles --exclude=/local --exclude=/packages
--filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp/portage"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/cross-i586-pc-linux-gnu /usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext 7zip X X509 a52 aac aalib acl acpi addbookmarks alias alsa
amd64 amr aotuv apm arts autoreplace bash-completion bcp berkdb binfilter
bitmap-fonts bjam bl boost branding bzip2 cairo cddb cdparanoia cdr chardet
chroot cli connectionstatus contactnotes cpudetection cracklib crypt cups curl
dbus dmi doc dri dts dv dvd dvdnav dvdr dvdread dynamic ecc encode epydoc
erandom exif fam fbcon firefox flac fltk fontconfig ftp fusion gadu gdbm ggi
gif gpm groupwise gstreamer gtk hal hardened highlight history hpn iconv icu
idea idn ieee1394 ipv6 irc isdnlog ithreads java javascript jingle jpeg jpeg2k
kde lcms ldap libcaca lm_sensors logrotate lua lzo mad mailwrapper md5sum midi
mmx mng modplug mono mp2 mp3 mpeg mudflap musepack nas ncurses nforce2 nfs nls
nowlistening nptl nptlonly nsplugin numeric nvidia objc objc++ objc-gc odbc odk
offensive ogg openal openexr opengl openmp oss pcmcia pcre perl pic pmu png pnm
pppd pyste python qt3 quicktime rar readline reflection rtc sametime sdl
session slang slp sms sndfile sockets socks5 sound speex spell spl srt sse sse2
ssl statistics svg swig symlink sysfs tcl tcpd texteffect tga theora threads
tidy tiff timidity tivo tk translator truetype truetype-fonts tta type1-fonts
unicode usb userlocales v4l v4l2 vorbis wavpack webpresence winpopup wma x264
xanim xcomposite xinerama xml xorg xpm xscreensaver xvid xvmc yahoo zlib zoran"
ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x
ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3
trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw
asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa
lfloat linear meter mulaw multi null plug rate route share shm softvol"
ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics" KERNEL="linux"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses
text" LINGUAS="en ro" USERLAND="GNU" VIDEO_CARDS="fbdev nvidia vesa vga"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL,
PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

------- Comment #2 From Jurek Bartuszek 2007-06-28 14:32:12 0000 -------
Unfortunately I personally have no amd64 box, but I've found this:

http://www.mail-archive.com/classpath@gnu.org/msg14190.html
and response:
http://www.mail-archive.com/classpath@gnu.org/msg14191.html

If you are willing to check if it works for you, let me know what the results
are, please.

------- Comment #3 From Stefan Stroe 2007-06-28 15:11:05 0000 -------
Could you give me a little hand. I am new to this ...

1)

I think I must modify the /usr/share/java-config-2/launcher.bash, to add the
-mx384M paramether. Am I right ?
(I will use -mx512M on my machine instead)

2)

If the above is correct in what variable/what line shall I put it ?

3)

Is the paramether correct ? I thought it was -Xm512m

Thank you for bearing with me...

------- Comment #4 From Jurek Bartuszek 2007-06-28 16:12:26 0000 -------
I wouldn't touch anything outside sandboxed environment. Check out the
classpath/classpath.build file, you should see an entry beginning with '<exec
program="ecj"', try fiddling with commandline parameter, maybe that will help.

------- Comment #5 From Stefan Stroe 2007-06-28 18:15:00 0000 -------
I have found the buildfile: .... /ikvm-0.34.0.2/classpath/classpath.build
and modified the line:

- <exec program="/usr/bin/ecj-3.2" commandline="-g -1.5 -nowarn -cp
mscorlib.jar${pathsep}System.jar @allsources.lst" useruntimeengine="false" />
+ <exec program="/usr/bin/ecj-3.2" commandline="-Xmx512M -g -1.5 -nowarn -cp
mscorlib.jar${pathsep}System.jar @allsources.lst" useruntimeengine="false" />

with no success.

As I found on:

http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm

.... _______________________________________________________________
Ignored options (for compatibility with javac options)
-J<option>      pass option to the virtual machine
-X<option>      specify non-standard option. -Xemacs is not ignored.
-X      print non-standard options and exit
-O      optimize for execution time
________________________________________________________________ ....

I think I failed with this approach. There must be another option to set memory
usage, but it's not so obvious as the compile time parameter.
How do they make that setup ?

I ran some commands on my box:

java-config -f : 
sun-jdk-1.5

java-config -L : 
The following VMs are available for generation-2:
1)      Blackdown JDK 1.4.2.03 [blackdown-jdk-1.4.2]
2)      Blackdown JRE 1.4.2.03 [blackdown-jre-1.4.2]
*)      Sun JDK 1.5.0.11 [sun-jdk-1.5]

java-config -v :
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_11-b03, mixed mode)

If my presumption is correct, during the compile Sun's Java Virtual Machine is
used. Is there a way to set memory usage to this (as long as ecj ignores the
setting) ?

------- Comment #6 From Bernie Hackett 2007-06-28 18:34:49 0000 -------
This problem also exists on x86. It fails for me on two desktops and a laptop
(basically all the machines I have gentoo on.) I have tried to build with all
three versions of eclipse-ecj in the tree.

A short term solution is to just use ikvm-bin but yesterday I had to download
the zip file from sourceforge manually because portage couldn't fetch it for
some reason.

ebuild failure results below:

     [nant]
/var/tmp/portage/dev-dotnet/ikvm-0.34.0.2/work/ikvm-0.34.0.2/classpath/classpath.build
            Buildfile:
file:///var/tmp/portage/dev-dotnet/ikvm-0.34.0.2/work/ikvm-0.34.0.2/classpath/classpath.build
            Target framework: Mono 1.0 Profile
            Target(s) specified: IKVM.GNU.Classpath.dll


            jars:


            classes:

                 [exec] Exception in thread "main" java.lang.OutOfMemoryError:
Java heap space
                 [exec]  at
org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsCharArray(Util.java:204)
                 [exec]  at
org.eclipse.jdt.internal.compiler.util.Util.getFileCharContent(Util.java:70)
                 [exec]  at
org.eclipse.jdt.internal.compiler.batch.CompilationUnit.getContents(CompilationUnit.java:58)
                 [exec]  at
org.eclipse.jdt.internal.compiler.batch.Main$2.acceptResult(Main.java:2506)
                 [exec]  at
org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:502)
                 [exec]  at
org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:430)
                 [exec]  at
org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:2697)
                 [exec]  at
org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1272)
                 [exec]  at
org.eclipse.jdt.internal.compiler.batch.Main.main(Main.java:1016)

            BUILD FAILED - 0 non-fatal error(s), 10 warning(s)

           
/var/tmp/portage/dev-dotnet/ikvm-0.34.0.2/work/ikvm-0.34.0.2/classpath/classpath.build(27,10):
            External Program Failed: /usr/bin/ecj-3.2 (return code was 1)

            Total time: 19.1 seconds.


BUILD FAILED

Nested build failed.  Refer to build log for exact reason.

Total time: 25.4 seconds.


!!! ERROR: dev-dotnet/ikvm-0.34.0.2 failed.
Call stack:
  ebuild.sh, line 1637:   Called dyn_compile
  ebuild.sh, line 983:   Called qa_call 'src_compile'
  ebuild.sh, line 44:   Called src_compile
  ikvm-0.34.0.2.ebuild, line 36:   Called die

!!! ikvm build failed
!!! If you need support, post the topmost build error, and the call stack if
relevant.
!!! A complete build log is located at
'/var/tmp/portage/dev-dotnet/ikvm-0.34.0.2/temp/build.log'.

------- Comment #7 From Jurek Bartuszek 2007-06-28 19:36:47 0000 -------
It looks like a common bug:

http://permalink.gmane.org/gmane.comp.java.classpath.devel/9181

maybe our java team can help us here?

------- Comment #8 From Bernie Hackett 2007-06-28 20:05:36 0000 -------
It's a problem with the new gnu classpath:

http://developer.classpath.org/mediation/ClasspathDeveloperGuidelines

Maybe the solution is to add classpath-0.95 as a depend (instead of building it
in the same ebuild), that way classpath can just be built with javac and ikvm
can be built with eclipse-ecj (does it have to be built that way?)

Could the classpath build section be changed to use javac?

------- Comment #9 From Jurek Bartuszek 2007-06-28 23:39:50 0000 -------
Created an attachment (id=123343) [edit]
ikvm ebuild with javac instead of ecj

Could you please try this ebuild and report your results here?

------- Comment #10 From Bernie Hackett 2007-06-29 01:19:42 0000 -------
(In reply to comment #9)
> Created an attachment (id=123343) [edit]
> ikvm ebuild with javac instead of ecj
> 
> Could you please try this ebuild and report your results here?
> 

Still no go. I was able to get it to compile by editing
/usr/bin/ecj-3.2 like this:

- gjl_main="org.eclipse.jdt.internal.compiler.batch.Main"
+ gjl_main="-Xmx400m org.eclipse.jdt.internal.compiler.batch.Main"

After that it compiles and installs perfectly. Not a very useful solution to
the bigger problem though.

------- Comment #11 From Bernie Hackett 2007-06-29 02:08:27 0000 -------
Created an attachment (id=123352) [edit]
ikvm ebuild modified with javac heap increased to 256M

This fixes it. Still using javac but giving it one more option -J-mx256M. This
increases the heap size javac will use to 256M solving the classpath compile
problem.

------- Comment #12 From Jurek Bartuszek 2007-06-29 02:13:13 0000 -------
Sorry, I forgot to add the -J option (which was the reason for moving to javac,
hence ecj/jikes simply ignore this). Could you please try this with some
smaller values (192, 160, 128 and so on until build fails)? Thanks in advance!

------- Comment #13 From Bernie Hackett 2007-06-29 02:18:00 0000 -------
(In reply to comment #12)
> Sorry, I forgot to add the -J option (which was the reason for moving to javac,
> hence ecj/jikes simply ignore this). Could you please try this with some
> smaller values (192, 160, 128 and so on until build fails)? Thanks in advance!
> 

128 is too small. 160 seems to work fine. I think this problem may be solved...

------- Comment #14 From Jurek Bartuszek 2007-06-29 02:45:04 0000 -------
So be it. Fixed in CVS, thanks for your input!

------- Comment #15 From Bernie Hackett 2007-06-29 02:46:16 0000 -------
(In reply to comment #14)
> So be it. Fixed in CVS, thanks for your input!
> 

Any time.

First Last Prev Next    No search results available      Search page      Enter new bug