Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Jan 2007 19:40:22 +0100
From:      Alexander Leidinger <Alexander@Leidinger.net>
To:        Jean-Yves Lefort <jylefort@FreeBSD.org>
Cc:        gnome@FreeBSD.org, ports@FreeBSD.org
Subject:   Build arch for configure based upon CPUTYPE, prototype (was: Re: cvs commit: ports/devel/glib20 Makefile)
Message-ID:  <20070113194022.1511ac11@Magellan.Leidinger.net>
In-Reply-To: <20070112121306.48f99e8b.jylefort@FreeBSD.org>
References:  <200701111721.l0BHLaZA019340@repoman.freebsd.org> <20070112111726.k4y1ue5w6c0s4owo@webmail.leidinger.net> <20070112121306.48f99e8b.jylefort@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--MP_xRmOh__BmuOAdT=xLxiyOFK
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Quoting Jean-Yves Lefort <jylefort@FreeBSD.org> (Fri, 12 Jan 2007 12:13:06 +0100):

> On Fri, 12 Jan 2007 11:17:26 +0100
> Alexander Leidinger <Alexander@Leidinger.net> wrote:
> 
> > Quoting Jean-Yves Lefort <jylefort@FreeBSD.org> (from Thu, 11 Jan 2007
> > 17:21:36 +0000 (UTC)):
> >
> > > jylefort    2007-01-11 17:21:36 UTC
> > >
> > >   FreeBSD ports repository
> > >
> > >   Modified files:
> > >     devel/glib20         Makefile
> > >   Log:
> > >   On i386 (>= 486) and amd64, fix the arch passed to configure so that
> > >   glib will implement atomic operations with assembler instructions
> > >   rather than mutexes (improves performance).
> >
> > What about setting GNOME_ARCH based upon CPUTYPE instead of hardcoding
> > it to i486?
> 
> The problem is not specific to GNOME. I prefer the solution below.
> 
> > Or much better: set --build in bsd.port.mk globally based upon CPUTYPE
> > (to iX86 on IA32, I'm not sure if it is wise to change the amd64 one
> > globally).
> 
> Yes. And do pass x86_64 for amd64, that's what a majority of configure
> scripts expect since they have linux in mind.

Hi, the proof of concept is attached. Configure shows i686-portbld...
when building glib20 on my machine (CPUTYPE set to athlon-xp).

For the final patch I want to sort the list of CPUTYPEs. I'm sending
this version to get some testresults (failing ports?) and
reviews/comments.

Bye,
Alexander.

-- 
http://www.Leidinger.net  Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org     netchild @ FreeBSD.org  : PGP ID = 72077137

--MP_xRmOh__BmuOAdT=xLxiyOFK
Content-Type: text/x-patch; name=ports-arch.diff
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=ports-arch.diff

Index: Mk/bsd.gnome.mk
===================================================================
RCS file: /big/FreeBSD-CVS/ports/Mk/bsd.gnome.mk,v
retrieving revision 1.138
diff -u -u -r1.138 bsd.gnome.mk
--- Mk/bsd.gnome.mk	4 Jan 2007 02:14:44 -0000	1.138
+++ Mk/bsd.gnome.mk	12 Jan 2007 15:50:35 -0000
@@ -122,7 +122,7 @@
 gnomeprefix_PREFIX=${LOCALBASE}
 .endif
 
-gnometarget_CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
+gnometarget_CONFIGURE_TARGET=--build=${CONFIGURE_ARCH}-portbld-freebsd${OSREL}
 
 ESD_CONFIG?=		${LOCALBASE}/bin/esd-config
 esound_LIB_DEPENDS=	esd.2:${PORTSDIR}/audio/esound
Index: Mk/bsd.port.mk
===================================================================
RCS file: /big/FreeBSD-CVS/ports/Mk/bsd.port.mk,v
retrieving revision 1.545
diff -u -u -r1.545 bsd.port.mk
--- Mk/bsd.port.mk	8 Jan 2007 00:00:33 -0000	1.545
+++ Mk/bsd.port.mk	13 Jan 2007 18:32:54 -0000
@@ -2858,8 +2862,59 @@
 .undef HAS_CONFIGURE
 .endif
 
