develooper Front page | perl.dbi.users | Postings from February 2008

RE: make error-> ld: Unrecognized argument: -Wl,+b...

Thread Previous | Thread Next
From:
Capacio, Paula J
Date:
February 21, 2008 10:02
Subject:
RE: make error-> ld: Unrecognized argument: -Wl,+b...
>On February 19, 2008 12:22 PM, Jonathan Leffler
<jonathan.leffler@gmail.com> wrote:
>>On Feb 19, 2008 10:04 AM, Capacio, Paula J <PCAPACIO@amfam.com> wrote:

>>I am getting the following error from make 
>>ld: Unrecognized argument:
>>-Wl,+b/usr/oracle/client/10.2/lib:/usr/oracle/client/10.2/rdbms/lib
>>Fatal error.
>>*** Error exit code 1

>The '-Wl,+b...' notation is an instruction to the C compiler to pass
the '+b...' 
>to the loader; the loader itself doesn't know how to deal with -Wl
options.
>We can debate whether this is a bug in DBD::Oracle or not - or a bug in
the way 
>Perl was built on your machine.  Since Perl mainly works OK and
DBD::Oracle doesn't,
>I'd be more inclined to say DBD::Oracle is at fault, but DBD::Informix
(which I 
>know a lot better than DBD::Oracle) faces roughly similar issues and my

>recommendation is to build Perl so it uses the C compiler to build
shared objects
>rather than using 'ld' (or /usr/bin/ld) directly.

I'm reluctant to build Perl, primarily because there are already 20
other modules that I have already installed into this Perl.  Secondly,
if I can't build a Perl C module, what luck am I going to have building
a whole language.

>If you are in dire straights, you can hack Makefile to exclude the
'-Wl,' 
>prefix from the arguments.  That is not a satisfactory solution - you'd

>need to repeat the process every time you need to rebuild the Makefile.

I am and although I really don't understand the repeated rebuild of the
Makefile, I was SUCCESSFUL! 
I received a reply from Rich Malafa (which incidentally included a cc to
this list but has not shown up in the archives) that said to check
Makefile.PL for:
$m =~ s/LD_RUN_PATH=(\S+)\s+(\S+)/$2 -Wl,+b$1/; 
He said there should be no space between end of the +b and the $, that
was the error in the original 1.19 version of DBD::Oracle for us HP
folks.

I found that line in the dynamic_lib subroutine in Makefile.PL and
changed it to:
$m =~ s/LD_RUN_PATH=(\S+)\s+(\S+)/$2 +b$1/;
I then did a 'make realclean', followed by 'perl Makefile.PL', and ran
'make' and it worked.  I proceeded to run 'make test' but it failed with
the original error.  That's when I realized that you were saying that
the Makefile needed to be rebuilt between each make operation.  So I did
'make realclean', 'perl Makefile.PL', then 'make test' and that worked,
so I followed up with 'make realclean', 'perl Makefile.PL', 'make
install'.  I am now able to run perl scripts using DBD-Oracle connecting
to remote databases.  

If you can point me to a resource or explain the need to rebuild the
Makefile, that would be icing on the cake.
Thanks Jonathan and Rich for providing the info needed.
Paula
 
 


Thread Previous | Thread Next


Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About