I tried cross-building sparc64 from amd64 and failed when it looked
for libsa.a in the wrong directory (obj.sparc64 instead of
obj.amd64.sparc64).  The diff below is inspired by
src/sys/arch/amd64/stand/Makefile.inc, and applied to other arches
that had similarly styled code.

I'd appreciate test reports to make sure this doesn't break native
builds on any of the affected architectures (hp300, loongson, sgi,
sparc, sparc64).  Just a quick "make obj && make clean && make" in
src/sys/arch/$MACHINE/stand should suffice.

Thanks.


Index: hp300/stand/Makefile.inc
===================================================================
RCS file: /cvs/src/sys/arch/hp300/stand/Makefile.inc,v
retrieving revision 1.9
diff -u -p hp300/stand/Makefile.inc
--- hp300/stand/Makefile.inc    26 Nov 2007 10:01:42 -0000      1.9
+++ hp300/stand/Makefile.inc    14 Mar 2011 22:19:05 -0000
@@ -21,10 +21,8 @@ CPPFLAGS+=           -DHEAP_LIMIT="0xffffdfff"
 ### Figure out what to use for libcommon
 COMMONDIR=             ${.CURDIR}/../common
 
-.if exists(${COMMONDIR}/obj.${MACHINE})
-COMMONOBJDIR=          ${COMMONDIR}/obj.${MACHINE}
-.elif exists(${COMMONDIR}/obj)
-COMMONOBJDIR=          ${COMMONDIR}/obj
+.if exists(${COMMONDIR}/${__objdir})
+COMMONOBJDIR=          ${COMMONDIR}/${__objdir}
 .else
 COMMONOBJDIR=          ${COMMONDIR}
 .endif
@@ -34,10 +32,8 @@ LIBCOMMON=           ${COMMONOBJDIR}/libcommon.a
 ### Figure out what to use for libsa
 LIBSADIR=              ${.CURDIR}/../libsa
 
-.if exists(${LIBSADIR}/obj.${MACHINE})
-LIBSAOBJDIR=           ${LIBSADIR}/obj.${MACHINE}
-.elif exists(${LIBSADIR}/obj)
-LIBSAOBJDIR=           ${LIBSADIR}/obj
+.if exists(${LIBSADIR}/${__objdir})
+LIBSAOBJDIR=           ${LIBSADIR}/${__objdir}
 .else
 LIBSAOBJDIR=           ${LIBSADIR}
 .endif
@@ -47,10 +43,8 @@ LIBSA=                       ${LIBSAOBJDIR}/libsa.a
 ### Figure out what to use for libsaz
 LIBSAZDIR=             ${.CURDIR}/../libsaz
 
-.if exists(${LIBSAZDIR}/obj.${MACHINE})
-LIBSAZOBJDIR=          ${LIBSAZDIR}/obj.${MACHINE}
-.elif exists(${LIBSAZDIR}/obj)
-LIBSAZOBJDIR=          ${LIBSAZDIR}/obj
+.if exists(${LIBSAZDIR}/${__objdir})
+LIBSAZOBJDIR=          ${LIBSAZDIR}/${__objdir}
 .else
 LIBSAZOBJDIR=          ${LIBSAZDIR}
 .endif
@@ -60,10 +54,8 @@ LIBSAZ=                      ${LIBSAZOBJDIR}/libsaz.a
 ### Figure out what to use for libz
 LIBZDIR=               ${.CURDIR}/../libz
 
-.if exists(${LIBZDIR}/obj.${MACHINE})
-LIBZOBJDIR=            ${LIBZDIR}/obj.${MACHINE}
-.elif exists(${LIBZDIR}/obj)
-LIBZOBJDIR=            ${LIBZDIR}/obj
+.if exists(${LIBZDIR}/${__objdir})
+LIBZOBJDIR=            ${LIBZDIR}/${__objdir}
 .else
 LIBZOBJDIR=            ${LIBZDIR}
 .endif
@@ -73,10 +65,8 @@ LIBZ=                        ${LIBZOBJDIR}/libz.a
 ### Figure out what to use for mkboot
 MKBOOTDIR=             ${.CURDIR}/../mkboot
 
