This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug java/32619] New: -static-libgcj includes entire gnu classpath (>30MB executable from 95byte source)
- From: "woody77 at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Jul 2007 02:28:45 -0000
- Subject: [Bug java/32619] New: -static-libgcj includes entire gnu classpath (>30MB executable from 95byte source)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Using the 20070501 prerelease of gcc 4.2.0, to compile the following sample
app:
public class Foo
{
public static void main(String args[])
{
System.out.println("Hello.");
}
}
with the following command-line:
/usr/local/bin/gcj -v -save-temps -o Foo -static-libgcj --main=Foo Foo.java
yeilds a 35MB executable:
-rwxr-xr-x 1 aaron aaron 35M 2007-07-03 19:12 Foo*
compiler output:
Using built-in specs.
Reading specs from
/usr/local/lib/gcc/i686-pc-linux-gnu/4.2.0/../../../libgcj.spec
rename spec startfile to startfileorig
rename spec lib to liborig
Target: i686-pc-linux-gnu
Configured with: ./configure
Thread model: posix
gcc version 4.2.0 20070501 (prerelease)
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.2.0/jc1 Foo.java
-fhash-synchronization -fno-use-divide-subroutine -fuse-boehm-gc
-fnon-call-exceptions -fkeep-inline-functions -quiet -dumpbase Foo.java
-mtune=generic -auxbase Foo -g1 -version -o Foo.s
GNU Java version 4.2.0 20070501 (prerelease) (i686-pc-linux-gnu)
compiled by GNU C version 4.2.0 20070501 (prerelease).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64499
Class path starts here:
./
/usr/local/share/java/libgcj-4.2.0.jar/ (system) (zip)
as --traditional-format -V -Qy -o Foo.o Foo.s
GNU assembler version 2.17.50 (i486-linux-gnu) using BFD version 2.17.50
20070103 Ubuntu
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.2.0/jvgenmain Foomain Foomain.i
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.2.0/cc1 Foomain.i -quiet -dumpbase
Foomain.c -mtune=generic -g1 -version -fdollars-in-identifiers -o Foomain.s
GNU C version 4.2.0 20070501 (prerelease) (i686-pc-linux-gnu)
compiled by GNU C version 4.2.0 20070501 (prerelease).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64499
Compiler executable checksum: 14e4aa58d7d80bfc23a75bbd5755fd63
as --traditional-format -V -Qy -o Foomain.o Foomain.s
GNU assembler version 2.17.50 (i486-linux-gnu) using BFD version 2.17.50
20070103 Ubuntu
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.2.0/collect2 --eh-frame-hdr -m
elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o Foo /usr/lib/crt1.o
/usr/lib/crti.o /usr/local/lib/gcc/i686-pc-linux-gnu/4.2.0/crtbegin.o
-L/usr/local/lib/gcc/i686-pc-linux-gnu/4.2.0
-L/usr/local/lib/gcc/i686-pc-linux-gnu/4.2.0/../../.. Foomain.o Foo.o -lgcc_s
-lgcc -non_shared -lgcj -call_shared -lm -lpthread -lrt -ldl -lgcc_s -lgcc -lc
-lgcc_s -lgcc /usr/local/lib/gcc/i686-pc-linux-gnu/4.2.0/crtend.o
/usr/lib/crtn.o
==============
It appears as if the linker isn't removing uncalled functions from the
resulting binary. I will try to build this the old way as well, to see if I
get the same issue there.
--
Summary: -static-libgcj includes entire gnu classpath (>30MB
executable from 95byte source)
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: woody77 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32619