public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug boehm-gc/48514] New: [4.6] boehm gc incorrectly compile using __declspec(dllexport) on i686-w64-mingw32 target
@ 2011-04-08  8:53 blakawk at gentooist dot com
  2011-04-08  8:54 ` [Bug boehm-gc/48514] " blakawk at gentooist dot com
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: blakawk at gentooist dot com @ 2011-04-08  8:53 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48514

           Summary: [4.6] boehm gc incorrectly compile using
                    __declspec(dllexport) on i686-w64-mingw32 target
           Product: gcc
           Version: 4.6.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: boehm-gc
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: blakawk@gentooist.com


When trying to build a cross compiler for i686-w64-mingw32 target, the boehm-gc
library is built with __declspec(dllexport) while --disable-shared was
specified on the command line, which leads to programs linked with resulting
GCJ failing to link with undefined references to ___imp_GC functions.

The build should instead define GC_NOT_DLL when building the GC static library
to avoid theses link failures.

The error encountered was:
# i686-w64-mingw32-gcj -v -o HelloWorldJava.exe HelloWorld.java
--main=HelloWorld
Using built-in specs.
Reading specs from
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/libgcj.spec
rename spec startfile to startfileorig
rename spec lib to liborig
COLLECT_GCC=i686-w64-mingw32-gcj
COLLECT_LTO_WRAPPER=/home/users_csee/parizet/test/root/bin/../libexec/gcc/i686-w64-mingw32/4.6.1/lto-wrapper
Target: i686-w64-mingw32
Configured with: ../../sources/gcc-4.6-20110401/configure
--prefix=/users_csee/parizet/test/root
--with-sysroot=/users_csee/parizet/test/root --disable-multilib
--with-mpfr=/users_csee/parizet/test/root
--with-mpc=/users_csee/parizet/test/root
--with-gmp=/users_csee/parizet/test/root --disable-shared
--enable-threads=win32 --disable-tls --disable-__cxa_atexit
--enable-languages=c,c++,java --enable-libssp --disable-win32-registry
--disable-nls --disable-lto --enable-libgcj --enable-sjlj-exceptions
--target=i686-w64-mingw32 --build=i386-redhat-linux
Thread model: win32
gcc version 4.6.1 20110401 (prerelease) (GCC)
COLLECT_GCC_OPTIONS='-fsaw-java-file' '-v' '-o' 'HelloWorldJava.exe'
'-fbootclasspath=./:/home/users_csee/parizet/test/root/bin/../lib/gcc/../../share/java/libgcj-4.6.1.jar'
'-g1' '-mtune=generic' '-march=pentiumpro'

/home/users_csee/parizet/test/root/bin/../libexec/gcc/i686-w64-mingw32/4.6.1/ecj1
HelloWorld.java -g1
-fbootclasspath=./:/home/users_csee/parizet/test/root/bin/../lib/gcc/../../share/java/libgcj-4.6.1.jar
-g1 -fsource=1.5 -ftarget=1.5 -fzip-dependency /tmp/cckS7y6u.zip -fzip-target
/tmp/ccmUv52P.jar
COLLECT_GCC_OPTIONS='-fsaw-java-file' '-v' '-o' 'HelloWorldJava.exe'
'-fbootclasspath=./:/home/users_csee/parizet/test/root/bin/../lib/gcc/../../share/java/libgcj-4.6.1.jar'
'-g1' '-mtune=generic' '-march=pentiumpro'

/home/users_csee/parizet/test/root/bin/../libexec/gcc/i686-w64-mingw32/4.6.1/jc1
/tmp/ccmUv52P.jar -fsource-filename=HelloWorld.java -fhash-synchronization
-fuse-divide-subroutine -fcheck-references -fuse-boehm-gc -fnon-call-exceptions
-fkeep-inline-functions -quiet -dumpbase HelloWorld.java -mtune=generic
-march=pentiumpro -auxbase HelloWorld -g1 -version -fsaw-java-file
-fbootclasspath=./:/home/users_csee/parizet/test/root/bin/../lib/gcc/../../share/java/libgcj-4.6.1.jar
-faux-classpath /tmp/cckS7y6u.zip -o /tmp/ccJNzi4m.s
GNU Java (GCC) version 4.6.1 20110401 (prerelease) (i686-w64-mingw32)
        compiled by GNU C version 4.1.2 20080704 (Red Hat 4.1.2-48), GMP
version 5.0.1, MPFR version 3.0.1, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Java (GCC) version 4.6.1 20110401 (prerelease) (i686-w64-mingw32)
        compiled by GNU C version 4.1.2 20080704 (Red Hat 4.1.2-48), GMP
version 5.0.1, MPFR version 3.0.1, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Class path starts here:
    /tmp/cckS7y6u.zip/ (zip)
    ./ (system)
   
/home/users_csee/parizet/test/root/bin/../lib/gcc/../../share/java/libgcj-4.6.1.jar/
(system) (zip)
COLLECT_GCC_OPTIONS='-fsaw-java-file' '-v' '-o' 'HelloWorldJava.exe'
'-fbootclasspath=./:/home/users_csee/parizet/test/root/bin/../lib/gcc/../../share/java/libgcj-4.6.1.jar'
'-g1' '-mtune=generic' '-march=pentiumpro'

/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/bin/as
-o /tmp/ccqpxrJW.o /tmp/ccJNzi4m.s
COLLECT_GCC_OPTIONS='-fsaw-java-file' '-v' '-o' 'HelloWorldJava.exe'
'-fbootclasspath=./:/home/users_csee/parizet/test/root/bin/../lib/gcc/../../share/java/libgcj-4.6.1.jar'
'-g1' '-mtune=generic' '-march=pentiumpro'

/home/users_csee/parizet/test/root/bin/../libexec/gcc/i686-w64-mingw32/4.6.1/jvgenmain
HelloWorldmain /tmp/ccBkLRxw.i
COLLECT_GCC_OPTIONS= '-v' '-o' 'HelloWorldJava.exe'  '-g1' '-mtune=generic'
'-march=pentiumpro'

/home/users_csee/parizet/test/root/bin/../libexec/gcc/i686-w64-mingw32/4.6.1/cc1
/tmp/ccBkLRxw.i -quiet -dumpbase HelloWorldmain.c -mtune=generic
-march=pentiumpro -g1 -version -fdollars-in-identifiers -o /tmp/ccJNzi4m.s
GNU C (GCC) version 4.6.1 20110401 (prerelease) (i686-w64-mingw32)
        compiled by GNU C version 4.1.2 20080704 (Red Hat 4.1.2-48), GMP
version 5.0.1, MPFR version 3.0.1, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C (GCC) version 4.6.1 20110401 (prerelease) (i686-w64-mingw32)
        compiled by GNU C version 4.1.2 20080704 (Red Hat 4.1.2-48), GMP
version 5.0.1, MPFR version 3.0.1, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 393b96e33d8c030f489e8d94e734813a
COLLECT_GCC_OPTIONS= '-v' '-o' 'HelloWorldJava.exe'  '-g1' '-mtune=generic'
'-march=pentiumpro'

/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/bin/as
-o /tmp/ccAFjqT9.o /tmp/ccJNzi4m.s
COMPILER_PATH=/home/users_csee/parizet/test/root/bin/../libexec/gcc/i686-w64-mingw32/4.6.1/:/home/users_csee/parizet/test/root/bin/../libexec/gcc/:/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/bin/
LIBRARY_PATH=/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/:/home/users_csee/parizet/test/root/bin/../lib/gcc/:/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/:/home/users_csee/parizet/test/root/bin/../../root/mingw/lib/../lib/:/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/:/home/users_csee/parizet/test/root/bin/../../root/mingw/lib/
COLLECT_GCC_OPTIONS= '-v' '-o' 'HelloWorldJava.exe'  '-g1' '-mtune=generic'
'-march=pentiumpro'

/home/users_csee/parizet/test/root/bin/../libexec/gcc/i686-w64-mingw32/4.6.1/collect2
--sysroot=/home/users_csee/parizet/test/root/bin/../../root -m i386pe -Bdynamic
-o HelloWorldJava.exe
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/crt2.o
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/crtbegin.o
-L/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1
-L/home/users_csee/parizet/test/root/bin/../lib/gcc
-L/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib
-L/home/users_csee/parizet/test/root/bin/../../root/mingw/lib/../lib
-L/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib
-L/home/users_csee/parizet/test/root/bin/../../root/mingw/lib /tmp/ccAFjqT9.o
/tmp/ccqpxrJW.o -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -lgcj-noncore
-lgcj -lm -lgdi32 -lws2_32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt
-ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc -lmoldname -lmingwex
-lmsvcrt
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/crtend.o
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(natObject.o):
In function `alloc_heavy':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/java/lang/natObject.cc:835:
undefined reference to `__imp__GC_register_finalizer_no_order'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(natObject.o):
In function `heavy_lock_obj_finalization_proc':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/java/lang/natObject.cc:713:
undefined reference to `__imp__GC_register_finalizer_no_order'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(natObject.o):
In function `remove_all_heavy':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/java/lang/natObject.cc:767:
undefined reference to `__imp__GC_register_finalizer_no_order'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(link.o):
In function `_ZN10_Jv_Linker14wait_for_stateEPN4java4lang5ClassEi':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/link.cc:2022:
undefined reference to `__imp__GC_base'
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/link.cc:2022:
undefined reference to `__imp__GC_base'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(link.o):
In function `_ZN10_Jv_Linker18resolve_pool_entryEPN4java4lang5ClassEib':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/link.cc:401:
undefined reference to `__imp__GC_base'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Jv_AllocBytes':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:312:
undefined reference to `__imp__GC_malloc_atomic'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z14_Jv_AllocArrayiPN4java4lang5ClassE':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:367:
undefined reference to `__imp__GC_malloc'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z15_Jv_AllocRawObji':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:380:
undefined reference to `__imp__GC_malloc'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z24_Jv_ClosureListFinalizerv':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:403:
undefined reference to `__imp__GC_register_finalizer_unreachable'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z21_Jv_RegisterFinalizerPvPFvPN4java4lang6ObjectEE':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:421:
undefined reference to `__imp__GC_register_finalizer_no_order'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z17_Jv_RunFinalizersv':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:427:
undefined reference to `__imp__GC_invoke_finalizers'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z9_Jv_RunGCv':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:439:
undefined reference to `__imp__GC_gcollect'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z17_Jv_GCTotalMemoryv':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:445:
undefined reference to `__imp__GC_get_heap_size'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z16_Jv_GCFreeMemoryv':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:451:
undefined reference to `__imp__GC_get_free_bytes'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z24_Jv_GCSetInitialHeapSizej':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:457:
undefined reference to `__imp__GC_get_heap_size'
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:459:
undefined reference to `__imp__GC_expand_hp'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z24_Jv_GCSetMaximumHeapSizej':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:465:
undefined reference to `__imp__GC_set_max_heap_size'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z25_Jv_SetGCFreeSpaceDivisori':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:471:
undefined reference to `__imp__GC_set_free_space_divisor'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z10_Jv_InitGCv':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:526:
undefined reference to `__imp__GC_all_interior_pointers'
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:541:
undefined reference to `__imp__GC_oom_fn'
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:543:
undefined reference to `__imp__GC_java_finalization'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z26_Jv_GCInitializeFinalizersPFvvE':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:600:
undefined reference to `__imp__GC_finalize_on_demand'
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:601:
undefined reference to `__imp__GC_finalizer_notifier'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(boehm.o):
In function `_Z30_Jv_GCRegisterDisappearingLinkPPN4java4lang6ObjectE':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:610:
undefined reference to `__imp__GC_base'
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/boehm.cc:611:
undefined reference to `__imp__GC_general_register_disappearing_link'
/home/users_csee/parizet/test/root/bin/../lib/gcc/i686-w64-mingw32/4.6.1/../../../../i686-w64-mingw32/lib/../lib/libgcj.a(win32-threads.o):
In function `_Z15_Jv_ThreadStartPN4java4lang6ThreadEP12_Jv_Thread_tPFvS2_E':
/users_csee/parizet/test/builds/gcc/i686-w64-mingw32/libjava/../../../../sources/gcc-4.6-20110401/libjava/win32-threads.cc:393:
undefined reference to `__imp__GC_CreateThread@24'
collect2: ld returned 1 exit status

The program used was:
file "HelloWorld.java":
> public class HelloWorld{
>   public static void main(String[] args) {
>     System.out.println("Hello World!");
>   }
> }


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-02-10 16:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-08  8:53 [Bug boehm-gc/48514] New: [4.6] boehm gc incorrectly compile using __declspec(dllexport) on i686-w64-mingw32 target blakawk at gentooist dot com
2011-04-08  8:54 ` [Bug boehm-gc/48514] " blakawk at gentooist dot com
2012-02-02  8:53 ` ktietz at gcc dot gnu.org
2012-02-02 10:52 ` ktietz at gcc dot gnu.org
2012-02-10 16:31 ` ktietz at gcc dot gnu.org
2012-02-10 16:33 ` ktietz at gcc dot gnu.org
2012-02-10 16:34 ` ktietz at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).