-.if exists(${MKBOOTDIR}/obj.${MACHINE})
-MKBOOTOBJDIR=          ${MKBOOTDIR}/obj.${MACHINE}
-.elif exists(${MKBOOTDIR}/obj)
-MKBOOTOBJDIR=          ${MKBOOTDIR}/obj
+.if exists(${MKBOOTDIR}/${__objdir})
+MKBOOTOBJDIR=          ${MKBOOTDIR}/${__objdir}
 .else
 MKBOOTOBJDIR=          ${MKBOOTDIR}
 .endif
@@ -86,10 +76,8 @@ MKBOOT_PROG=         ${MKBOOTOBJDIR}/mkboot
 ### Figure out what to use for stripboot
 STRIPBOOTDIR=          ${.CURDIR}/../stripboot
 
-.if exists(${STRIPBOOTDIR}/obj.${MACHINE})
-STRIPBOOTOBJDIR=       ${STRIPBOOTDIR}/obj.${MACHINE}
-.elif exists(${STRIPBOOTDIR}/obj)
-STRIPBOOTOBJDIR=       ${STRIPBOOTDIR}/obj
+.if exists(${STRIPBOOTDIR}/${__objdir})
+STRIPBOOTOBJDIR=       ${STRIPBOOTDIR}/${__objdir}
 .else
 STRIPBOOTOBJDIR=       ${STRIPBOOTDIR}
 .endif
Index: loongson/stand/Makefile.inc
===================================================================
RCS file: /cvs/src/sys/arch/loongson/stand/Makefile.inc,v
retrieving revision 1.1
diff -u -p loongson/stand/Makefile.inc
--- loongson/stand/Makefile.inc 14 Feb 2010 22:39:33 -0000      1.1
+++ loongson/stand/Makefile.inc 14 Mar 2011 22:19:05 -0000
@@ -25,10 +25,8 @@ LD?=         ld
 ### Figure out what to use for libsa
 LIBSADIR?=               ${.CURDIR}/../libsa
 
-.if exists(${LIBSADIR}/obj.${MACHINE})
-LIBSAOBJDIR=            ${LIBSADIR}/obj.${MACHINE}
-.elif exists(${LIBSADIR}/obj)
-LIBSAOBJDIR=            ${LIBSADIR}/obj
+.if exists(${LIBSADIR}/${__objdir})
+LIBSAOBJDIR=            ${LIBSADIR}/${__objdir}
 .else
 LIBSAOBJDIR=            ${LIBSADIR}
 .endif
@@ -38,10 +36,8 @@ LIBSA=                  ${LIBSAOBJDIR}/libsa.a
 ### Figure out what to use for libz
 LIBZDIR?=                ${.CURDIR}/../libz
 
-.if exists(${LIBZDIR}/obj.${MACHINE})
-LIBZOBJDIR=             ${LIBZDIR}/obj.${MACHINE}
-.elif exists(${LIBZDIR}/obj)
-LIBZOBJDIR=             ${LIBZDIR}/obj
+.if exists(${LIBZDIR}/${__objdir})
+LIBZOBJDIR=             ${LIBZDIR}/${__objdir}
 .else
 LIBZOBJDIR=             ${LIBZDIR}
 .endif
Index: sgi/stand/Makefile.inc
===================================================================
RCS file: /cvs/src/sys/arch/sgi/stand/Makefile.inc,v
retrieving revision 1.6
diff -u -p sgi/stand/Makefile.inc
--- sgi/stand/Makefile.inc      14 Sep 2010 14:28:05 -0000      1.6
+++ sgi/stand/Makefile.inc      14 Mar 2011 22:19:05 -0000
@@ -24,10 +24,8 @@ LIBSA_CPPFLAGS?= -DNEEDS_HEAP_H
 ### Figure out what to use for libsa
 LIBSADIR?=               ${.CURDIR}/../libsa
 
-.if exists(${LIBSADIR}/obj.${MACHINE})
-LIBSAOBJDIR=            ${LIBSADIR}/obj.${MACHINE}
-.elif exists(${LIBSADIR}/obj)
-LIBSAOBJDIR=            ${LIBSADIR}/obj
+.if exists(${LIBSADIR}/${__objdir})
+LIBSAOBJDIR=            ${LIBSADIR}/${__objdir}
 .else
 LIBSAOBJDIR=            ${LIBSADIR}
 .endif
@@ -37,10 +35,8 @@ LIBSA=                  ${LIBSAOBJDIR}/libsa.a
 ### Figure out what to use for libz
 LIBZDIR?=                ${.CURDIR}/../libz
 
