gcc5.1.0 cross compile for sparc solaris 10

322 views
Skip to first unread message

Gagandeep Arora

unread,
May 14, 2015, 6:25:32 PM5/14/15
to golan...@googlegroups.com
Hello,

I cross compiled he gcc5.1.0 for sparc solaris 10 on my Fedora 20 X86_64 and getting undefined reference errors when static linking against libgo. However, the dynamic linking works fine with no errors:

[client]$  /opt/cross/bin/sparc-sun-solaris2.10-gccgo -v -static-libgo -o hello hello.go
Using built-in specs.
COLLECT_GCC=/opt/cross/bin/sparc-sun-solaris2.10-gccgo
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/lto-wrapper
Target: sparc-sun-solaris2.10
Configured with: ../gcc_cross-5.1.0/configure --target=sparc-sun-solaris2.10 --with-gnu-as --with-gnu-ld --prefix=/opt/cross/ -with-sysroot=/opt/cross/sysroot/ --disable-libgcj --enable-languages=c,c++,go -v
Thread model: posix
gcc version 5.1.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/go1 hello.go -quiet -dumpbase hello.go -mcpu=v9 -auxbase hello -version -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0 -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib -L/opt/cross/sysroot/lib -L/opt/cross/sysroot/usr/lib -o /tmp/ccx9FhjV.s
GNU Go (GCC) version 5.1.0 (sparc-sun-solaris2.10)
compiled by GNU C version 4.8.3 20140911 (Red Hat 4.8.3-7), GMP version 5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Go (GCC) version 5.1.0 (sparc-sun-solaris2.10)
compiled by GNU C version 4.8.3 20140911 (Red Hat 4.8.3-7), GMP version 5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/bin/as -v -V -Qy -s -xarch=v8plus -32 -o /tmp/ccB6dkeC.o /tmp/ccx9FhjV.s
GNU assembler version 2.25 (sparc-sun-solaris2.10) using BFD version (GNU Binutils) 2.25
COMPILER_PATH=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/libexec/gcc/sparc-sun-solaris2.10/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/bin/
LIBRARY_PATH=/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/:/opt/cross/sysroot/lib/:/opt/cross/sysroot/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/collect2 -plugin /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/liblto_plugin.so -plugin-opt=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccna369i.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc --sysroot=/opt/cross/sysroot/ -V -m elf32_sparc_sol2 -Y P,/opt/cross/sysroot//lib:/opt/cross/sysroot//usr/lib -Qy -o hello /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crt1.o /opt/cross/sysroot/usr/lib/crti.o /opt/cross/sysroot/usr/lib/values-Xa.o /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crtbegin.o -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0 -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib -L/opt/cross/sysroot/lib -L/opt/cross/sysroot/usr/lib /tmp/ccB6dkeC.o -lgobegin -Bstatic -lgo -Bdynamic -lpthread -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc -lc /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crtend.o /opt/cross/sysroot/usr/lib/crtn.o
GNU ld (GNU Binutils) 2.25
  Supported emulations:
   elf32_sparc_sol2
   elf32_sparc
   elf64_sparc_sol2
   elf64_sparc
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.bind':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:2139: undefined reference to `__xnet_bind'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.connect':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:2158: undefined reference to `__xnet_connect'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.socketpair':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:2194: undefined reference to `__xnet_socketpair'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.getsockopt':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:2212: undefined reference to `__xnet_getsockopt'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.setsockopt':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:1571: undefined reference to `setsockopt'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.sendto':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:2237: undefined reference to `__xnet_sendto'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.Nanosleep':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:794: undefined reference to `nanosleep'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.Setdomainname':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:966: undefined reference to `setdomainname'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.Listen':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:1616: undefined reference to `listen'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.Shutdown':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:1635: undefined reference to `shutdown'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.socket':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:2176: undefined reference to `__xnet_socket'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.sendmsg':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:2276: undefined reference to `__xnet_sendmsg'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.recvmsg':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:2256: undefined reference to `__xnet_recvmsg'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.recvfrom':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:1596: undefined reference to `recvfrom'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.getpeername':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:1553: undefined reference to `getpeername'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.getsockname':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:1536: undefined reference to `getsockname'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(syscall.o): In function `syscall.accept':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/libcalls.go:1517: undefined reference to `accept'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(thread-sema.o): In function `runtime_semacreate':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/../../../gcc_cross-5.1.0/libgo/runtime/thread-sema.c:40: undefined reference to `sem_init'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(thread-sema.o): In function `runtime_semasleep':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/../../../gcc_cross-5.1.0/libgo/runtime/thread-sema.c:77: undefined reference to `sem_timedwait'
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/../../../gcc_cross-5.1.0/libgo/runtime/thread-sema.c:107: undefined reference to `sem_wait'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(thread-sema.o): In function `runtime_semawakeup':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/../../../gcc_cross-5.1.0/libgo/runtime/thread-sema.c:125: undefined reference to `sem_post'
/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/libgo.a(yield.o): In function `runtime_osyield':
/disk_720g/scratch/software/linux/gcc/build-gcc/sparc-sun-solaris2.10/libgo/../../../gcc_cross-5.1.0/libgo/runtime/yield.c:43: undefined reference to `sched_yield'
collect2: error: ld returned 1 exit status

