Closed
Bug 841664
Opened 11 years ago
Closed 11 years ago
Drop (32-bit) SPARC V8 processor support on Solaris
Categories
(NSS :: Build, defect, P2)
Tracking
(Not tracked)
RESOLVED
FIXED
3.15
People
(Reporter: wtc, Assigned: wtc)
Details
Attachments
(2 files, 1 obsolete file)
3.22 KB,
patch
|
wtc
:
checked-in+
|
Details | Diff | Splinter Review |
724 bytes,
patch
|
KaiE
:
review+
wtc
:
checked-in+
|
Details | Diff | Splinter Review |
SPARC V8 is a 32-bit processor architecture. It is very old. The Solaris Studio compilers dropped support for SPARC V8 in Studio 12 Update 1. Back in the iPlanet days we already had trouble finding a SPARC V8 machine to test NSS on it. The attached patch changes -xarch=v8 to -xarch=v8plus. v8plus is essentially the next version of the SPARC architecture. It is actually V9 with a 32-bit memory model. This is why the GCC command line option in SunOS5.mk says -mcpu=v9. I will also remove the SPARC V8 assembly code file mpv_sparcv8x.s when I check in this patch.
Attachment #714258 -
Flags: review?(kaie)
Assignee | ||
Comment 1•11 years ago
|
||
Comment on attachment 714258 [details] [diff] [review] Patch Review of attachment 714258 [details] [diff] [review]: ----------------------------------------------------------------- Kai, I annotated the patch to help you understand it because I suspect you are unfamiliar with how we build the freebl3 shared libraries for Solaris SPARC. ::: mozilla/security/nss/lib/freebl/Makefile @@ -283,5 @@ > ifdef USE_64 > HAVE_ABI64_INT = 1 > HAVE_ABI64_FPU = 1 > else > - HAVE_ABI32_INT32 = 1 Remember we build three freebl3 shared libraries for different versions of SPARC processors? The "ABI32_INT32" flavor is the SPARC V8. It is deleted by this patch. @@ -387,5 @@ > ### set flags for both GCC and Sun cc > - ifdef USE_ABI32_INT32 > - # this builds for Sparc v8 pure 32-bit architecture > - DEFINES += -DMP_USE_UINT_DIGIT -DMP_ASSEMBLY_MULTIPLY > - ASFILES = mpv_sparcv8x.s This shows that mpv_sparcv8x.s will be obsolete after this patch is checked in, so I will remove this file. ::: mozilla/security/nss/lib/freebl/loader.c @@ +35,5 @@ > #else > > const static char fpu_hybrid_shared_lib[] = "libfreebl_32fpu_3.so"; > const static char int_hybrid_shared_lib[] = "libfreebl_32int64_3.so"; > +const static char *non_hybrid_shared_lib = NULL; Setting this to NULL ensures that NSS cannot possibly load the nonexistent libfreebl_32int_3.so by mistake. The reason I can't remove this variable easily is that this variable is still needed in 64-bit Solaris builds: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/security/nss/lib/freebl/loader.c&rev=1.60&mark=20,26,30,35,39,44#20 and a function shared by 32-bit and 64-bit builds (getLibName) references this variable: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/security/nss/lib/freebl/loader.c&rev=1.60&mark=47,79#46
Comment 2•11 years ago
|
||
Comment on attachment 714258 [details] [diff] [review] Patch r=kaie
Attachment #714258 -
Flags: review?(kaie) → review+
Assignee | ||
Comment 3•11 years ago
|
||
I added a comment to lib/freebl/loader.c to explain what non_hybrid_shared_lib was used for. I also made it a const variable so that we can't change it to a non-NULL value by accident. Patch checked in on the NSS trunk (NSS 3.14.4). Checking in coreconf/SunOS5.mk; /cvsroot/mozilla/security/coreconf/SunOS5.mk,v <-- SunOS5.mk new revision: 1.30; previous revision: 1.29 done Checking in nss/lib/freebl/Makefile; /cvsroot/mozilla/security/nss/lib/freebl/Makefile,v <-- Makefile new revision: 1.128; previous revision: 1.127 done Checking in nss/lib/freebl/loader.c; /cvsroot/mozilla/security/nss/lib/freebl/loader.c,v <-- loader.c new revision: 1.61; previous revision: 1.60 done Removing nss/lib/freebl/mpi/mpv_sparcv8x.s; /cvsroot/mozilla/security/nss/lib/freebl/mpi/mpv_sparcv8x.s,v <-- mpv_sparcv8x.s new revision: delete; previous revision: 1.3 done
Attachment #714258 -
Attachment is obsolete: true
Attachment #714490 -
Flags: checked-in+
Assignee | ||
Comment 4•11 years ago
|
||
(In reply to Wan-Teh Chang from comment #0) > The Solaris Studio compilers dropped support > for SPARC V8 in Studio 12 Update 1. I checked the release notes of Sun Studio 12 and its updates. In the release notes of Sun Studio 12 Update 1 and Oracle Solaris Studio 12.2, the -xarch=v7/v8/v8a options are listed in the "Features That Might Be Removed in a Future Release" section and marked as obsolete. In the release notes of Oracle Solaris Studio 12.3 (the current release), the -xarch=v7/v8/v8a options are listed in the "Features That Have Been Removed in This Release". So it seems that the Solaris Studio compilers started to warn about dropping support for SPARC V8 in Studio 12 Update 1 and truly dropped support in Studio 12.3.
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Priority: -- → P2
Resolution: --- → FIXED
Assignee | ||
Comment 5•11 years ago
|
||
Attachment #714742 -
Flags: review?(kaie)
Comment 6•11 years ago
|
||
Comment on attachment 714742 [details] [diff] [review] Remove a reference to the obsolete libfreebl_32int_3.so in tests/memleak/memleak.sh (In reply to Wan-Teh Chang from comment #5) > Created attachment 714742 [details] [diff] [review] > Remove a reference to the obsolete libfreebl_32int_3.so in > tests/memleak/memleak.sh Note that I found libfreebl_32int_3.sl listed in loader.c for HPUX (which is most likely something else, because of the different extension .sl vs .so) If you are sure this patch is correct nevertheless, then r=kaie
Attachment #714742 -
Flags: review?(kaie) → review+
Comment 7•11 years ago
|
||
Note mozilla/security/nss/pkg/solaris/SUNWtls/prototype_sparc also contains references to libfreebl_32int_3
Assignee | ||
Comment 8•11 years ago
|
||
Comment on attachment 714742 [details] [diff] [review] Remove a reference to the obsolete libfreebl_32int_3.so in tests/memleak/memleak.sh Kai: thank you for checking other references to libfreebl_32int_3 in the NSS source tree. libfreebl_32int_3 (with the .sl file suffix) is still used by 32-bit HP-UX PA-RISC. That shared library is also obsolete today, but I didn't touch the HP-UX PA-RISC stuff in this round of changes. I think it should be OK to just remove support for HP-UX PA-RISC altogether. I also know about the reference to libfreebl_32int_3 in mozilla/security/nss/pkg/solaris/SUNWtls/prototype_sparc. For that, I propose that we remove the entire mozilla/security/nss/pkg directory. (Perhaps we just don't copy that directory to the new Hg repository.) This is why I didn't touch that file in this bug. Patch checked in on the NSS trunk (NSS 3.14.4). Checking in memleak.sh; /cvsroot/mozilla/security/nss/tests/memleak/memleak.sh,v <-- memleak.sh new revision: 1.42; previous revision: 1.41 done
Attachment #714742 -
Flags: checked-in+
Comment 9•11 years ago
|
||
(In reply to Wan-Teh Chang from comment #8) > (Perhaps we just don't copy that directory to the new > Hg repository.) That would be more complicated. If you don't want it to show up in hg, I'd prefer removing it prior to such a migration.
Updated•11 years ago
|
Target Milestone: 3.14.4 → 3.15
Comment 10•11 years ago
|
||
Stumbled upon this as i'm updating the nss port on OpenBSD to 3.15 - does this effectively also drops support for sparc32 support on all platforms, or only solaris ? OpenBSD/sparc is still in use, and has a nss 3.14.3 pkg right now.
Assignee | ||
Comment 11•11 years ago
|
||
Landry: this bug is Solaris only. Also, this bug drops support for 32-bit SPARC V8 *processor*. We still support running 32-bit Solaris NSS code on (64-bit) UltraSPARC processors.
Comment 12•11 years ago
|
||
(In reply to Wan-Teh Chang from comment #11) > Landry: this bug is Solaris only. > Also, this bug drops support for 32-bit SPARC V8 *processor*. Yeah, OpenBSD still run on those processors with the sparc port. The sparc64 port for UltraSPARC processors is independent from it. Glad to know it's solaris only, i'll make sure to get 3.15 tested on sparc v8.
You need to log in
before you can comment on or make changes to this bug.
Description
•