svn commit: r215309 - in head/sys: amd64/amd64 i386/i386 sys vm
Warner Losh
imp at bsdimp.com
Mon Nov 15 15:44:50 UTC 2010
From: Kostik Belousov <kostikbel at gmail.com>
Subject: Re: svn commit: r215309 - in head/sys: amd64/amd64 i386/i386 sys vm
Date: Sun, 14 Nov 2010 23:37:49 +0200
> On Mon, Nov 15, 2010 at 12:20:37AM +0300, Anonymous wrote:
> > Konstantin Belousov <kib at FreeBSD.org> writes:
> >
> > > Author: kib
> > > Date: Sun Nov 14 18:24:12 2010
> > > New Revision: 215309
> > > URL: http://svn.freebsd.org/changeset/base/215309
> > >
> > > Log:
> > > Use symbolic names instead of hardcoding values for magic p_osrel constants.
> > >
> > > MFC after: 1 week
> > [...]
> > > Modified: head/sys/sys/param.h
> > > ==============================================================================
> > > --- head/sys/sys/param.h Sun Nov 14 18:05:03 2010 (r215308)
> > > +++ head/sys/sys/param.h Sun Nov 14 18:24:12 2010 (r215309)
> > > @@ -60,6 +60,11 @@
> > > #undef __FreeBSD_version
> > > #define __FreeBSD_version 900025 /* Master, propagated to newvers */
> > >
> > > +#ifdef _KERNEL
> > > +#define __FreeBSD_version_SIGSEGV 700004
> > > +#define __FreeBSD_version_MAP_ANON 800104
> > > +#endif
> > > +
> >
> > This breaks bsd.port.mk regexp to determine OSVERSION.
> >
> > # Get __FreeBSD_version
> > .if !defined(OSVERSION)
> > .if exists(/usr/include/sys/param.h)
> > OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h
> > .elif exists(/usr/src/sys/sys/param.h)
> > OSVERSION!= ${AWK} '/^\#define[[:blank::]]__FreeBSD_version/ {print $$3}' < /usr/src/sys/sys/param.h
> > .else
> > OSVERSION!= ${SYSCTL} -n kern.osreldate
> > .endif
> > .endif
> >
> > $ make -V OSVERSION
> > 900025 700004 800104
> >
> > And every port chokes on it.
> >
> > $ make -C devel/libpthread-stubs
> > "Makefile", line 26: warning: String comparison operator should be either == or !=
> > "Makefile", line 26: Malformed conditional (${OSVERSION} < 700000)
> > "Makefile", line 28: if-less endif
> > "/usr/ports/Mk/bsd.port.mk", line 1739: warning: String comparison operator should be either == or !=
> > "/usr/ports/Mk/bsd.port.mk", line 1739: Malformed conditional (defined(USE_XZ) && ( (${OSVERSION} >= 900000 && ${OSVERSION} < 900012) || ${OSVERSION} < 800505 ))
> > "/usr/ports/Mk/bsd.port.mk", line 6394: if-less endif
> > make: fatal errors encountered -- cannot continue
> >
> > %%
> > Index: Mk/bsd.port.mk
> > ===================================================================
> > RCS file: /a/.cvsup/ports/Mk/bsd.port.mk,v
> > retrieving revision 1.654
> > diff -u -p -r1.654 bsd.port.mk
> > --- Mk/bsd.port.mk 8 Nov 2010 16:07:03 -0000 1.654
> > +++ Mk/bsd.port.mk 14 Nov 2010 21:18:32 -0000
> > @@ -1219,9 +1219,9 @@ OSREL!= ${UNAME} -r | ${SED} -e 's/[-(].
> > # Get __FreeBSD_version
> > .if !defined(OSVERSION)
> > .if exists(/usr/include/sys/param.h)
> > -OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h
> > +OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version[[:blank:]]/ {print $$3}' < /usr/include/sys/param.h
> > .elif exists(/usr/src/sys/sys/param.h)
> > -OSVERSION!= ${AWK} '/^\#define[[:blank::]]__FreeBSD_version/ {print $$3}' < /usr/src/sys/sys/param.h
> > +OSVERSION!= ${AWK} '/^\#define[[:blank::]]__FreeBSD_version[[:blank:]]/ {print $$3}' < /usr/src/sys/sys/param.h
> > .else
> > OSVERSION!= ${SYSCTL} -n kern.osreldate
> > .endif
> > %%
>
> I think it is better to select different namespace for the special versions.
> Can you confirm that the following patch fixes the ports mk for you ?
> It is enough to cd /usr/src/include && make install after patching.
I think this is a better idea. There's a number of other places
lurking that make a similar assumption.
Warner
More information about the freebsd-ports
mailing list