Subject: Re: pkgsrc and native gcc
To: None <tech-pkg@NetBSD.org, pkgsrc-users@NetBSD.org,>
From: Gilles Dauphin <Gilles.Dauphin@enst.fr>
List: pkgsrc-users
Date: 08/17/2006 09:27:41
> I tried setting the following variables in my mk.conf file:
> 
> _NATIVE_GCC_BASE=/opt/gcc4
> LDFLAGS+=-L${_NATIVE_GCC_BASE}/lib -R${_NATIVE_GCC_BASE}/lib
> CFLAGS=-L${_NATIVE_GCC_BASE}/lib -Wl,-R${_NATIVE_GCC_BASE}/lib
> CXXFLAGS=-L${_NATIVE_GCC_BASE}/lib -Wl,-R${_NATIVE_GCC_BASE}/lib
> 
> however it doesn't seem to help, i.e. running 'ldd' on executable shows that
> gcc libraries are not found.
> 
> Does anyone know how to ensure that the path to gcc libraries is recorded in
> the output object file?

I send you my mk.conf, hope this help, look at 
BUILDLINK_PASSTHRU_RPATHDIRS and in the mk/wrapper ...

-------------------------mk.conf---------------
# Example /usr/pkg/etc/mk.conf file produced by bootstrap-pkgsrc
# Mon Dec 19 17:34:24 CET 2005

# On essaie de compiler en 64bits sur AMD
#ABI?=32
OPENWINABI=	64
LIBABISUFFIX= /64

.ifdef BSD_PKG_MK	# begin pkgsrc settings

ABI=	64
PKG_DBDIR=	/var/db/pkg
LOCALBASE=	/usr/pkg
VARBASE=	/var
PKG_TOOLS_BIN=	/usr/pkg/sbin
PKGMANDIR=	man

TOOLS_PLATFORM.awk?=            /usr/pkg/bin/nawk
TOOLS_PLATFORM.sed?=            /usr/pkg/bin/nbsed
FETCH_CMD=                      /usr/pkg/bin/ftp
TOOLS_PLATFORM.pax?=            /usr/pkg/bin/pax
TOOLS_PLATFORM.tar?=            /usr/pkg/bin/tar
TOOLS_PLATFORM.mtree?=          /usr/pkg/sbin/mtree

PAX=/usr/pkg/bin/pax
SED=/usr/pkg/bin/nbsed

.endif			# end pkgsrc settings

#Automatically build and save binary packages on dependencies.
DEPENDS_TARGET=package

PKG_DEVELOPER?= yes
FAILOVER_FETCH= yes               # insist on the correct checksum

# accept toutes les LICENCES: comercial et autres
_ACCEPTABLE=yes

#ALLOW_VULNERABLE_PACKAGES= yes
ALLOW_VULNERABLE_PACKAGES= gdb

# Pour gcc34
# From: rillig@netbsd.org
#Please set CONFIG_SHELL=/bin/ksh in your mk.conf and try again.
#If that doesn't work, try another shell, maybe bash.
#
#The cause is most probably that some script used $(cat foo), which
#the Solaris shell does not understand.

CONFIG_SHELL?=/bin/bash

# /bin/ksh is buggy in sol10 @ 24 May 2006, waiting for upper patch 118873-02
WRAPPER_SHELL=/bin/bash


# _BLNK_PASSTHRU_DIRS contains the list of directories which we allow in
#       preprocessor's header, linker's library, or the runtime library
#       search paths.  The values of this list represent entire directory
#       trees under each named directory.  Package makefiles may add to
#       its value through ${BUILDLINK_PASSTHRU_DIRS}.
#
# _BLNK_PASSTHRU_RPATHDIRS contains an extra list of directories which we
#       allow in the runtime library search paths.  Package makefiles may
#       add to its value through ${BUILDLINK_PASSTHRU_RPATHDIRS}.
#

#.for _pkg_mk_conf in ${BUILDLINK_PACKAGES}
#BUILDLINK_LIBDIRS.${_pkg_mk_conf}= lib 
#BUILDLINK_LIBDIRS.${_pkg_mk_conf}+= lib/64
#.endfor

# iconv is a system lib on Solaris10
BUILDLINK_RPATHDIRS.iconv= #empty
BUILDLINK_LIBDIRS.iconv= #empty
IS_BUILTIN.iconv=	yes
USE_BUILTIN.iconv=	yes
ICONV_TYPE=		native

