In a workspace sync'ed with onnv-gate as of 9/30, after a clean
nightly, Install fails to build a glommed kernel:
The Install being used is /ws/onnv-tools/onbld/bin/Install
: tomee@girltalk[8]; !Install
Install -G kernel.kmem -k i86pc
girltalk --> Job errors
girltalk --> Job errors
Usage: dirname [ path ]
dmake: Fatal error: Command failed for target `modlist.obj64'
Current working directory
/export/tomee/dnode/usr/src/uts/intel/core_pcbe
dmake: Fatal error: Command failed for target `core_pcbe'
Current working directory /export/tomee/dnode/usr/src/uts/intel
dmake: Fatal error: Command failed for target `modlist.intel'
Current working directory /export/tomee/dnode/usr/src/uts/i86pc
cp: cannot access
/export/tomee/dnode/usr/src/uts/intel/arcmsr//export/tomee/dnode/usr/src/uts/int
+el/io/scsi/adapters/arcmsr/arcmsr.conf
Creating tarfile /tmp/Install.tomee/Install.i86pc.tar
: tomee@girltalk[9];
Install with -v turned on (in a different workspace) shows the following:
...
copy_kernel # sets STATE=1 if successful
girltalk --> Job errors
girltalk --> Job errors
Usage: dirname [ path ]
dmake: Fatal error: Command failed for target `modlist.debug64'
Current working directory /export/sherrym/hg-fastboot/usr/src/uts/intel/core_pcbe
dmake: Fatal error: Command failed for target `core_pcbe'
Current working directory /export/sherrym/hg-fastboot/usr/src/uts/intel
Waiting for 31 jobs to finish
dmake: Fatal error: Command failed for target `modlist.intel'
Current working directory /export/sherrym/hg-fastboot/usr/src/uts/i86pc
cp: cannot access /export/sherrym/hg-fastboot/usr/src/uts/intel/arcmsr//export/sherrym/hg-fastboot/usr/src/uts/intel/io/scsi/adapters/arcmsr/arcmsr.conf
/export/sherrym/images/hg-fb/Install.sherrym/i86pc
copy_kmdb # sets STATE=2 if successful
make_tarfile # sets STATE=3 if successful
Creating tarfile /export/sherrym/images/hg-fb/Install.sherrym/Install.i86pc.tar
remote_install # sets STATE=4 if successful
okexit
"dmake modlist" fails for core_pcbe, resulting in Cap-eye-install (Install)
failrue:
<12 girltalk >pwd
/export/sherrym/hg-fastboot/usr/src/uts/intel/core_pcbe
<13 girltalk >dmake modlist
Usage: dirname [ path ]
*** Error code 1
The following command caused the error:
case modlist.debug64 in \
*32) \
class=32; \
relmodule=`dirname usr/kernel/pcbe/pcbe.GenuineIntel.6.15`; \
rellink=`dirname usr/kernel/pcbe/pcbe.GenuineIntel.6.23 usr/kernel/pcbe/pcbe.GenuineIntel.6.26 usr/kernel/pcbe/pcbe.GenuineIntel.6.37`;; \
*64) \
class=64; \
relmodule=`dirname usr/kernel/pcbe/pcbe.GenuineIntel.6.15`/amd64; \
rellink=`dirname usr/kernel/pcbe/pcbe.GenuineIntel.6.23 usr/kernel/pcbe/pcbe.GenuineIntel.6.26 usr/kernel/pcbe/pcbe.GenuineIntel.6.37`/amd64;; \
esac; \
if [ -z "" ]; then \
impl=all; \
else \
impl=; \
fi; \
if [ -n "/export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.15" -a -n "debug32/pcbe.GenuineIntel.6.15 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.15 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.23 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.26 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.37" ]; then \
if [ -z "pcbe.GenuineIntel.6.15" ]; then \
module=`basename /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.15`; \
else \
module=pcbe.GenuineIntel.6.15; \
fi; \
tinstall="debug32/pcbe.GenuineIntel.6.15 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.15 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.23 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.26 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.37"; \
for t in $tinstall; do \
if [ "/export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.15" = $t ]; then \
echo MOD $module $relmodule \
$class $impl /export/sherrym/hg-fastboot/usr/src/uts/intel/core_pcbe; \
break; \
fi \
done \
fi; \
if [ -n "" ]; then \
tinstall="debug32/pcbe.GenuineIntel.6.15 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.15 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.23 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.26 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.37"; \
for t in $tinstall; do \
if [ /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.15.conf = $t ]; then \
echo CONF usr/kernel/pcbe/pcbe.GenuineIntel.6.15.conf \
/export/sherrym/hg-fastboot/usr/src/uts/intel/core_pcbe/ $impl $module; \
break; \
fi \
done \
fi; \
if [ -n "/export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.23 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.26 /export/sherrym/hg-fastboot/proto/root_i386/usr/kernel/pcbe/pcbe.GenuineIntel.6.37" ]; then \
echo LINK $relmodule $module \
$rellink `basename usr/kernel/pcbe/pcbe.GenuineIntel.6.23 usr/kernel/pcbe/pcbe.GenuineIntel.6.26 usr/kernel/pcbe/pcbe.GenuineIntel.6.37` $impl; \
fi; \
if [ -n "" ]; then \
echo SYMLINK amd64/ \
`dirname ` unix $impl $module; \
fi; \
trelsoftlinks=""; \
for t in $trelsoftlinks; do \
if [ $class = 32 ]; then \
linkdir=`dirname $t`; \
else \
linkdir=`dirname $t`/amd64; \
fi; \
linkname=`basename $t`; \
echo SYMLINK pcbe.GenuineIntel.6.15 $linkdir $linkname \
$impl $module; \
done
dmake: Fatal error: Command failed for target `modlist.debug64'
Current working directory /export/sherrym/hg-fastboot/usr/src/uts/intel/core_pcbe
<14 girltalk >
ROOTLINK is used by MODLIST in Makefile.targ to generate the list of
files that cap-eye-install (Install) needs to tar over for the glommed
kernel.
=====================================================================
RELLINK = $(ROOTLINK:$(ROOT)/%=%)
$(MODLIST_DEPS): FRC
@case $@ in \
*32) \
class=32; \
relmodule=`dirname $(RELMODULE)`; \
rellink=`dirname $(RELLINK)`;; \
*64) \
class=64; \
relmodule=`dirname $(RELMODULE)`/$(SUBDIR64); \
rellink=`dirname $(RELLINK)`/$(SUBDIR64);; \
...
=====================================================================
In core_pcbe's Makefile, ROOTLINK contains more than one file, thus
the failure.
=====================================================================
ROOTLINK = $(USR_PCBE_DIR)/pcbe.GenuineIntel.6.23 $(USR_PCBE_DIR)/pcbe.GenuineIntel.6.26 $(USR_PCBE_DIR)/pcbe.GenuineIntel.6.37
=====================================================================
Work Around
This problem can be avoided by reverting the following files
usr/src/pkgdefs/SUNWcpcu/prototype_i386
usr/src/uts/intel/core_pcbe/Makefile
to versions before the putback of
---------------
changeset: 7728:05a8120259d0
user: Kuriakose Kuruvilla < xxxxx@xxxxx.COM>
date: Sun Sep 28 09:15:02 2008 -0700
description:
6661753 Add support for performance counters on Intel future processors
6726994 core_pcbe.c should also include MISALIGN_MEM_REF (event code 5)
modified:
usr/src/pkgdefs/SUNWcpcu/prototype_i386
usr/src/uts/intel/core_pcbe/Makefile
usr/src/uts/intel/ia32/os/cpc_subr.c
usr/src/uts/intel/pcbe/core_pcbe.c
---------------
$ hg revert -d "Sep 27" usr/src/uts/intel/core_pcbe/Makefile
Found revision 7726 from Sun Sep 28 13:04:11 2008 +0800
$ hg revert -d "Sep 27" usr/src/pkgdefs/SUNWcpcu/prototype_i386
Found revision 7726 from Sun Sep 28 13:04:11 2008 +0800
$
This will remove all references to pcbe.GenuineIntel.6.26 and pcbe.GenuineIntel.6.37 from these files. These references can also be removed manually.
As a result the pcbe driver will not be available on platforms with Intel processors from Family 6 Models 26 and 37. If you require these, create a hardlink named pcbe.GenuineIntel.6.26 (or 37) to pcbe.GenuineIntel.6.15
These drivers are located at both /usr/kernel/pcbe and /usr/kernel/pcbe/amd64