2009/4/4 Hugo Mills <h...@carfax.org.uk>:
> On Sat, Apr 04, 2009 at 04:25:21PM +0100, Victor Churchill wrote:
>>
>>  gcc -m32 -o ctxhx -L/u01/app/oracle/product/10.2.0/db_1/ctx/lib32/
>> -L/u01/app/oracle/product/10.2.0/db_1/lib32/
>> -L/u01/app/oracle/product/10.2.0/db_1/lib32/stubs/
>> /u01/app/oracle/product/10.2.0/db_1/ctx/lib/ctxhx.o
>> -L/u01/app/oracle/product/10.2.0/db_1/ctx/lib/ -ldl -lm -lctxhx
>> -Wl,-rpath,/u01/app/oracle/product/10.2.0/db_1/ctx/lib -lsnls10
>> -lnls10  -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10
>> -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10  `cat
>> /u01/app/oracle/product/10.2.0/db_1/lib/sysliblist`
>>
>> /usr/bin/ld: skipping incompatible
>> /usr/lib/gcc/x86_64-linux-gnu/4.2.4/../../../libpthread.so when
>> searching for -lpthread
>> /usr/bin/ld: skipping incompatible
>> /usr/lib/gcc/x86_64-linux-gnu/4.2.4/../../../libpthread.a when
>> searching for -lpthread
>> /usr/bin/ld: skipping incompatible /usr/bin/../lib/libpthread.so when
>> searching for -lpthread
>> /usr/bin/ld: skipping incompatible /usr/bin/../lib/libpthread.a when
>> searching for -lpthread
>> /usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when
>> searching for -lpthread
>> /usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when
>> searching for -lpthread
>> /usr/bin/ld: cannot find -lpthread
>> collect2: ld returned 1 exit status
>
>   It's only searching /usr/lib/-style directories. On a 64-bit
> machine, those are likely to be 64 bit. The incompatibility it's
> complaining about is from ld, which knows that it's building for a
> 32-bit architecture (why? is the original code not 64-bit clean?),

presumably not...

> and
> so is throwing out the 64-bit libs it's finding on the search path.
>
>   One nasty option is to try hacking -L/lib32 into the makefile for
> that particular command, and see what it does.

Interestingly, after sending the OP I looked at:
ora...@pe2950:~/install/database$ echo $LD_LIBRARY_PATH
/usr/lib

So I then said
ora...@pe2950:~/install/database$ export
LD_LIBRARY_PATH="/lib32:/usr/lib32:$LD_LIBRARY_PATH"

and then re-ran the installer, but no difference in the result. (Not
even in the list of "/usr/bin/ld: skipping incompatible" lines, which
surprised me).

I am trying to find the line in the make file that corresponds to this
gcc line but that is itself quite hard. Does not seem to be quite
where I thought, but it is of course all $(PARAMETER)ised.

>
>   Another alternative might be to try running that particular bit of
> the build through the "linux32" wrapper, as that should give it a
> 32-bit-like environment to run in.

... so I shall give that a go!
(Hadn't come across that... thank you.)


>
>   My limited experience of building 32-bit stuff on a 64-bit platform
> hasn't been terribly good, and generally comes down to "run it in a
> linux32-wrapped chroot of a 32-bit install of the OS", or "run it in a
> 32-bit VM", which are much the same thing at this level.

I guess we could end up doing that, even.

<snip>
>> INFO: /usr/bin/make: error while loading shared libraries:
>> libpthread.so.0: wrong ELF class: ELFCLASS32
>>
>> So that's not what the 'incompatible' is about.
>
>   I suspect that that's *make* failing to start, as it's trying to
> load the thread libs and having problems. So it might actually be a
> viable solution to your build problem -- except that the build
> tools themselves won't work if you do that. :(

Now  /that/ made me think for 30 seconds and then ... well, my
keyboard needed a clean anyway ;-)

-- 
Please post to: Hampshire@mailman.lug.org.uk
Web Interface: https://mailman.lug.org.uk/mailman/listinfo/hampshire
LUG URL: http://www.hantslug.org.uk
--------------------------------------------------------------

Reply via email to