+.if !defined(CONFIGURE_ARCH) && defined(CPUTYPE)
+. if ${ARCH} == "i386"
+.  if ${CPUTYPE} == "nocona" || \
+	${CPUTYPE} == "p4" || \
+	${CPUTYPE} == "p4m" || \
+	${CPUTYPE} == "p3" || \
+	${CPUTYPE} == "p3m" || \
+	${CPUTYPE} == "p-m" || \
+	${CPUTYPE} == "p2" || \
+	${CPUTYPE} == "i686" || \
+	${CPUTYPE} == "opteron" || \
+	${CPUTYPE} == "athlon64" || \
+	${CPUTYPE} == "athlon-fx" || \
+	${CPUTYPE} == "athlon-xp" || \
+	${CPUTYPE} == "athlon-mp" || \
+	${CPUTYPE} == "athlon" || \
+	${CPUTYPE} == "crusoe" || \
+	${CPUTYPE} == "athlon-4" || \
+	${CPUTYPE} == "athlon-tbird" || \
+	${CPUTYPE} == "pentium4" || \
+	${CPUTYPE} == "pentium4m" || \
+	${CPUTYPE} == "pentium3" || \
+	${CPUTYPE} == "pentium3m" || \
+	${CPUTYPE} == "pentium-m" || \
+	${CPUTYPE} == "pentium2" || \
+	${CPUTYPE} == "pentium2m" || \
+	${CPUTYPE} == "pentiumpro" || \
+	${CPUTYPE} == "prescott" || \
+	${CPUTYPE} == "k8" || \
+	${CPUTYPE} == "k7"
+CONFIGURE_ARCH=	i686
+.  elif ${CPUTYPE} == "i586" || \
+	${CPUTYPE} == "i586/mmx" || \
+	${CPUTYPE} == "pentium-mmx" || \
+	${CPUTYPE} == "pentium" || \
+	${CPUTYPE} == "k6" || \
+	${CPUTYPE} == "k6-2" || \
+	${CPUTYPE} == "k6-3" || \
+	${CPUTYPE} == "k5"
+CONFIGURE_ARCH=	i586
+.  else
+CONFIGURE_ARCH=	i486
+.  endif
+. elif ${ARCH} == "amd64"
+CONFIGURE_ARCH=	x86_64
+. endif
+.endif
+.if !defined(CONFIGURE_ARCH) || empty(CONFIGURE_ARCH)
+CONFIGURE_ARCH=		${ARCH}
+.endif
+
 CONFIGURE_SCRIPT?=	configure
-CONFIGURE_TARGET?=	${ARCH}-portbld-freebsd${OSREL}
+CONFIGURE_TARGET?=	${CONFIGURE_ARCH}-portbld-freebsd${OSREL}
 CONFIGURE_LOG?=		config.log
 
 # A default message to print if do-configure fails.
Index: devel/glib20/Makefile
===================================================================
RCS file: /big/FreeBSD-CVS/ports/devel/glib20/Makefile,v
retrieving revision 1.134
diff -u -u -r1.134 Makefile
--- devel/glib20/Makefile	11 Jan 2007 17:21:36 -0000	1.134
+++ devel/glib20/Makefile	12 Jan 2007 15:44:42 -0000
@@ -8,7 +8,7 @@
 
 PORTNAME=	glib
 PORTVERSION=	2.12.7
-PORTREVISION?=	1
+PORTREVISION?=	2
 CATEGORIES=	devel
 MASTER_SITES=	${MASTER_SITE_GNOME:S,%SUBDIR%,sources/glib/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/},} \
 		ftp://ftp.gtk.org/pub/glib/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}/ \
@@ -46,16 +46,6 @@
 
 .include <bsd.port.pre.mk>
 
-# Let glib use asm code for implementing atomic ops on i386 and amd64.
-.if ${ARCH} == "i386"
-GLIB_ARCH=	i486
-.elif ${ARCH} == "amd64"
-GLIB_ARCH=	x86_64
-.else
-GLIB_ARCH=	${ARCH}
-.endif
-CONFIGURE_TARGET=	--build=${GLIB_ARCH}-portbld-freebsd${OSREL}
-
 .if ( ( ${OSVERSION} < 504101 ) || ( ${OSVERSION} >= 600000 && ${OSVERSION} < 600012 ) )
 EXTRA_PATCHES+=	${FILESDIR}/extra-patch-gthread_gthread-posix.c
 .endif

--MP_xRmOh__BmuOAdT=xLxiyOFK--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070113194022.1511ac11>