php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #22035 EXTRA_LDFLAGS for AIX not quite right
Submitted: 2003-02-03 11:21 UTC Modified: 2003-02-03 11:36 UTC
From: trawick at apache dot org Assigned:
Status: Closed Package: Apache2 related
PHP Version: 4.3.0 OS: AIX
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: trawick at apache dot org
New email:
PHP Version: OS:

 

 [2003-02-03 11:21 UTC] trawick at apache dot org
In the build for apache2filter, there is some AIX-specific
logic to set EXTRA_LDFLAGS:

APXS_SBINDIR=`$APXS -q SBINDIR`
EXTRA_LDFLAGS="$EXTRA_LDFLAGS \ -Wl,-bI:$APXS_SBINDIR/httpd.exp"

Problem:

1) With Apache 2.0, httpd.exp is in the libexec dir, not 
   the sbin dir, so the link step fails.

2) Once the path for httpd.exp is tweaked, the DSO is built
   but run-time linking is not enabled so PHP segfaults
   the first time it tries to call an APR function
   (httpd.exp doesn't have apr_ stuff in it; run-time
   linking is used to resolve APR references)

   The fix for that is to add -Wl,-brtl to the link step.

For my own gcc build I had to include -L/path/to/libgcc.a -lgcc in EXTRA_LDFLAGS to resolve references to some arithmetic operations, but I doubt that is something for PHP to worry about.

So here is a patch to sapi/apache2filter/config.m4
(tested with 4.3.0, but CVS HEAD looks like patch should apply fine there too).

See http://www.apache.org/~trawick/php.patch1

A funny thing about existing code in the area of the patch
is the use of $(INSTALL_ROOT) in front of directories printed by "apxs -q"...  I don't see how that makes any
sense, but for my builds INSTALL_ROOT was unset so it
worked.

Here is a line from config.m4 that has an example of
this use of $(INSTALL_ROOT):

APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`

My patch depends on the setting of APXS_LIBEXECDIR.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-02-03 11:36 UTC] sniper@php.net
Patch committed. Thanks!

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 28 12:01:27 2024 UTC