1) +DSblended can be omitted entirely - it's the default on IA, and ignored on
PA
2) +DD64 is supported on both IA and PA for B.11.23
3) The $ORIGIN linker flag should be added to any B.11.11 or later linker - the
patch to the linker to support this on B.11.11 is pretty old and should be
applied by any customer wanting a supported HP-UX system. If for some reason
they don't have the patch, the presence of $ORIGIN just causes a couple of
extra path lookups that fail - no big deal.
There were only a few places that needed to be changed. I needed to change the
order of c++ and cc detection around in configure - it seems that if you do the
cross compilation stuff first, it messes up the "regular" case, which is the
more important one. In order for the GNU_CC tests to work, you must define
CC=gcc and CXX=g++ on the configure command line. If building 64 bit, you must
also specify CFLAGS=-m64 and CXXFLAGS=-m64. I also removed the extra arguments
for static library building as they were not only not necessary but they were
also making the build abort.
Mem and resource leaks in ldapsinit.c
1) I'm pretty sure the reference to socket should be fd instead. I don't know
why it compiled with socket in there . . . note to self: read compiler warnings
. . .
2) The cert returned by SSL_PeerCertificate is "dup"ed, so we need to call
CERT_DestroyCertificate to release it otherwise we'll leak references.
3) The hostname returned by SSL_RevealURL is strduped and must be freed.
Reviewed by Mark and Pete (Thanks!)
It also seems to be important in certain cases when using g++
to build shared libraries.
I was having weird errors building the CLUs on linux x86_64. These turned out to be due to the incorrect ordering of objects on the link line.
The LINK_EXE macro already has everything needed - it is not necessary to
supply extra libs in the form of the LDTOOLS_LIBS. Just specify them in the
correct order in EXTRA_LIBS. You don't need to set EXTRA_LIBS for every
platform - on *nix platforms, they are all the same, so just define them in a
common place in the correct order. Use PLATFORMLIBS to specify platform
dependent libs.
The one tricky thing is that LINK_EXE expects OBJS to have all of the objects.
This works if you only build one executable per makefile, but this makefile
builds several, so you need to get the executable specific .obj file in the
link line as well. I suppose I could have used target specific variable
assignment to OBJS, but that seemed messy to me, so I just added a $(filter ..)
to the LINK_EXE command which will add all of the .obj files specified in the
executable link target dependency list to the link line. The filter is to
filter out libraries and other dependencies, which are usually specified
elsewhere. This seems to work on linux x86_64 and HP IPF 64 just fine.
Reviewed by Mark, Dan, Chris (Thanks!)
The newly added README.rpm explains how to build an RPM.
Running ./configure will print the list of flags and what they do.
The getpass() function on HP-UX only allows 8 characters.
Since there is not (yet?) a better function, this fix
allows up to 256 character passwords using the raw
tty interfaces for no echo.
LDAP command line tools now accept 2 new options:
-ZZ (issue a startTLS request)
-ZZZ (like -ZZ but require a successful response).
API extensions:
ldap_ssl.h: LDAP_EXOP_START_TLS macro (OID of start TLS extended op.).
libssldap: Added ldap_start_tls_s() function.
libprldap: Added prldap_is_installed() and prldap_import_connection().
libldap: Added new LDAP_X_OPT_SOCKETARG option for ldap_get_option()
and ldap_set_option() (get/set the socketarg associated
with the main LDAP TCP connection).
liblber: Added new LBER_SOCKBUF_OPT_SOCK_ARG option for
ber_sockbuf_set_option() and ber_sockbuf_get_option()
(get/set the socketarg associated with a Sockbuf).
Also, some refactoring was done in libssldap to simplify the code.
Add support for generating PDB-format debug symbols with MSVC,
by setting MOZ_DEBUG_SYMBOLS=1 in the environment. This is to
be used in place of MOZ_PROFILE. r=wtc, dmose.
Add Makefile.client under mozilla/directory/c-sdk/config and call it
from mozilla/directory/Makefile (this "new" Makefile.client is
the same as the old mozilla/directory/c-sdk/Makefile that was
recently cvs removed).
Simplify the logic in mozilla/directory/build.mk and make sure the
command line tools are linked with the C++ compiler on all platforms
where necessary.
Recognize HP/UX 11.11 (treated the same as 11.00).
Replace an incorrect dependency on Makefile with a dependency on
Makefile.client inside the command line tools Makefile.client.
Updated NSPR and NSS component revision numbers.
Handle for part release numbers on Linux, e.g., 2.4.20-6
Use correct paths for NSPR headers and libraries.
Remove obsolete LDAP Makefiles (generated by configure these days).
Fix command line tools link error on Linux: link with -lstdc++