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.
Description: Replace ORO Regexp with java 1.4 Pattern/Matcher
Fix Description: I removed any and all references to oro from build.properties and build.xml. For the code replacement, the conversion was pretty straightforward. I had to slightly modify the regular expressions but for the most part they just work the same as the oro ones. ORO uses a PatternInput to hold the state of the iteration over the string to match, but the Matcher class does that implicitly. For the most part, it didn't matter because the code didn't really use the state, it would just always reset the PatternInput to the beginning of the string, so I just used the String instead. There was one place where I needed to keep track of state, so I used the Matcher object instead of a Perl5Pattern + PatternInput. Thanks to nkinder@redhat.com for the review.
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++
* We must use the full path to the source file when calling MSVC so that debugging information shows up in the object files.
* Because of cygwin's use of /cygdrive when using full paths, we must use a cygwin-wrapper script in some cases to allow native win32 programs to use a fully qualified cygwin path.
* We have to call configure using the full path so that $(srcdir) contains the
full path in the Makefiles. The rules have been changed for win32 so that it
always use $(srcdir)/$*.{c,cpp} as the sourcefile name even when the file is in
the cwd. This works around both the /cygdrive issue and the msvc's path info
optimization.
* We still use the wrapper when calling rc.exe & nsinstall. nsinstall
frequently takes multiple args and is called all over the tree so changing each
calling site is going to be expensive. (I'll have to check the logs again but
I think the rc wrapping can go.)
* nspr & ldap still use the wrappers for all native win32 progs. Neither nspr
nor ldap uses the acoutput-fast.pl script to speed up the substitution of
@srcdir@ into their Makefiles so, makefile substitution will break if we use
dos-paths.
* In the handful of directories where we copy srcfiles from another directory
in lieu of using VPATHs, we have to now copy those files to $(srcdir) so that
the default rules can find them.
Bug #141834 r=leaf,wtc,dmose,mcs
Copying of NSS root cert shared lib. does not happen by default.
-S option has been removed.
-s option added to disable SSL related tests from the cmd line.
Remove the acceptance test README (moved to the web site).
length or tag is split across buffers.
Improve backwards compatibility by setting *Bytes_Scanned to zero
when errors occur; use errno to report specific errors.
A queue of pending outbound requests is kept. UnBind requests are NOT
queued however.
Abandon requests are not sent if a request is not outstanding.
Cleaned up the code in result.c to avoid use of magic return values
such as -1 and -2. Also removed some dead code and dead files.
ltest (test.c) now supports SSL and async I/O options.