NSS community/maintainer types,

I've been doing some hacking to sort out remaining issues with getting 32-bit 
build support on OS X 10.6, allowing for universal builds, and I wanted to make 
sure I was headed in the right direction, such that what I'm doing might be 
acceptable as patches. I've been working with the 3.12.9 build and checking 
against the CVS head to see what's already been patched in the Makefile 
infrastructure. Here's what I've scoped out thus far:

1) coreconf/Darwin.mk needs a few changes, mostly to make sure that, similar to 
the "-arch x86_64" appended to CC for 64-bit builds, "-arch i386" is appended 
for 32-bit builds. I've compared the behaviour under 10.6 to what I see in the 
logs on the Tinderbox builds, and it looks to me that the gcc for Xcode 3.1.X 
emits 32-bit binaries by default, whereas the behaviour changes on 10.6/Xcode 
3.2.X to default to 64-bit. It shouldn't break anything to  be explicit in both 
cases.
2) nsinstall.c needs code changes to be able to call out to lipo for 
installation of binaries, which should also require an additional option ("-u") 
to use lipo instead of doing the copy operations itself
3) the above would require further corresponding changes to the Makefile 
infrastructure (chiefly coreconf/rules.mk) to allow nsinstall invocations to be 
changed for appropriate targets (LIBRARY, SHARED_LIBRARY, PROGRAM)
4) I'm not entirely clean on why NSDISTMODE defaults to relative symlinks, 
except perhaps it's easiest to have that as a default behaviour in a dev 
environment, something that seems like it ought to be documented

Although it's not strictly related, one sticky wicket seems to be dealing with 
having NSPR already built in a separate tree. The ns_build_all target assumes 
that it needs to attend to this, and although it's easy enough to work out what 
targets need to be called, the workaround is somewhat fragile. It would seem 
preferable if something like defining NSPR_LIB_DIR when nss/Makfile is first 
invoked with the ns_build_all target would change the NSPR pre-req 
(build_nspr), rather than having people work out which steps to subtract and 
performing these steps. Also: it seems like setting NSPR_LIB_DIR should change 
LDOPTS in coreconf/locations.mk, much as changing NSPR_INCLUDE_DIR changes 
INCLUDES.

This is a first stab, nothing exhaustive, and I'll warn as well that I've been 
looking at NSS (thus only the mozilla/security tree) in isolation, so I don't 
properly appreciate any issue that may arise from using this with the larger 
Mozilla build process. I'm happy to provide all the patches for review, but 
first I wanted to get a reasonable amount of context and buy-in from the 
maintainers. There's plenty of stuff out there that really wants to have a 
universal build including both 32-bit and 64-bit x86 NSS to port to OS X, so 
I'd quite like to sort this out one way or other. There was a thread on this 
subject earlier this year, and my conclusion from that was that there was 
general support amongst the developers for sorting this out.

Cheers,
Bayard

Attachment: PGP.sig
Description: This is a digitally signed message part

-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to