-.if exists(${LIBZDIR}/obj.${MACHINE})
-LIBZOBJDIR=             ${LIBZDIR}/obj.${MACHINE}
-.elif exists(${LIBZDIR}/obj)
-LIBZOBJDIR=             ${LIBZDIR}/obj
+.if exists(${LIBZDIR}/${__objdir})
+LIBZOBJDIR=             ${LIBZDIR}/${__objdir}
 .else
 LIBZOBJDIR=             ${LIBZDIR}
 .endif
Index: sparc/stand/Makefile.inc
===================================================================
RCS file: /cvs/src/sys/arch/sparc/stand/Makefile.inc,v
retrieving revision 1.16
diff -u -p sparc/stand/Makefile.inc
--- sparc/stand/Makefile.inc    29 Jun 2010 21:33:54 -0000      1.16
+++ sparc/stand/Makefile.inc    14 Mar 2011 22:19:05 -0000
@@ -48,10 +48,8 @@ DEFS=                -DSTANDALONE -D_STANDALONE 
-DRELOC=${RELOC} -DS
 ### Figure out what to use for libsa
 LIBSADIR=              ${.CURDIR}/../libsa
 
-.if exists(${LIBSADIR}/obj.${MACHINE})
-LIBSAOBJDIR=           ${LIBSADIR}/obj.${MACHINE}
-.elif exists(${LIBSADIR}/obj)
-LIBSAOBJDIR=           ${LIBSADIR}/obj
+.if exists(${LIBSADIR}/${__objdir})
+LIBSAOBJDIR=           ${LIBSADIR}/${__objdir}
 .else
 LIBSAOBJDIR=           ${LIBSADIR}
 .endif
@@ -61,10 +59,8 @@ LIBSA=                       ${LIBSAOBJDIR}/libsa.a
 ### Figure out what to use for libz
 LIBZDIR=               ${.CURDIR}/../libz
 
-.if exists(${LIBZDIR}/obj.${MACHINE})
-LIBZOBJDIR=            ${LIBZDIR}/obj.${MACHINE}
-.elif exists(${LIBZDIR}/obj)
-LIBZOBJDIR=            ${LIBZDIR}/obj
+.if exists(${LIBZDIR}/${__objdir})
+LIBZOBJDIR=            ${LIBZDIR}/${__objdir}
 .else
 LIBZOBJDIR=            ${LIBZDIR}
 .endif
Index: sparc64/stand/Makefile.inc
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/stand/Makefile.inc,v
retrieving revision 1.8
diff -u -p sparc64/stand/Makefile.inc
--- sparc64/stand/Makefile.inc  26 Nov 2007 10:26:02 -0000      1.8
+++ sparc64/stand/Makefile.inc  14 Mar 2011 22:19:05 -0000
@@ -23,10 +23,8 @@ CFLAGS+=     -fno-builtin-vprintf -fno-builtin-printf -fno
 ### Figure out what to use for libsa
 LIBSADIR=               ${.CURDIR}/../libsa
 
-.if exists(${LIBSADIR}/obj.${MACHINE})
-LIBSAOBJDIR=            ${LIBSADIR}/obj.${MACHINE}
-.elif exists(${LIBSADIR}/obj)
-LIBSAOBJDIR=            ${LIBSADIR}/obj
+.if exists(${LIBSADIR}/${__objdir})
+LIBSAOBJDIR=            ${LIBSADIR}/${__objdir}
 .else
 LIBSAOBJDIR=            ${LIBSADIR}
 .endif
@@ -36,10 +34,8 @@ LIBSA=                  ${LIBSAOBJDIR}/libsa.a
 ### Figure out what to use for libz
 LIBZDIR=                ${.CURDIR}/../libz
 
-.if exists(${LIBZDIR}/obj.${MACHINE})
-LIBZOBJDIR=             ${LIBZDIR}/obj.${MACHINE}
-.elif exists(${LIBZDIR}/obj)
-LIBZOBJDIR=             ${LIBZDIR}/obj
+.if exists(${LIBZDIR}/${__objdir})
+LIBZOBJDIR=             ${LIBZDIR}/${__objdir}
 .else
 LIBZOBJDIR=             ${LIBZDIR}
 .endif

Reply via email to