The program is a simple hello world program.
[client]$ cat hello.go 
package main

import "fmt"

func main() {
fmt.Println("Hello world!")
}

Regards,
Gagan

Ian Lance Taylor

unread,
May 14, 2015, 6:41:29 PM5/14/15
to Gagandeep Arora, golang-nuts
On Thu, May 14, 2015 at 3:25 PM, Gagandeep Arora <arorag...@gmail.com> wrote:
>
> I cross compiled he gcc5.1.0 for sparc solaris 10 on my Fedora 20 X86_64 and
> getting undefined reference errors when static linking against libgo.
> However, the dynamic linking works fine with no errors:

I think that on Solaris you need to add -lsocket -lnsl. And they have
to follow -lgo, you you'll probably have to write something like

gccgo -o hello hello.go -Bstatic -lgo -Bdynamic -lsocket -lnsl

It would be better if the gccgo driver added these libraries on
Solaris. Want to write a patch for gcc/go/gospec.c? Maybe
gcc/config/sol2.h could define some appropriate target macros, or
something like that.

Ian

Gagandeep Arora

unread,
May 14, 2015, 8:22:44 PM5/14/15
to golan...@googlegroups.com, arorag...@gmail.com
Hello Ian,

Thanks for the prompt response. I tried your suggestion but it is still not doing static linking against libgo. See the output of gccgo and ldd below.

[client]$  /opt/cross/bin/sparc-sun-solaris2.10-gccgo  -v -o hello hello.go -Wl,-Bstatic -lgo -Wl,-Bdynamic -lsocket -lnsl -lrt
Using built-in specs.
COLLECT_GCC=/opt/cross/bin/sparc-sun-solaris2.10-gccgo
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/lto-wrapper
Target: sparc-sun-solaris2.10
Configured with: ../gcc_cross-5.1.0/configure --target=sparc-sun-solaris2.10 --with-gnu-as --with-gnu-ld --prefix=/opt/cross/ -with-sysroot=/opt/cross/sysroot/ --disable-libgcj --enable-languages=c,c++,go -v
Thread model: posix
gcc version 5.1.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/go1 hello.go -quiet -dumpbase hello.go -mcpu=v9 -auxbase hello -version -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0 -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib -L/opt/cross/sysroot/lib -L/opt/cross/sysroot/usr/lib -o /tmp/ccTe7GP3.s
GNU Go (GCC) version 5.1.0 (sparc-sun-solaris2.10)
compiled by GNU C version 4.8.3 20140911 (Red Hat 4.8.3-7), GMP version 5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Go (GCC) version 5.1.0 (sparc-sun-solaris2.10)
compiled by GNU C version 4.8.3 20140911 (Red Hat 4.8.3-7), GMP version 5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/bin/as -v -V -Qy -s -xarch=v8plus -32 -o /tmp/ccBHBGGV.o /tmp/ccTe7GP3.s
GNU assembler version 2.25 (sparc-sun-solaris2.10) using BFD version (GNU Binutils) 2.25
COMPILER_PATH=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/libexec/gcc/sparc-sun-solaris2.10/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/bin/
LIBRARY_PATH=/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/:/opt/cross/sysroot/lib/:/opt/cross/sysroot/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/collect2 -plugin /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/liblto_plugin.so -plugin-opt=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccVpNEzN.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc --sysroot=/opt/cross/sysroot/ -V -m elf32_sparc_sol2 -Y P,/opt/cross/sysroot//lib:/opt/cross/sysroot//usr/lib -Qy -o hello /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crt1.o /opt/cross/sysroot/usr/lib/crti.o /opt/cross/sysroot/usr/lib/values-Xa.o /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crtbegin.o -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0 -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib -L/opt/cross/sysroot/lib -L/opt/cross/sysroot/usr/lib /tmp/ccBHBGGV.o -Bstatic -lgo -Bdynamic -lsocket -lnsl -lrt -lgobegin -lgo -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc -lc /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crtend.o /opt/cross/sysroot/usr/lib/crtn.o
GNU ld (GNU Binutils) 2.25
  Supported emulations:
   elf32_sparc_sol2
   elf32_sparc
   elf64_sparc_sol2
   elf64_sparc


[Solaris]$ ldd hello
        libgo.so.7 =>    (file not found)
        libsocket.so.1 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libm.so.2 =>     /lib/libm.so.2
        libgcc_s.so.1 =>         (file not found)
        libc.so.1 =>     /lib/libc.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.so.1
        libdoor.so.1 =>  /lib/libdoor.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgen.so.1 =>   /lib/libgen.so.1
        /lib/libm/libm_hwcap1.so.2
        /platform/SUNW,SPARC-Enterprise/lib/libc_psr.so.1

Regards,
Gagan

Ian Lance Taylor

