At this point it seems as if this is a bug in the 2.10.1 version in binutils
running on solaris 8. When installed a directory is created called
/usr/local/sparc-sun-solaris2.8/bin/ that a copy of the binutils binaries are
made, in addition to the normal /usr/local/bin. One of those binaries, ld, causes
the problem and the way to fix it is just to rename it with an invalid name.
After that the compile works perfectly.
This is weird, both installed instances of ld are exactly the same. Speculation
is that this may be a platform specific problem with the interaction of gcc and
ld. The same error repeated on both gcc 2.95.2 and 2.95.3, both pkgadd's, both
solaris 8.
Sorry for taking up space but maybe this will help somebody else someday. If you
need details email me directly :)
Tod
Tod Thomas wrote:
> Here is the deal so far...
>
> The configure script creates a small c program and tries to compile it
> assuming that if the program can't run the compiler must be a cross compiler.
> Well I compiled it and ran it on my own, and it is core dumping. When I truss
> it I get this:
>
> execve("conftest", 0xEFFFFB74, 0xEFFFFB7C) argc = 1
> stat("conftest", 0xEFFFF8C0) = 0
> open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
> open("/usr/lib/libc.so.1", O_RDONLY) = 3
> fstat(3, 0xEFFFF69C) = 0
> mmap(0x00000000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xEF7C0000
> mmap(0x00000000, 778240, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xEF700000
> mmap(0xEF7B6000, 24464, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
> 3, 679936) = 0xEF7B6000
> mmap(0xEF7BC000, 6564, PROT_READ|PROT_WRITE|PROT_EXEC,
> MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xEF7BC000
> munmap(0xEF7A6000, 65536) = 0
> mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON,
> -1, 0) = 0xEF6F0000
> close(3) = 0
> open("/usr/lib/libdl.so.1", O_RDONLY) = 3
> fstat(3, 0xEFFFF69C) = 0
> mmap(0xEF7C0000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) =
> 0xEF7C0000
> close(3) = 0
> open("/usr/platform/SUNW,SPARCstation-5/lib/libc_psr.so.1", O_RDONLY) Err#2
> ENOENT
> Incurred fault #6, FLTBOUNDS %pc = 0x00010458
> siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
> Received signal #11, SIGSEGV [default]
> siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
> *** process killed ***
>
> See the last open? That library is missing on my machine. Did a google
> (dejahhhhh!) search and it turns out '_psr' stands for platform specific
> routines so that file missing is helping to hose my ./configure. I am going
> to try and grep some pkgmaps today to find the package that file is in, unless
> somebody beats me to it ... :)
>
> Tod
>
> Blue Lang wrote:
>
> > On Tue, 1 May 2001, Tod Thomas wrote:
> >
> > > originally built gcc 2.95.2 myself and never specified a cross-compile
> > > build so I didn't think the compiler was an issue, now I'm sure.
> >
> > the compiler isn't, but that fact that it thinks you're doing a
> > cross-compile is. i was thinking that something about the compiler install
> > was tricking configure into assuming crosscomp.
> >
> > try this:
> >
> > ./configure --host=sparc-sun-solaris2.8 --target=sparc-sun-solaris2.8
> > --build=sparc-sun-solaris2.8
> >
> > > Have you compiled ssh v2.4.0 on solaris8 using gcc? If so was it the
> > > ssh from ssh.com or openssh from ssh.org?
> >
> > not in the last week or so. :) it's plain as day in your configure output
> > - it says 'yes' to is-a-cross-compiler, and the error is 'won't cross
> > compile without ENDIAN_HOOHA set in b0rked.h' or whatever. if you knew
> > what value it wanted for ENDIAN_BLAH, you could just set it -
> >
> > but that would be a hack, no? ;)