tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Sunpro bootstrapping issue
I've installed a Sparc IIIi machine with Solaris 10 and the current SunPro
compilers.
The latter are installed in /opt/sunstudio12.1 and also symlinked to /usr/bin,
which are the standard settings with the installer.
Now when I bootstrap with that setup using --abi=64, it fails very much like
reported in pkg/42240.
mk/compiler/sunpro.mk
has
SUNWSPROBASE?= /opt/SUNWspro
...
_COMPILER_NAME.c= cc
...
and then only if ${SUNWSPROBASE}/bin/cc exists it will set CPATH to
${SUNWSPROBASE}/bin/cc
further below we have
.if exists(${CCPATH})
CC_VERSION_STRING!= ${CCPATH} -V 2>&1 || ${TRUE}
CC_VERSION!= ${CCPATH} -V 2>&1 | ${GREP} '^cc'
.else
CC_VERSION_STRING?= ${CC_VERSION}
CC_VERSION?= cc: Sun C
.endif
this means in my case I end up having CC_VERSION default to "cc: Sun C"
And so a bit further down
.if !empty(CC_VERSION:M5.9) || !empty(CC_VERSION:M5.1[0-9])
does not match and I do erroneously end up with
_COMPILER_ABI_FLAG.64= -xtarget=ultra -xarch=v9
simply because pkgsrc tries to evaluate the full path of the compiler and,
during bootstrapping, mandates that it is to be found in /opt/SUNWspro
Now what's the correct way to fix that? It seems like pkgsrc is intensionally
using fixed default paths for compilers. Staying in line with that philosophy,
something like
.for _p in /opt/SUNWspro /opt/sunstudio12.1
. if exists(${_p}/bin/cc)
SUNWSPROBASE?= ${_p}
. endif
.endfor
should do.
What do you think?
--
Georg Schwarz http://home.pages.de/~schwarz/
georg.schwarz%freenet.de@localhost +49 170 8768585
Home |
Main Index |
Thread Index |
Old Index