unread,
May 14, 2015, 8:25:47 PM5/14/15
to Gagandeep Arora, golang-nuts
On Thu, May 14, 2015 at 5:22 PM, Gagandeep Arora <arorag...@gmail.com> wrote:
>
> Thanks for the prompt response. I tried your suggestion but it is still not
> doing static linking against libgo. See the output of gccgo and ldd below.

My apologize, you still need the -static-libgo option. I thought you
didn't but I was wrong.

Ian

Gagandeep Arora

unread,
May 14, 2015, 9:14:53 PM5/14/15
to golan...@googlegroups.com, arorag...@gmail.com
Thanks Ian, I figured it out, the following works:

[client]$  /opt/cross/bin/sparc-sun-solaris2.10-gccgo -v -static-libgo -o hello hello.go -Wl,-dy -lsocket -lnsl -lrt
Using built-in specs.
COLLECT_GCC=/opt/cross/bin/sparc-sun-solaris2.10-gccgo
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/lto-wrapper
Target: sparc-sun-solaris2.10
Configured with: ../gcc_cross-5.1.0/configure --target=sparc-sun-solaris2.10 --with-gnu-as --with-gnu-ld --prefix=/opt/cross/ -with-sysroot=/opt/cross/sysroot/ --disable-libgcj --enable-languages=c,c++,go -v
Thread model: posix
gcc version 5.1.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/go1 hello.go -quiet -dumpbase hello.go -mcpu=v9 -auxbase hello -version -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0 -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib -L/opt/cross/sysroot/lib -L/opt/cross/sysroot/usr/lib -o /tmp/ccC1jsKl.s
GNU Go (GCC) version 5.1.0 (sparc-sun-solaris2.10)
compiled by GNU C version 4.8.3 20140911 (Red Hat 4.8.3-7), GMP version 5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Go (GCC) version 5.1.0 (sparc-sun-solaris2.10)
compiled by GNU C version 4.8.3 20140911 (Red Hat 4.8.3-7), GMP version 5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/bin/as -v -V -Qy -s -xarch=v8plus -32 -o /tmp/cc8ck7r5.o /tmp/ccC1jsKl.s
GNU assembler version 2.25 (sparc-sun-solaris2.10) using BFD version (GNU Binutils) 2.25
COMPILER_PATH=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/libexec/gcc/sparc-sun-solaris2.10/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/bin/
LIBRARY_PATH=/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/:/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib/:/opt/cross/sysroot/lib/:/opt/cross/sysroot/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-shared-libgcc' '-mcpu=v9'
 /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/collect2 -plugin /opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/liblto_plugin.so -plugin-opt=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/5.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccaDTwaP.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc --sysroot=/opt/cross/sysroot/ -V -m elf32_sparc_sol2 -Y P,/opt/cross/sysroot//lib:/opt/cross/sysroot//usr/lib -Qy -o hello /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crt1.o /opt/cross/sysroot/usr/lib/crti.o /opt/cross/sysroot/usr/lib/values-Xa.o /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crtbegin.o -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0 -L/opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/../../../../sparc-sun-solaris2.10/lib -L/opt/cross/sysroot/lib -L/opt/cross/sysroot/usr/lib /tmp/cc8ck7r5.o -dy -lsocket -lnsl -lrt -lgobegin -Bstatic -lgo -Bdynamic -lpthread -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc -lc /opt/cross/lib/gcc/sparc-sun-solaris2.10/5.1.0/crtend.o /opt/cross/sysroot/usr/lib/crtn.o
GNU ld (GNU Binutils) 2.25
  Supported emulations:
   elf32_sparc_sol2
   elf32_sparc
   elf64_sparc_sol2
   elf64_sparc


[solaris]$ ldd hello
        libsocket.so.1 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        librt.so.1 =>    /lib/librt.so.1
        libpthread.so.1 =>       /lib/libpthread.so.1
        libm.so.2 =>     /lib/libm.so.2
        libgcc_s.so.1 =>         /opt/csw/lib/libgcc_s.so.1
        libc.so.1 =>     /lib/libc.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.so.1
        libaio.so.1 =>   /lib/libaio.so.1
        libdoor.so.1 =>  /lib/libdoor.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgen.so.1 =>   /lib/libgen.so.1
        /lib/libm/libm_hwcap1.so.2
        /platform/SUNW,SPARC-Enterprise/lib/libc_psr.so.1

Regards,
Gagan


Satish Puranam

unread,
May 15, 2015, 12:13:07 AM5/15/15
to golan...@googlegroups.com
Hello Gagan,

I have been tinkering with compiling a GCC cross complier for Solaris sparc myself, was wondering if you could share how did you go about?

Regards,
Satish

Gagandeep Arora

unread,
May 15, 2015, 1:19:02 AM5/15/15
to golan...@googlegroups.com
Hello Satish,


Regards,
Gagan

Satish Puranam

unread,
May 15, 2015, 11:08:57 AM5/15/15
to golan...@googlegroups.com
Thanks that was very helpful in particular the bits about generating static binaries.

- satish
Reply all
Reply to author
Forward
0 new messages