Closed Bug 529790 Opened 15 years ago Closed 1 year ago

Support NSS on FreeBSD ia64

Categories

(NSS :: Build, enhancement, P5)

3.12.4
Other
FreeBSD
enhancement

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: mexas, Unassigned)

References

()

Details

Attachments

(1 file)

User-Agent: Mozilla/5.0 (X11; U; FreeBSD ia64; en-US; rv:1.9.0.15) Gecko/2009111317 Firefox/3.0.15 Build Identifier: ia64-portbld-freebsd9.0 - nss-3.12.4_2 On FreeBSD 9.0-current ia64 port security/nss fails to build with Error: Unknown opcode `bswap r14' This is a regression, last working vesion is nss-3.11.9_3. see full build log at http://seis.bris.ac.uk/~mexas/nss_build_log the extract is below: gmake[3]: Entering directory `/usr/ports/security/nss/work/nss-3.12.4/mozilla/security/nss/lib/freebl' cc -o FreeBSD9.0_OPT.OBJ/FreeBSD_SINGLE_SHLIB/freeblver.o -c -O2 -pipe -I/usr/local/include/nspr -L/usr/local/lib -fno-strict-aliasing -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -I../../dist/FreeBSD9.0_OPT.OBJ/include -I../../dist/public/ -I../../dist/private/ -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -I../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../dist/public/ -I../../../dist/private/ -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -DSHLIB_SUFFIX=\"so.1\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DNSS_X86_OR_X64 -DNSS_X86 -DMP_API_COMPATIBLE -I../../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../../dist/public/nss -I../../../../dist/private/nss -Impi -Iecl -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -DSHLIB_SUFFIX=\"so.1\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DNSS_X86_OR_X64 -DNSS_X86 -DMP_API_COMPATIBLE -I../../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../../dist/public/nss -I../../../../dist/private/nss -Impi -Iecl freeblver.c cc -o FreeBSD9.0_OPT.OBJ/FreeBSD_SINGLE_SHLIB/ldvector.o -c -O2 -pipe -I/usr/local/include/nspr -L/usr/local/lib -fno-strict-aliasing -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -I../../dist/FreeBSD9.0_OPT.OBJ/include -I../../dist/public/ -I../../dist/private/ -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -I../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../dist/public/ -I../../../dist/private/ -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -DSHLIB_SUFFIX=\"so.1\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DNSS_X86_OR_X64 -DNSS_X86 -DMP_API_COMPATIBLE -I../../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../../dist/public/nss -I../../../../dist/private/nss -Impi -Iecl -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -DSHLIB_SUFFIX=\"so.1\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DNSS_X86_OR_X64 -DNSS_X86 -DMP_API_COMPATIBLE -I../../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../../dist/public/nss -I../../../../dist/private/nss -Impi -Iecl ldvector.c cc -o FreeBSD9.0_OPT.OBJ/FreeBSD_SINGLE_SHLIB/sysrand.o -c -O2 -pipe -I/usr/local/include/nspr -L/usr/local/lib -fno-strict-aliasing -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -I../../dist/FreeBSD9.0_OPT.OBJ/include -I../../dist/public/ -I../../dist/private/ -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -I../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../dist/public/ -I../../../dist/private/ -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -DSHLIB_SUFFIX=\"so.1\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DNSS_X86_OR_X64 -DNSS_X86 -DMP_API_COMPATIBLE -I../../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../../dist/public/nss -I../../../../dist/private/nss -Impi -Iecl -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -DSHLIB_SUFFIX=\"so.1\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DNSS_X86_OR_X64 -DNSS_X86 -DMP_API_COMPATIBLE -I../../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../../dist/public/nss -I../../../../dist/private/nss -Impi -Iecl sysrand.c cc -o FreeBSD9.0_OPT.OBJ/FreeBSD_SINGLE_SHLIB/sha_fast.o -c -O2 -pipe -I/usr/local/include/nspr -L/usr/local/lib -fno-strict-aliasing -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -I../../dist/FreeBSD9.0_OPT.OBJ/include -I../../dist/public/ -I../../dist/private/ -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -I../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../dist/public/ -I../../../dist/private/ -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -DSHLIB_SUFFIX=\"so.1\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DNSS_X86_OR_X64 -DNSS_X86 -DMP_API_COMPATIBLE -I../../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../../dist/public/nss -I../../../../dist/private/nss -Impi -Iecl -O -fPIC -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -DSHLIB_SUFFIX=\"so.1\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DNSS_X86_OR_X64 -DNSS_X86 -DMP_API_COMPATIBLE -I../../../../dist/FreeBSD9.0_OPT.OBJ/include -I../../../../dist/public/nss -I../../../../dist/private/nss -Impi -Iecl sha_fast.c {standard input}: Assembler messages: {standard input}:63: Error: Unknown opcode `bswap r14' {standard input}:98: Error: Unknown opcode `bswap r14' {standard input}:135: Error: Unknown opcode `bswap r14' {standard input}:171: Error: Unknown opcode `bswap r14' {standard input}:207: Error: Unknown opcode `bswap r14' {standard input}:243: Error: Unknown opcode `bswap r14' {standard input}:278: Error: Unknown opcode `bswap r14' {standard input}:315: Error: Unknown opcode `bswap r14' {standard input}:351: Error: Unknown opcode `bswap r14' {standard input}:387: Error: Unknown opcode `bswap r14' {standard input}:423: Error: Unknown opcode `bswap r14' {standard input}:459: Error: Unknown opcode `bswap r14' {standard input}:495: Error: Unknown opcode `bswap r14' {standard input}:531: Error: Unknown opcode `bswap r14' {standard input}:567: Error: Unknown opcode `bswap r14' {standard input}:603: Error: Unknown opcode `bswap r14' {standard input}:3585: Error: Unknown opcode `bswap r14' {standard input}:3591: Error: Unknown opcode `bswap r35' {standard input}:3605: Error: Unknown opcode `bswap r14' {standard input}:3615: Error: Unknown opcode `bswap r14' {standard input}:3625: Error: Unknown opcode `bswap r14' {standard input}:3635: Error: Unknown opcode `bswap r14' {standard input}:3645: Error: Unknown opcode `bswap r14' gmake[3]: *** [FreeBSD9.0_OPT.OBJ/FreeBSD_SINGLE_SHLIB/sha_fast.o] Error 1 gmake[3]: Leaving directory `/usr/ports/security/nss/work/nss-3.12.4/mozilla/security/nss/lib/freebl' gmake[2]: *** [libs] Error 2 gmake[2]: Leaving directory `/usr/ports/security/nss/work/nss-3.12.4/mozilla/security/nss/lib/freebl' gmake[1]: *** [libs] Error 2 gmake[1]: Leaving directory `/usr/ports/security/nss/work/nss-3.12.4/mozilla/security/nss/lib' gmake: *** [libs] Error 2 *** Error code 1 many thanks anton anton Reproducible: Always Steps to Reproduce: 1. get a FreeBSD current ia64 box 2. cd <portsdir>/secirity/nss 3. make Actual Results: Error: Unknown opcode `bswap r14' Expected Results: success
Assignee: nobody → nobody
Component: Security → Build
Product: Core → NSS
QA Contact: toolkit → build
NSS doesn't support FreeBSD for IA64, yet. It only supports Alpha and x86.
Marcel Moolenar provided a patch, builds fine now: FreeBSD 9.0-CURRENT ia64 -> nss-3.12.4_2
Clearly, as seen in the build log above, NSS was being built for X86 or X86_64, not for IA64. If NSS ever did build on FreeBSD for IA64, it was accidental, I think. NSS has never knowingly supported IA64 on FreeBSD, that I can recall. > Marcel Moolenar provided a patch, builds fine now: If someone will attach the patch here, as a CVS diff against the CVS trunk, I will look at it. It probably will have to wait until 3.13, but maybe not. If the patch can be done entirely within security/coreconf/FreeBSD.mk, then it probably won't have to wait.
Severity: normal → enhancement
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: nss regression on FreeBSD ia64: Error: Unknown opcode `bswap r14'; last version to build ok was nss-3.11.9_3 → Support NSS on FreeBSD ia64
Version: unspecified → 3.12.4
here it is: --- ../../security/coreconf/FreeBSD.mk.orig 2008-07-12 07:28:59.000000000 -0700 +++ ../../security/coreconf/FreeBSD.mk 2009-11-19 19:29:23.000000000 -0800 @@ -37,16 +37,33 @@ include $(CORE_DEPTH)/coreconf/UNIX.mk -DEFAULT_COMPILER = gcc -CC = gcc -CCC = g++ +DEFAULT_COMPILER = $(CC) +CC ?= gcc +CCC = $(CXX) RANLIB = ranlib ifeq ($(OS_TEST),alpha) CPU_ARCH = alpha else +ifeq ($(OS_TEST),powerpc) +CPU_ARCH = powerpc +else +ifeq ($(OS_TEST),sparc64) +CPU_ARCH = sparc64 +USE_64 = 1 +else +ifeq ($(OS_TEST),ia64) +CPU_ARCH = ia64 +USE_64 = 1 +else +ifeq ($(OS_TEST),amd64) +USE_64 = 1 +endif CPU_ARCH = x86 endif +endif +endif +endif OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD _FLOCK @@ -60,20 +77,18 @@ USE_PTHREADS = 1 DEFINES += -D_THREAD_SAFE -D_REENTRANT OS_LIBS += -pthread -DSO_LDOPTS += -pthread +DSO_LDOPTS += $(BSD_LDOPTS) endif ARCH = freebsd -MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo elf) +DLL_SUFFIX = so.1 -ifeq ($(MOZ_OBJFORMAT),elf) -DLL_SUFFIX = so +ifneq (,$(filter alpha ia64,$(OS_TEST))) +MKSHLIB = $(CC) -Wl,-Bsymbolic -lc $(DSO_LDOPTS) else -DLL_SUFFIX = so.1.0 +MKSHLIB = $(CC) -Wl,-Bsymbolic $(DSO_LDOPTS) endif - -MKSHLIB = $(CC) $(DSO_LDOPTS) ifdef MAPFILE MKSHLIB += -Wl,--version-script,$(MAPFILE) endif @@ -82,4 +97,5 @@ G++INCLUDES = -I/usr/include/g++ -INCLUDES += -I/usr/X11R6/include +USE_SYSTEM_ZLIB = 1 +ZLIB_LIBS = -lz
Could you attach that as an attachment, rather than pasting it inline? Thanks.
this patch provided by Marcel Moolenaar seems to work. I've built nss successfully and use it with kazehakase (browser) - so far - no problems
Comment on attachment 414009 [details] [diff] [review] patch to build nss on ia64 freebsd Wan-Teh, you've done nearly all of the work for NSS on FreeBSD. Would you care to review this?
Attachment #414009 - Flags: review?(wtc)
Comment on attachment 414009 [details] [diff] [review] patch to build nss on ia64 freebsd Some of these changes we should take, some of these changes should remain in the FreeBSD ports package system. >-DEFAULT_COMPILER = gcc >-CC = gcc >-CCC = g++ >+DEFAULT_COMPILER = $(CC) >+CC ?= gcc >+CCC = $(CXX) These should remain in FreeBSD ports. > ifeq ($(OS_TEST),alpha) > CPU_ARCH = alpha > else >+ifeq ($(OS_TEST),powerpc) >+CPU_ARCH = powerpc >+else >+ifeq ($(OS_TEST),sparc64) >+CPU_ARCH = sparc64 >+USE_64 = 1 >+else >+ifeq ($(OS_TEST),ia64) >+CPU_ARCH = ia64 >+USE_64 = 1 >+else >+ifeq ($(OS_TEST),amd64) >+USE_64 = 1 >+endif > CPU_ARCH = x86 > endif >+endif >+endif >+endif These are OK, but there is a better way to do this. We should initialize CPU_ARCH as follows: CPU_ARCH = $(OS_TEST) and then add a special case for x86. The USE_64=1 changes probably should remain in FreeBSD ports. It depends on whether FreeBSD supports building 32-bit binaries on sparc64, ia64, and amd64. >-DSO_LDOPTS += -pthread >+DSO_LDOPTS += $(BSD_LDOPTS) This change should remain in FreeBSD ports if BSD_LDOPTS is an environment variable that is not set in mozilla/security/coreconf/FreeBSD.mk. >-MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo elf) >+DLL_SUFFIX = so.1 > >-ifeq ($(MOZ_OBJFORMAT),elf) >-DLL_SUFFIX = so >+ifneq (,$(filter alpha ia64,$(OS_TEST))) >+MKSHLIB = $(CC) -Wl,-Bsymbolic -lc $(DSO_LDOPTS) > else >-DLL_SUFFIX = so.1.0 >+MKSHLIB = $(CC) -Wl,-Bsymbolic $(DSO_LDOPTS) > endif >- >-MKSHLIB = $(CC) $(DSO_LDOPTS) > ifdef MAPFILE > MKSHLIB += -Wl,--version-script,$(MAPFILE) > endif >@@ -82,4 +97,5 @@ > > G++INCLUDES = -I/usr/include/g++ > >-INCLUDES += -I/usr/X11R6/include >+USE_SYSTEM_ZLIB = 1 >+ZLIB_LIBS = -lz It should be OK to take these changes except the -Wl,-Bsymbolic changes.
I'd suggest closing this WONTFIX. FreeBSD dropped support for IA64 in 11.0 and it doesn't have a future.
Severity: normal → S3
Severity: S3 → N/A
Status: NEW → RESOLVED
Closed: 1 year ago
Priority: -- → P5
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: