lang/gcc rumdependencies?

Gerald Pfeifer gerald at pfeifer.com
Sun Jul 29 22:29:46 UTC 2012


On Thu, 16 Feb 2012, b. f. wrote:
>> The main question is why this port (and everythin else with
>> USE_GCC=4.6+) depend on lang/gcc46 and not lang/gcc. Most port
>> users dislike building latest gcc snapshot on a weekly basis.
> Indeed.  But (as discussed before on this list), they don't have to,
> if they find this to be a problem: they can remove lang/gcc46 and
> replace it with lang/gcc.

You may have noticed that lang/gcc46 has signficiantly slowed down
in it getting updates the last couple of months.  That was by design,
since I know a larger number of users is having this as the default
version of GCC.

For ports building clusters and to simplify things for non-expert
users, or users just going for the default, indeed dragging in
lang/gcc by default, not lang/gcc46 (or later lang/gcc47) makes
sense and the patch below should do this.  

Feedback welcome!

>> Maybe it would be good to move current lang/gcc46 to lang/gcc46-devel
>> and rename lang/gcc to lang/gcc46?
> No, because in time lang/gcc will become a stable release of 4.7.x,
> and so on ...

Exactly!  I _am_ thinking to rename lang/gcc48 to lang/gcc48-devel,
and perhaps do similarly for lang/gcc47 as well.  Thoughts?

Gerald

PS. The _GCC_BUILD_DEPENDS assignment below prevents breakage of
some ports.  I plan on addressing this in a nicer manner, but prefer
to separate the two changes and proceed with this first change rather
sooner than later.


Index: bsd.gcc.mk
===================================================================
--- bsd.gcc.mk	(revision 301695)
+++ bsd.gcc.mk	(working copy)
@@ -178,29 +178,36 @@
 . if ${_USE_GCC} == ${_GCCVERSION_${v}_V}
 .  if ${OSVERSION} < ${_GCCVERSION_${v}_L} || ${OSVERSION} > ${_GCCVERSION_${v}_R}
 V:=			${_GCCVERSION_${v}_V:S/.//}
-_GCC_BUILD_DEPENDS:=	gcc${V}
 _GCC_PORT_DEPENDS:=	gcc${V}
+.   if ${_USE_GCC} == ${GCC_DEFAULT_VERSION}
+_GCC_PORT:=		gcc
+.   else
+_GCC_PORT:=		gcc${V}
+.   endif
 CC:=			gcc${V}
 CXX:=			g++${V}
 CPP:=			cpp${V}
 .   if ${_USE_GCC} != 3.4
-CFLAGS+=		-Wl,-rpath=${LOCALBASE}/lib/${_GCC_BUILD_DEPENDS}
-LDFLAGS+=		-Wl,-rpath=${LOCALBASE}/lib/${_GCC_BUILD_DEPENDS}
+CFLAGS+=		-Wl,-rpath=${LOCALBASE}/lib/${_GCC_PORT_DEPENDS}
+LDFLAGS+=		-Wl,-rpath=${LOCALBASE}/lib/${_GCC_PORT_DEPENDS}
 .    if defined (USE_FORTRAN)
 .    if ${USE_FORTRAN} == yes
-FFLAGS+=		-Wl,-rpath=${LOCALBASE}/lib/${_GCC_BUILD_DEPENDS}
+FFLAGS+=		-Wl,-rpath=${LOCALBASE}/lib/${_GCC_PORT_DEPENDS}
 .    endif
 .    endif
+# The following is for the sakes of some ports which use this without
+# ever telling us; to be fixed.
+_GCC_BUILD_DEPENDS:=	${_GCC_PORT_DEPENDS}
 .   endif
 .  endif
 . endif
 .endfor
 .undef V
 
-.if defined(_GCC_BUILD_DEPENDS)
-BUILD_DEPENDS+=	${_GCC_PORT_DEPENDS}:${PORTSDIR}/lang/${_GCC_BUILD_DEPENDS}
+.if defined(_GCC_PORT_DEPENDS)
+BUILD_DEPENDS+=	${_GCC_PORT_DEPENDS}:${PORTSDIR}/lang/${_GCC_PORT}
 . if ${_USE_GCC} != 3.4
-RUN_DEPENDS+=	${_GCC_PORT_DEPENDS}:${PORTSDIR}/lang/${_GCC_BUILD_DEPENDS}
+RUN_DEPENDS+=	${_GCC_PORT_DEPENDS}:${PORTSDIR}/lang/${_GCC_PORT}
 .  if ${_USE_GCC} != 4.2
 # Later GCC ports already depend on binutils; make sure whatever we
 # build leverages this as well.


More information about the freebsd-ports mailing list