# pthread is a system lib on Solaris10
BUILDLINK_RPATHDIRS.pthread= #empty
BUILDLINK_LIBDIRS.pthread= #empty

# dl is a system lib on Solaris10
BUILDLINK_RPATHDIRS.dl= #empty
BUILDLINK_LIBDIRS.dl= #empty

# gettext est construit a partir de pkgsrc
BUILDLINK_LIBDIRS.gettext= lib 
BUILDLINK_LDFLAGS.gettext=  -R/usr/pkg/lib 
BUILDLINK_LDADD.gettext=	-lintl
IS_BUILTIN.gettext=	yes
USE_BUILTIN.gettext=    no # force use of pkgsrc gettext-lib

BUILDLINK_LIBDIRS.gettext-asprintf= lib 
BUILDLINK_LDFLAGS.gettext-asprintf=  -R/usr/pkg/lib -lasprintf

IS_BUILTIN.getopt=     yes
# On force a Solaris , celui de pkgsrc est cadre par des ifdef, ca va pas...
#USE_BUILTIN.getopt=    no # force use of pkgsrc getopt
USE_BUILTIN.getopt=	yes # force use of Solaris getopt
# getopt is a system lib on Solaris10
BUILDLINK_RPATHDIRS.getopt= #empty
BUILDLINK_LIBDIRS.getopt= #empty



#BUILDLINK_LDFLAGS.gettext=  -L/usr/pkg/lib -R/usr/pkg/lib -L/usr/lib/64 
-R/usr/lib/64
#BUILDLINK_LDADD.gettext= -R/usr/pkg/lib -L/usr/pkg/lib -lintl
#BUILDLINK_LDADD.gettext= -lintl
########################################
# Y a un sac de moeud avec gettext et libintl
# gettext exist en Solaris 10 mais pas de la bonne version
# gettext de pkgsrc fou la merde quand o construit gcc,... dilemme!
########################################
#USE_BUILTIN.gettext=	yes
#USE_MSGFMT_PLURALS= yes


#LDFLAGS?= -L/usr/pkg/lib -R/usr/pkg/lib -L/usr/lib/64 -R/usr/lib/64


BUILDLINK_PASSTHRU_DIRS+=	/usr/java
BUILDLINK_PASSTHRU_DIRS+=	/usr/sfw
BUILDLINK_PASSTHRU_RPATHDIRS+=	/usr/sfw/lib/64
#BUILDLINK_PASSTHRU_DIRS+=	/usr/lib/64
#BUILDLINK_PASSTHRU_DIRS+=	/usr/pkg
#BUILDLINK_PASSTHRU_RPATHDIRS+=	/usr/pkg/lib
#BUILDLINK_PASSTHRU_DIRS+=	/usr/openwin
#BUILDLINK_PASSTHRU_RPATHDIRS+=	/usr/openwin/lib


#.ifdef ABI
#.   if ${ABI} == "64"
#MABIFLAG= -m64
#LIBABISUFFIX= /64
#CFLAGS+= -m64
#LDFLAGS+= -m64
#.   else
#ABI=32
#.   endif
#.else	# defined(ABI)
#ABI=64
#MABIFLAG= -m64
#LIBABISUFFIX= /64
#CFLAGS+= -m64
#LDFLAGS+= -m64
#.endif	# defined(ABI)

# Patch pour prendre gawk, le nawk de sun merde pour construire kde
#AWK=/usr/local/bin/awk

#a voir et revoir avec IS_BUILTIN.pkg et USE_BUILTIN.pkg
#PREFER_PKGSRC=yes
#a cause de libiconv et de gcc34 qui ne tourne qu'en 32 bit
PREFER_NATIVE= yes

# mDNSResponder does not compile with that
USE_INET6=	no

# On utilise la zlib native, je ne sais trop pourquoi
IS_BUILTIN.zlib=	yes
USE_BUILTIN.zlib=	no # force use of pkgsrc zlib a cause de -R/usr/lib/64
BUILDLINK_LIBDIRS.zlib= lib 
BUILDLINK_LDFLAGS.zlib=  -R/usr/pkg/lib 
#BUILDLINK_RPATHDIRS.zlib= #empty
BUILDLINK_RPATHDIRS.zlib= lib


