Open64 can finally compile HelloWorld at -ipa.

There are still a few steps that need to be done "by hand", including
hand modifying the makefile in the final make phrase. And Solaris'
make does not like the ".IGNORE" directive in the makefile, so it's
likely that we will require the user to install the GNU toolchain
before installing Open64...

There is still lots of work to be done, but most of them are just path
of things not right, and things like the Solaris linker flags not
compatible with the Linux linker flags, etc... luckily so far most of
the issues do not require major code changes.

Rayson



On Wed, Mar 11, 2009 at 1:57 AM, "C. Bergstr?m"
<cbergstrom at netsyncro.com> wrote:
>
> 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
>

Reply via email to