Subject: i386 build bombs on
To: None <tech-smp@netbsd.org>
From: Andreas Gustafsson <gson@gson.org>
List: tech-smp
Date: 01/21/2002 19:48:59
I am running a -current i386 system where /usr/src/sys/arch/i386 is
checked out from the sommerfeld_i386mp_1 branch.  When rebuilding the
system using build.sh, I got the following error:

   CC=/usr/src/tools/obj/tools.NetBSD-1.5ZA-i386/bin/i386--netbsdelf-gcc /usr/src/tools/obj/tools.NetBSD-1.5ZA-i386/bin/i386--netbsdelf-lint -chapbxzF -w -X 272 -d /destdir/usr/include -D_LIBC -DNLS -DYP -DHESIOD -DLIBC_SCCS -DSYSLIBC_SCCS -D_REENTRANT -I/usr/src/lib/libc/include -DINET6 -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../libexec/ld.elf_so -I/usr/src/lib/libc/dlfcn -DWITH_RUNE -DRUNEMOD_MAJOR=3 -D_PATH_LOCALEMODULE=\"/usr/lib/runemodule\" -DRESOLVSORT -I. -DPOSIX_MISTAKE -DPORTMAP -DFLOATING_POINT -i LintSysNoerr.c
   /destdir/usr/include/machine/atomic.h(49): warning: conversion from 'unsigned long' may lose accuracy [132]
   *** Error code 1

Is this a bug, or am I doing something wrong?  In any case, I worked
around it with the following change:

Index: atomic.h
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/i386/include/Attic/atomic.h,v
retrieving revision 1.1.2.5
diff -u -r1.1.2.5 atomic.h
--- atomic.h	2001/12/11 23:52:07	1.1.2.5
+++ atomic.h	2002/01/22 03:47:59
@@ -44,7 +44,7 @@
 #ifndef _LOCORE
 
 static __inline u_int32_t
-i386_atomic_testset_ul (volatile u_int32_t *ptr, unsigned long val) {
+i386_atomic_testset_ul (volatile u_int32_t *ptr, unsigned int val) {
     __asm__ volatile ("xchgl %0,(%2)" :"=r" (val):"0" (val),"r" (ptr));
     return val;
 }

-- 
Andreas Gustafsson, gson@gson.org