# pour que le BUILDLINK_LDFLAGS soit le bon
USE_BUILTIN.bzip2= no
PREFER.bzip2= pkgsrc
USE_BZIP2= yes
#BUILDLINK_LIBDIRS.bzip2= lib 
#BUILDLINK_LDFLAGS.bzip2=  -L/usr/pkg/lib -R/usr/pkg/lib -L/usr/lib/64 
-R/usr/lib/64

# Prefer pkgsrc for xpm
IS_BUILTIN.xpm=	yes
USE_BUILTIN.xpm=	no
PREFER.xpm=	pkgsrc
#BUILDLINK_LIBDIRS.xpm= lib 
#BUILDLINK_LDFLAGS.xpm=  -R/usr/pkg/lib -lXpm

# Bug avec db4: il manque -R/usr/pkg/lib
#BUILDLINK_LDFLAGS.db4+= -R/usr/pkg/lib -ldb4

#PKG_OPTIONS=	-oss -nas
### pour SDL
PKG_OPTIONS.SDL=	-arts -nas

PKG_OPTIONS.mplayer=	-oss -nas -mplayer-runtime-cpudetection -mplayer-win32
PKG_OPTIONS.gmplayer=	-oss -nas -mplayer-runtime-cpudetection -mplayer-win32

#### Pour octave###
# l'option hdf5 fait tout merder
########
PKG_OPTIONS.octave= -hdf5

### eviv2 ne compile pas pour le moment###
PKG_OPTIONS.gimp-ufraw=	-exiv2

PKG_OPTIONS.koffice= -koffice-wv2

### problem avec cyrus-sasl de creation de 'users'
#PKG_OPTIONS.kdebase=	-sasl


#### bug solaris avec fixesext.pc
# that is not correct, but work. In solaris10 Xfixes is release 3.0
# The actual pkgsrc release is 2.0 (23 Aug 2005). So, making the lib would 
# work. It install the wanted fixesext.pc in the right place: 
# /usr/pkg/lib/pkgconfig/fixesext.pc
IS_BUILTIN.fixesext=    no
USE_BUILTIN.fixesext=   no
PREFER.fixesext= 	pkgsrc
# change to fixesproto
IS_BUILTIN.fixesproto=    no
USE_BUILTIN.fixesproto=   no
PREFER.fixesproto= 	pkgsrc

########## A revoir #########
IS_BUILTIN.xproto= 	yes
USE_BUILTIN.xproto=	yes
PREFER.xproto=		native

#######################
# dans le package heimdal on a l'option PKG_SUPPORTED_OPTIONS=      
kerberos-prefix-cmds ldap
# on prefere l'implementation mit pour krb5, il a l'air plus simple!
# Pas sur que ce soit la bonne option
# On essaie ... Faut voir a l'usage lequel est le mieux supporte
# et si on a besoin de ldap avec krb5????
# 16 Fev 2006: mit-krb5 est RESTRICTED, zut!
#####################
#KRB5_DEFAULT=	mit-krb5
#PKG_OPTIONS.mit-krb5= kerberos-prefix-cmds
KRB5_DEFAULT= heimdal
PKG_OPTIONS.heimdal= kerberos-prefix-cmds

#########################################
# corrige le bug devel/pkg-config, x11/Xfixes, x11/xextensions,x11/fixesext
#########################################
#
#PKG_CONFIG_LIBDIR=/usr/pkg/lib/pkgconfig
#export PKG_CONFIG_LIBDIR


#######################################################
# for bulk build
#######################################################
# A list of pkgs which we should _never_ delete during a build.  The primary
# use is for digest and also for xpkgwedge.  Add pkgtools/xpkgwedge in
# /etc/mk.conf to do an xpkgwedged bulk build.
BULK_PREREQ+=   devel/libtool-base pkgtools/pkg_install-info devel/gettext-lib 
devel/gmake lang/gawk pkgtools/x11-links pkgtools/xpkgwedge
# Because of bug in bulk build, Solaris bootstrap need lang/nawk
BULK_PREREQ+=	lang/nawk
#BULK_PREREQ+=   pkgtools/x11-links pkgtools/xpkgwedge

BULKFILESDIR=/pkg/bulkfiles

DISTDIR=/home/distfiles
PACKAGES=/pkg/packages
WRKOBJDIR=/pkg/obj

# The fist sourceforge site in MASTER_SITE_SOURCEFORGE is usually down or
# overloaded, select a different one to speed up downloads
MASTER_SITE_SOURCEFORGE+=http://easynews.dl.sourceforge.net/sourceforge/