I've gotten NSS to build and mostly run the tests for Android. There are still a number of tests failing, so the work isn't all done, but it was a good point to snapshot what I had.

I've stuck some very rough instructions on https://wiki.mozilla.org/NSS:Android . I'm move them to https://developer.mozilla.org/en/NSS after the upgrade to Kuma wiki, probably next week.

*The Cross Build*

It's not surprising that I was able to get NSS to build for Android since two other teams are already building NSS for Android in their own environment. What was surprising was I needed to make a few changes: one to dbm (use of errno) and one to freebl/ran_unix.c (use of sysinfo). I was wondering how the other teams were working around the problems I ran into.

Besides those 2 problems, I also had to deal with shlibsign in cmd. I simply changed the makefile to try to use a system installed shlibsign if you were cross compiling (works on fedora and RHEL, where I know we include shlibsign with our packages, I don't know about other versions of Linux. It certainly wouldn't be happy in a windows host).

The magic to get all this to work was judicious use of make environment variables. I've added new targets in the Makefile in mozilla/security/nss which knows how to build Android cross. I believe you only need the Android NDK to build NSS and NSPR. I haven't tested without having the SDK installed, but I didn't tell any software how to get to the SDK, so I'm pretty sure it wasn't used.

*Running the Tests*

I've included several make targets to install the built binaries onto the Android device and run them. The targets do not use adb, mostly since I don't have my little cable for my Android Table here at work. Instead I installed SSHDroid and used sftp and ssh to install and run the tests. It should be possible to make adb versions of the same commands, but I'm pretty sure you'll then need to install Busybox to get everything to run (Busybox comes with SSHDroid already, and I know I make use of several of the Busybox commands in the build).

Since I'm using ssh/sftp, the Android device doesn't need to be physically hooked to the Linux host, only connected to a network that the Linux host could address.

Anyway feel free to try out the instructions, and update things that aren't quite right.

Surprisingly, the fast majority of the tests seem to run, though I'm still getting quite a few failures.

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

Reply via email to