[OSUNIX-dev] Open64 port HelloWorld works!
"C. Bergström"
cbergstrom at netsyncro.com
Wed Mar 11 06:57:53 GMT 2009
Just wanted to share a quick update with everyone..
With some help from Rayson we're down to the last parts
1) Fix segfault with ipa (I suspect FreeBSD/OpenSolaris)
2) Minor linker change (Sun ld only)
3) CPUID for platforms without /proc/cpuinfo (FreeBSD/OpenSolaris)
4) Makefile clean-up
Anyone who wants to help can email me and I'll set them up with ssh access.
-----------------
Here's the patch against current svn.
http://pkg.osunix.org/open64/open64-opensolaris-fbsd-merged-3-12.diff.gz
------------------
Currently adding -ipa will dump core
/usr/local/src/bar/open64/usr/lib/ipl -PHASE:p:i -O2 -show -TARG:abi=n32
-LANG:cxx_openmp=on -LANG:=ansi_c -fB,hello.B -fo,hello.o hello.c -cmds
opencc -show -TARG:abi=n32 -TARG:processor=anyx86 -TARG:sse2=off
-TARG:mmx=off -TARG:sse=off -TARG:sse3=off -TARG:3dnow=off -TARG:sse4a=off
core file:
http://pkg.osunix.org/open64/error-core
Stack:
where
[1] kill(0x5e09, 0x4, 0xffffff022a6360c0, 0xffffdd7fff5037aa, 0x50,
0xfb0), at 0xffffdd7fff50389a
=>[2] ErrMsg_Report_User(edesc = 0x42d7f0, ecode = 1010, line = 0, file
= (nil), vp = 0xfffffd7fffdfed00), line 1148 in "errors.cxx"
[3] ErrMsg_Report(ecode = 1010, line = 0, file = (nil), vp =
0xfffffd7fffdfed00), line 1175 in "errors.cxx"
[4] ErrMsgLine(ecode = 1010, line = 0, ...), line 1221 in "errors.cxx"
[5] catch_signal(sig = 11, error_num = 0), line 305 in "errors.cxx"
[6] __sighndlr(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xffffdd7fff4fae46
[7] call_user_handler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at
0xffffdd7fff4ee00f
[8] sigacthandler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xffffdd7fff4ee21e
---- called from signal handler with signal 11 (SIGSEGV) ------
[9] 0x0(0xb, 0x439220, 0x0, 0x1, 0x0, 0xffffdd7fffdfb650), at 0x0
[10] load_components(argc = 21, argv = 0xfffffd7fffdff3a8), line 509
in "driver.cxx"
[11] main(argc = 21, argv = 0xfffffd7fffdff3a8), line 2244 in "driver.cxx"
---------
Linker should pass -R instead of -rpath-link
/opt/gcc/gcc-4.1/libexec/gcc/i386-pc-solaris2.11/4.1.2/collect2 -V -Y
P,/usr/ccs/lib:/usr/lib -Qy /usr/lib/crt1.o /usr/lib/crti.o
/usr/lib/values-Xa.o
/opt/gcc/gcc-4.1/lib/gcc/i386-pc-solaris2.11/4.1.2/crtbegin.o
-L/usr/local/src/bar/open64//usr/lib/32
-L/opt/gcc/gcc-4.1/lib/gcc/i386-pc-solaris2.11/4.1.2
-L/opt/gcc/gcc-4.1/lib/gcc/i386-pc-solaris2.11/4.1.2/../../..
-rpath-link /usr/local/src/bar/open64//usr/lib/32 hello.o -lgcc -lgcc_eh
-lc -lgcc -lgcc_eh
/opt/gcc/gcc-4.1/lib/gcc/i386-pc-solaris2.11/4.1.2/crtend.o /usr/lib/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1641
ld: elf error: file /usr/local/src/bar/open64//usr/lib/32: elf_begin:
I/O error: region read: Is a directory
ld: fatal: file processing errors. No output written to a.out
collect2: ld returned 1 exit status
With that change the hello world will link and run..
Hope I haven't made too much noise..
Thanks
./Christopher
----
Community driven OpenSolaris Technology - http://www.osunix.org
blog: http://www.codestrom.com
More information about the OSUNIX-dev
mailing list