comp.lang.ada
 help / color / mirror / Atom feed
* MinGW-w64 gnatlink "undefined reference"
@ 2011-04-10  3:01 mjamesb
  2011-04-10  6:18 ` Simon Wright
  0 siblings, 1 reply; 2+ messages in thread
From: mjamesb @ 2011-04-10  3:01 UTC (permalink / raw)


Note: I know just enough to be dangerous here ... :-)

I guess I'm looking to open a bug somewhere and am trying to come up with all the details that they'll need.

I'm trying to do "hello world" in 64-bits on MS Windows, so this is:

  - 64-bit Win7, clean and up-to-date, and
  - Cygwin 2.738 installer to grab:
   - mingw64-i686-gcc-ada
   - mingw64-x86_64-gcc-ada

As you can see from the appended details, below, 32-bit is happy but 64-bit is not.

Do the details below cause anyone reading this to think "Oh, I know what that is!", or do I just dump this on someone and hope that they can fix it?

Thanks.

  - mjamesb

------------------------------------------------------------------------

$ i686-w64-mingw32-gcc -v
Using built-in specs.
COLLECT_GCC=i686-w64-mingw32-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-w64-mingw32/4.5.2/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: /home/user/mingw64/mingw64-i686-gcc-4.5.2-1/src/gcc-4.5.2/configure --srcdir=/home/user/mingw64/mingw64-i686-gcc-4.5.2-1/src/gcc-4.5.2 --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --datadir=/usr/share --localstatedir=/var --sysconfdir=/etc --datarootdir=/usr/share --docdir=/usr/share/doc/mingw64-i686-gcc -C --build=i686-pc-cygwin --host=i686-pc-cygwin --target=i686-w64-mingw32 --with-sysroot=/usr/i686-w64-mingw32/sys-root --with-build-sysroot=/usr/i686-w64-mingw32/sys-root --disable-multilib --disable-win32-registry --enable-languages=c,ada,c++,fortran,objc,obj-c++ --enable-fully-dynamic-strings --enable-libgomp --enable-sjlj-exceptions --enable-version-specific-runtime-libs --with-dwarf2 --enable-decimal-float=bid --enable-lto
Thread model: win32
gcc version 4.5.2 (GCC)

$ x86_64-w64-mingw32-gcc -v
Using built-in specs.
COLLECT_GCC=x86_64-w64-mingw32-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: /home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/src/gcc-4.5.2/configure --srcdir=/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/src/gcc-4.5.2 --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --datadir=/usr/share --localstatedir=/var --sysconfdir=/etc --datarootdir=/usr/share --docdir=/usr/share/doc/mingw64-x86_64-gcc -C --build=i686-pc-cygwin --host=i686-pc-cygwin --target=x86_64-w64-mingw32 --with-sysroot=/usr/x86_64-w64-mingw32/sys-root --with-build-sysroot=/usr/x86_64-w64-mingw32/sys-root --disable-multilib --disable-win32-registry --enable-languages=c,ada,c++,fortran,objc,obj-c++ --enable-fully-dynamic-strings --enable-libgomp --enable-sjlj-exceptions --enable-version-specific-runtime-libs --with-dwarf2 --enable-decimal-float=bid --enable-lto
Thread model: win32
gcc version 4.5.2 (GCC)

$ cat helloworld.adb
With Ada.Text_IO;
Procedure HelloWorld Is
Begin
  Ada.Text_IO.Put_Line("Hello World.");
End HelloWorld;

$ i686-w64-mingw32-gnatmake -save-temps helloworld.adb
i686-w64-mingw32-gcc -c -save-temps helloworld.adb
i686-w64-mingw32-gnatbind -x helloworld.ali
i686-w64-mingw32-gnatlink helloworld.ali

$ ./helloworld.exe
Hello World.

$ cat helloworld.s
         .file   "helloworld.adb"
         .section .rdata,"dr"
LC0:
         .ascii "Hello World."
         .text
.globl __ada_helloworld
         .def    __ada_helloworld;       .scl    2;      .type   32;     .endef
__ada_helloworld:
         pushl   %ebp
         movl    %esp, %ebp
         subl    $24, %esp
         movl    $LC0, %ecx
         movl    %ecx, %eax
         movl    $_C.2.2181, %edx
         movl    %eax, (%esp)
         movl    %edx, 4(%esp)
         call    _ada__text_io__put_line__2
         leave
         ret
         .section .rdata,"dr"
         .align 4
_C.2.2181:
         .long   1
         .long   12
         .def    _ada__text_io__put_line__2;     .scl    2;      .type   32;     .endef

$ x86_64-w64-mingw32-gnatmake -save-temps helloworld.adb
x86_64-w64-mingw32-gcc -c -save-temps helloworld.adb
x86_64-w64-mingw32-gnatbind -x helloworld.ali
x86_64-w64-mingw32-gnatlink helloworld.ali
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-exctab.o): In function `system__exception_table__internal_exception':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-exctab.adb:154: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(i-c.o): In function `interfaces__c__to_ada__2':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/i-c.adb:103: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(i-c.o): In function `interfaces__c__to_ada__5':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/i-c.adb:197: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(i-c.o): In function `interfaces__c__to_ada__8':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/i-c.adb:290: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(i-c.o): In function `interfaces__c__to_ada__11':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/i-c.adb:383: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(i-c.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/i-c.adb:480: more undefined references to `__gnat_eh_personality_sj' follow
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finroo.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finroo.adb:42: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finroo.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finroo.adb:42: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finroo.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finroo.adb:42: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finroo.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finroo.adb:42: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finroo.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finroo.adb:42: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finroo.o):s-finroo.adb:(.data+0x238): undefined reference to `__gnat_others_value'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__normalize_arguments__quote_argument':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1671: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__copy_file__build_path':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:318: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__normalize_pathname__final_value':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1822: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__normalize_pathname__get_directory':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1862: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__create_temp_file_internal__create_new_output_text_file':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:798: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:2571: more undefined references to `__gnat_eh_personality_sj' follow
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__gm_split':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1287: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1287: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__is_directory':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1344: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__is_readable_file':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1363: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__is_executable_file':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1382: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__is_regular_file':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1401: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__create_temp_file_internal':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:777: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:866: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:866: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__is_symbolic_link':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1420: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__is_writable_file':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1439: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__copy_time_stamps':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:615: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__normalize_pathname':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:1756: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__open_read':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:2233: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:448: more undefined references to `__gnat_eh_personality_sj' follow
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__copy_file':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:588: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:588: undefined reference to `__gnat_begin_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:588: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__rename_file':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:2333: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__set_executable':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:2369: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__set_non_readable':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:2383: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__set_non_writable':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:2397: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o): In function `system__os_lib__set_readable':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:2411: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-os_lib.adb:2425: more undefined references to `__gnat_eh_personality_sj' follow
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-os_lib.o):s-os_lib.adb:(.data+0x70): undefined reference to `__gnat_others_value'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o): In function `system__finalization_implementation__raise_from_finalize':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:500: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_begin_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:518: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o): In function `system__finalization_implementation__attach_to_final_list':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:162: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:198: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:198: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o): In function `system__finalization_implementation__detach_from_final_list':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:262: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:284: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:284: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o): In function `system__finalization_implementation__finalize_list':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:331: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:363: undefined reference to `__gnat_begin_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:363: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:363: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o): In function `system__finalization_implementation__adjust__2':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:91: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:148: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:148: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o): In function `system__finalization_implementation__finalize_one':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:374: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:379: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:379: undefined reference to `__gnat_begin_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-finimp.adb:379: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-finimp.o):s-finimp.adb:(.data+0x258): undefined reference to `__gnat_others_value'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-finali.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-finali.adb:42: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-finali.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-finali.adb:42: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-finali.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-finali.adb:42: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-finali.o):a-finali.adb:(.data+0x238): undefined reference to `__gnat_others_value'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io__chain_file':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:165: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:184: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:184: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io__errno_message':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:376: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io__errno_message__2':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:387: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io__raise_device_error':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:1089: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io__close':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:230: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:314: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:314: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io__finalize__2':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:403: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:439: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:439: undefined reference to `__gnat_begin_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io__delete':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:323: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io__open':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:741: undefined reference to `__gnat_eh_personality_sj'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:903: undefined reference to `__gnat_end_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:903: undefined reference to `__gnat_begin_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:1000: undefined reference to `__gnat_begin_handler'
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:1000: undefined reference to `__gnat_end_handler'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o): In function `system__file_io___elabb':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-fileio.adb:46: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-fileio.o):s-fileio.adb:(.data+0x158): undefined reference to `__gnat_others_value'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-tags.o): In function `ada__tags__interface_ancestor_tags':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-tags.adb:540: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-tags.o): In function `ada__tags__internal_tag':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-tags.adb:577: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-tags.o): In function `ada__tags__wide_expanded_name':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-tags.adb:960: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-tags.o): In function `ada__tags__wide_wide_expanded_name':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-tags.adb:974: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-textio.o): In function `ada__text_io__get_line__get_rest__3':
/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-textio.adb:822: undefined reference to `__gnat_eh_personality_sj'
/usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(a-textio.o):/home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/a-textio.adb:1477: more undefined references to `__gnat_eh_personality_sj' follow
collect2: ld returned 1 exit status
x86_64-w64-mingw32-gnatlink: error when calling /usr/bin/x86_64-w64-mingw32-gcc.exe
x86_64-w64-mingw32-gnatmake: *** link failed.

