Mailing List Archive

mod_perl make fails with unrecognized argument
Hi there,

Trying to build mod_perl (1.21) using apxs
(apache_1.3.11) on an HP workstation (HP-UX 10.20).

After successful execution of the following:

perl Makefile.PL \
USE_APXS=1 \
WITH_APXS="/opt/webpages/apache_1.3.11/bin/apxs" \
EVERYTHING=1

I issued the 'make' command. Things were progressing
nicely until I received the following error:

rm -f libperl.so
ld -b -L/usr/local/lib -o libperl.so
mod_perl.lo perlxsi.lo perl_config.lo perl_util.lo
perlio.lo mod_perl_opmask.lo Apache.lo Constants.lo
ModuleConfig.lo Log.lo URI.lo Util.lo Connection.lo
Server.lo File.lo Table.lo -Wl,-E -Wl,-B,deferred
-L/usr/local/lib
/opt/perl500503/lib/5.00503/PA-RISC1.1/auto/DynaLoader/DynaLoader.a
-L/opt/perl500503/lib/5.00503/PA-RISC1.1/CORE -lperl
-lnsl_s -lndbm -ldld -lm -lc -lndir -lcrypt
ld: Unrecognized argument: -Wl,-E
ld: Usage: ld flags... files...
*** Error exit code 1

Stop.
*** Error exit code

Checking the generated Makefile, the CCDLFLAGS are set
as follows:

CCDLFLAGS = -Wl,-E -Wl,-B,deferred

Assuming that removing the -Wl, -E flags will solve
this problem, the question is what file do I edit so
that the changes can take affect?
I tried to change the -Wl, -E flags from the generated
Makefile file (even though I know that was not the
appropriate file). I looked at the Makefile.PL file
but again could not find where to make the changes.

If removing the flags will not solve this issue, any
ideas what the problem might be?

Thanks,

Kosta
_______________________________________________________
Do You Yahoo!?
Get your free @yahoo.ca address at http://mail.yahoo.ca
Re: mod_perl make fails with unrecognized argument [ In reply to ]
On Tue, 15 Feb 2000, Kosta Kouloufakos wrote:

> Trying to build mod_perl (1.21) using apxs
> (apache_1.3.11) on an HP workstation (HP-UX 10.20).

Coincidence! I was trying to do this yesterday.

> After successful execution of the following:
>
> perl Makefile.PL \
> USE_APXS=1 \
> WITH_APXS="/opt/webpages/apache_1.3.11/bin/apxs" \
> EVERYTHING=1
>
> I issued the 'make' command. Things were progressing
> nicely until I received the following error:
>
> rm -f libperl.so
> ld -b -L/usr/local/lib -o libperl.so
> mod_perl.lo perlxsi.lo perl_config.lo perl_util.lo
> perlio.lo mod_perl_opmask.lo Apache.lo Constants.lo
> ModuleConfig.lo Log.lo URI.lo Util.lo Connection.lo
> Server.lo File.lo Table.lo -Wl,-E -Wl,-B,deferred
> -L/usr/local/lib
> /opt/perl500503/lib/5.00503/PA-RISC1.1/auto/DynaLoader/DynaLoader.a
> -L/opt/perl500503/lib/5.00503/PA-RISC1.1/CORE -lperl
> -lnsl_s -lndbm -ldld -lm -lc -lndir -lcrypt
> ld: Unrecognized argument: -Wl,-E
> ld: Usage: ld flags... files...
> *** Error exit code 1
>
> Stop.
> *** Error exit code
>
> Checking the generated Makefile, the CCDLFLAGS are set
> as follows:
>
> CCDLFLAGS = -Wl,-E -Wl,-B,deferred

What's happening is that "-Wl,-E -Wl,-B,deferred" are
arguments to the =compiler= telling if to pass the
options "-E -B deferred" to the =linker=. However in
the Makefile in the 'apaci' sub-directory, the
"-Wl,-E -Wl,-B,deferred" arguments are being used by
the linker (ld).

Go to the 'apaci' sub-directory, edit the Makefile
to change "-Wl,-E -Wl,-B,deferred" to "-E -B deferred"
and redo the make.

This will then probably put you in the same position
as me: getting

ld: Invalid loader fixup for symbol "$000000024".
(the number varies)

when trying to link libperl.so

--
Andrew Benham adsb@nortelnetworks.com
Nortel Networks Plc, London Road, Harlow, Essex CM17 9NA, United Kingdom
Tel: +44 1279 402372 Fax: +44 1279 405746

I speak for myself, my views are not necessarily the views
of Nortel Networks or any other corporation.
Re: mod_perl make fails with unrecognized argument [ In reply to ]
Hello there,

On Wed, 16 Feb 2000, Andrew Benham wrote:

> What's happening is that "-Wl,-E -Wl,-B,deferred" are
> arguments to the =compiler= telling if to pass the
> options "-E -B deferred" to the =linker=. However in
> the Makefile in the 'apaci' sub-directory, the
> "-Wl,-E -Wl,-B,deferred" arguments are being used by
> the linker (ld).
>
> Go to the 'apaci' sub-directory, edit the Makefile
> to change "-Wl,-E -Wl,-B,deferred" to "-E -B deferred"
> and redo the make.
>
> This will then probably put you in the same position
> as me: getting
>
> ld: Invalid loader fixup for symbol "$000000024".
> (the number varies)
>
> when trying to link libperl.so

Been there, seen that.

I got the "Invalid loader fixup" message, too. AFAIK it results
from a non-PIC (position independent code) compilation of the
perl library - sometimes HP-UX seems to need "+Z" to compile PIC,
which is often not included in autoconf makefiles. Maybe this
can help you to proceed.

In my case, however, even after I recompiled my perl lib with +Z, I got
loads of missing symbols on apache startup. Finally I gave up
and returned to a statically linked mod_perl, thinking (not for the
first time) about switching to Linux :)


_____

Thomas Corte
<thomas@knipp.de>