[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