$ cat helloworld.s
         .file   "helloworld.adb"
         .section .rdata,"dr"
.LC0:
         .ascii "Hello World."
         .text
.globl _ada_helloworld
         .def    _ada_helloworld;        .scl    2;      .type   32;     .endef
_ada_helloworld:
         pushq   %rbp
         movq    %rsp, %rbp
         subq    $64, %rsp
         leaq    .LC0(%rip), %rax
         movq    %rax, -16(%rbp)
         leaq    C.2.2209(%rip), %rax
         movq    %rax, -8(%rbp)
         movq    -16(%rbp), %rax
         movq    %rax, -32(%rbp)
         movq    -8(%rbp), %rax
         movq    %rax, -24(%rbp)
         leaq    -32(%rbp), %rax
         movq    %rax, %rcx
         call    ada__text_io__put_line__2
         leave
         ret
         .section .rdata,"dr"
         .align 4
C.2.2209:
         .long   1
         .long   12
         .def    ada__text_io__put_line__2;      .scl    2;      .type   32;     .endef

$



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

* Re: MinGW-w64 gnatlink "undefined reference"
  2011-04-10  3:01 MinGW-w64 gnatlink "undefined reference" mjamesb
@ 2011-04-10  6:18 ` Simon Wright
  0 siblings, 0 replies; 2+ messages in thread
From: Simon Wright @ 2011-04-10  6:18 UTC (permalink / raw)


mjamesb <mjamesb> writes:

> x86_64-w64-mingw32-gnatlink helloworld.ali
> /usr/lib/gcc/x86_64-w64-mingw32/4.5.2/adalib/libgnat.a(s-exctab.o): In function `system__exception_table__internal_exception':
> /home/user/mingw64/mingw64-x86_64-gcc-4.5.2-1/build/gcc/ada/rts/s-exctab.adb:154: undefined reference to `__gnat_eh_personality_sj'

What this is saying is that the RTS (run time system) s-exctab.o
(System.Exception_Table) contains a reference which isn't satisfied.

This is nothing to do with your code, it's that Ada.Text_IO calls in
vast chunks of the RTS including exception handling.

To see what's happening at link time, you'd need to ask for verbose
linker output:

- for verbose output from gnatlink (which calls up the linker):
$ gnatmake helloworld.adb -largs -v

- for verbose output from the linker itself:
$ gnatmake helloworld.adb -largs -Wl,-v 


'__gnat_eh_personality_sj' is to do with the way the RTS handles
 exceptions. Reading between the lines in
 http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gnat_ugn_unw/Exception-Handling-Control.html
 your problem will be related to the setjmp/longjmp method, and you
 could try 'gnatmake helloworld.adb --RTS=zcx', but in any
 case there's no excuse for the default RTS to be incomplete. I think
 you need to take this up with whoever built your compiler.



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

end of thread, other threads:[~2011-04-10  6:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-10  3:01 MinGW-w64 gnatlink "undefined reference" mjamesb
2011-04-10  6:18 ` Simon Wright

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox