/sys/amd64/conf/GENERIC COMPAT_FREEBSD7 a prerequisite for COMPAT_IA32

Gary Jennejohn gary.jennejohn at freenet.de
Thu Apr 22 15:58:38 UTC 2010


On Thu, 22 Apr 2010 11:54:29 +0200
"Julian H. Stacey" <jhs at berklix.com> wrote:

> Hi,
> Reference:
> > From:		Gary Jennejohn <gary.jennejohn at freenet.de> 
> > Reply-to:	gary.jennejohn at freenet.de 
> > Date:		Thu, 22 Apr 2010 11:14:40 +0200 
> > Message-id:	<20100422111440.69a017b2 at ernst.jennejohn.org> 
> 
> Gary Jennejohn wrote:
> > On Wed, 21 Apr 2010 20:57:59 +0200
> > "Julian H. Stacey" <jhs at berklix.com> wrote:
> > 
> > > Hi hackers at freebsd.org
> > > with amd64, but not with i386,
> > > /sys/amd64/conf/GENERIC COMPAT_FREEBSD7 is an undocemneted
> > > pre-requisite for COMPAT_IA32
> > > (so those who enable COMPAT_IA32 for ports/emulators, but disable
> > > COMPAT_FREEBSD7 as they compile all binaries on upgrade, will trip
> > > up on it as I did).  Currently I see:
> > > 
> > > cc -c -O2 -frename-registers -pipe -fno-strict-aliasing  -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc  -I. -I../../.. -I../../../contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000  -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone  -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow  -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror  ../../../compat/freebsd32/freebsd32_misc.c
> > > cc1: warnings being treated as errors
> > > ../../../compat/freebsd32/freebsd32_misc.c: In function 'freebsd32_semsys':
> > > ../../../compat/freebsd32/freebsd32_misc.c:1420: warning: implicit declaration of function 'freebsd7_freebsd32_semctl'
> > > ../../../compat/freebsd32/freebsd32_misc.c:1420: warning: nested extern declaration of 'freebsd7_freebsd32_semctl'
> > > ...
> > > ../../../compat/freebsd32/freebsd32_misc.c:1845: error: dereferencing pointer to incomplete type
> > > *** Error code 1
> > > 
> > > It could be documented in GENERIC, but better to fix it.  I could
> > > dig through sources, but I think there's people closer to config
> > > who would prefer to commit their own fix, rather than me write a patch ?
> > > (Does that translate as "I'm lazy" ? ;-)
> > > 
> > 
> > The switch is documented in /usr/src/UPDATING on my box.  This is the
> > usual place for this kind of heads-up.
> 
> Thanks Gary,
> It seems COMPAT_FREEBSD7 has more scope than [456]
> ( /usr/src/UPDATING I should read more often. )
> 
> But /usr/src/UPDATING is a transition log, & as new things occur,
> the entry re COMPAT_FREEBSD7 will get buried deeper.
> 
> Requirement from COMPAT_IA32 for COMPAT_FREEBSD7 applies with
> amd64 but not i386, so I'd suggest that could be documented in
> /sys/amd64/conf/GENERIC , eg
> 
> From
> options         COMPAT_FREEBSD7         # Compatible with FreeBSD7
> To
> options         COMPAT_FREEBSD7	# Compatible with FreeBSD7, req. by COMPAT_IA32
> 

You're right.  It's also in /sys/amd64/conf/NOTES, which is actually
the place where valid flags are supposed to be documented.  GENERIC
actually has a different role.  Note that I'm running -current, but
it should also be there on other releases.

--
Gary Jennejohn


More information about the freebsd-hackers mailing list