Closed Bug 217499 Opened 22 years ago Closed 22 years ago

Clean up AIX libpath and configure script

Categories

(SeaMonkey :: Build Config, defect)

Other
AIX
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: pkwarren, Assigned: mozbugs-build)

Details

Attachments

(1 file)

By default, AIX builds include libpath information in binaries and shared libraries, which is used as a search path to locate shared libraries on the system. Mozilla builds do not explicitly set the libpath when linking, so often times the libpath in the shared libraries can look like this: ../../dist/bin:../../dist/lib:/home/pkw/sb/moz14/src/nsmoz/mozilla/dist/lib :/opt/freeware/lib:/usr/lpp/xlopt:/usr/lib/threads:/usr/vacpp/lib:/usr/lib:/lib The Mozilla builds find the correct path to the shared libraries by explicitly setting the LIBPATH variable in the startup script, but we should clean up the libpath to just include the default /usr/lib:/lib. We also need to clean up several things in the configure script for AIX to check for a working compiler, use the recommended compiler flags for generating shared libraries, and create some commonly used preprocessor defines.
Attached patch Patch v1Splinter Review
This patch does the following: 1) Sets the preprocessor define AIX in the configure script. This is used in several places throughout the codebase and should be set automatically. 2) Changes the default command to create shared libraries from: makeC++SharedLib_r -ldl -bM:SRE -p1 -brtl -bso -bsymbolic -bnortllib to $(CXX)/$(CC) -qmkshrobj=1 -G -bnoentry This is the preferred method for building shared libraries with compiler versions 5 and up. In addition, the makeC++SharedLib_r shell script has problems with command line arguments of the form "-Wl,-brtl" which are perfectly valid to pass to the compiler, and is no longer actively developed or supported. 3) Adds a check for VisualAge C++ v5.0.2 or greater, which Mozilla is known to compile with. Older versions of the compiler are out of service, not supported, and no longer known to build Mozilla. 4) Adds a new check for the sys/inttypes.h header file. There was only one usage of the preprocessor define AIX4_3 in the code, and that was to determine whether to use the /usr/include/sys/inttypes.h header file which was added in AIX 4.3. Previously the AIX4_3 define had to be manually specified in the CFLAGS environment variable in order to build properly on AIX. 5) Sets the default libpath to /usr/lib:/lib.
Attachment #130487 - Flags: review?(cls)
Comment on attachment 130487 [details] [diff] [review] Patch v1 The patch looks fine with the exception of the libpath change. The libpath change looks akin to setting -rpath which we've had problems with beforehand. If someone has mozilla installed on the system in /usr/lib and then runs another copy from their homedir, will the binary use the copies of the libs from the homedir or use the ones from /usr/lib? How about if the files are compiled to use /usr/local as the prefix (which is the default)?
The run-mozilla.sh script explicitly sets the LIBPATH environment variable to ${MOZ_DIST_BIN}:${MRE_HOME}${LIBPATH+":$LIBPATH"}, where ${MOZ_DIST_BIN} is the directory where the run-mozilla.sh script is located. The LIBPATH variable is always used before the libpath setting in the libraries. This change still allows different installations of Mozilla (assuming the default startup script is not changed), but it prevents Mozilla from ever looking in places like /home/pkw/sb/moz14/src/nsmoz/mozilla/dist/lib for libraries. If a user was really motivated, they could create their own custom system libraries in those paths and override expected behavior.
Attachment #130487 - Flags: review?(cls) → review+
Comment on attachment 130487 [details] [diff] [review] Patch v1 Requesting drivers approval for AIX specific configuration changes.
Attachment #130487 - Flags: approval1.5?
Comment on attachment 130487 [details] [diff] [review] Patch v1 a=asa (on behalf of drivers) for checkin to Mozilla 1.5
Attachment #130487 - Flags: approval1.5? → approval1.5+
Fix was checked in last Friday.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Verified in today's build.
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: