OpenSolaris

Printable Version Enter a New Search
Bug ID 6755317
Synopsis "dmake modlist" fails for core_pcbe
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:cpc
Keywords SFO
Responsible Engineer Kuriakose Kuruvilla
Reported Against
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_102
Fixed In snv_102
Release Fixed solaris_nevada(snv_102) , solaris_10u7(s10u7_02) (Bug ID:2168592)
Related Bugs 6661753
Submit Date 2-October-2008
Last Update Date 6-November-2008
Description
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
Comments
N/A