amd64/159809: RELENG_8_1 /UPDATING wrong re: COMPAT_IA32 alias for COMPAT_FREEBSD32

Dylan djimeha at yahoo.ca
Tue Aug 16 05:10:09 UTC 2011


>Number:         159809
>Category:       amd64
>Synopsis:       RELENG_8_1 /UPDATING wrong re: COMPAT_IA32 alias for COMPAT_FREEBSD32
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 16 05:10:08 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Dylan
>Release:        RELENG_8_1
>Organization:
>Environment:
Was RELENG_8_0 upgraded to RELENG_8_1 after working around this issue:
FreeBSD <hostname FQDN removed> 8.1-RELEASE-p4 FreeBSD 8.1-RELEASE-p4 #2: Tue Jul 12 13:05:05 EDT 2011     root@<hostname FQDN removed>:/usr/obj/usr/src/sys/LABGW64bit  amd64
>Description:
I reproduced this on a few systems that were running an older build of RELENG_8_0 while attempting to update to the latest cvsup of RELENG_8_1 sources.  Basically, the necessary 32bit support for some of my Tcl infrastructure seem to be missing when only using the COMPAT_IA32 kernel option (as stated in the RELENG_8_1 'UPDATING' file, this is now an alias for COMPAT_FREEBSD32).  After doing another kernel build with the COMPAT_FREEBSD32 option also included, the necessary 32bit compat stuff was added after the build/install kernel.
>How-To-Repeat:
I don't know if this is reproducible in later versions or just RELENG_8_1, but here are steps to get started.

On an amd64 system:
1. Install RELENG_8_0 or probably even 8.0-RELEASE 64bit with the COMPAT_IA32 kernel option included (default 'GENERIC' should be fine)
2. All of the usual 32bit lib's should be included
3. Sync RELENG_8_1 sources
4. Make sure the kernel config only contains COMPAT_IA32 and not COMPAT_FREEBSD32
5. Build world, kernel, installworld, kernel, etc
6. Some/all (?) 32bit support is missing... I didn't hunt down exact 32bit lib's or code having issues, but the difference between this result and the next step's result is that more/all (?) support seems to be added
7. Add the COMPAT_FREEBSD32 kernel option before or after the COMPAT_IA32 option
8. Re-build/install kernel, reboot
9. Check 32bit support, which should now be fully available

I can't publicly share the 32bit dependent Tcl code that was having issues when using only COMPAT_IA32, but I imagine just about any '32bit-only' program would fail as a result of this.  Sorry I can't be more specific.
>Fix:
Possible fixes include (from my understanding):

1. (simple) Remove the inaccurate comment about COMPAT_IA32 being an alias for COMPAT_FREEBSD32 and leave the comment further down in UPDATING that says COMPAT_IA32 has been replaced with COMPAT_FREEBSD32

2. (difficult??) Add any required fixes to make sure COMPAT_IA32 is actually an alias for (i.e. does the same thing as) COMPAT_FREEBSD32.

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-amd64 mailing list