Subject: Re: /usr/src/lib/libc/arch/mips/sys/__sigreturn14.S build fails a/o March 26
To: None <port-sgimips@netbsd.org>
From: sgimips NetBSD list <sgimips@mrynet.com>
List: port-sgimips
Date: 04/02/2004 15:53:59
Previously, as mentioned below, I was doing nightly builds of sgimips releases.
On March 26, the cvs update picked up mods that caused the builds to fail.
Subsequent nightly builds failed as well--cvs was not picking up or correcting
the source tree.

I inquired whether anyone else was experiencing this, and had no responses
indicating so.  I then presumed that there was a cross-build issue, so I moved
/usr/src aside and re-cvs'd.

Lo and behold, all is building again.

I plan to diff the two source directories, but that's secondary now.  If anyone
has any experience with nightly cvs updates breaking the source tree, please drop
me a note with any info you might have on avoiding or simply detecting the situation.

Since a number of folks emailed me inquiring about the availability of the nightly
releases, I'm now making these releases available via FTP.  The cvs kicks off at
11pm US-EST and the full build and releases are generally available via FTP about
6.5 hours later (04:30 US-EST).  The releases include a bootable CDROM image.

Thanks and regards,
-scott

On Thu, Apr 1, 2004 at  1:27am, sgimips NetBSD list wrote:
> Subject: /usr/src/lib/libc/arch/mips/sys/__sigreturn14.S build fails a/o M
>
> Nightly, I was building an sgimips release snapshot and CDROM image.
> As of March 26, when drochner submitted changes to the file, it no longer builds
> due to __sigreturn14.S using a different macro for assembler macro expansion.
> 
> #   compile  libc/__sigreturn14.o
> /sim/sgimips/obj/tooldir.NetBSD-1.6ZK-alpha/bin/mipseb--netbsd-gcc   -D_LIBC -DLIBC_SCCS -DSYSLIBC_SCCS -D_REENTRANT -I/usr/src/lib/libc/include -DHESIOD -DINET6 -DNLS -DYP -D__DBINTERFACE_PRIVATE -DI18NMODULE_MAJOR=4 -I/usr/src/libexec/ld.elf_so -I/usr/src/lib/libc/dlfcn -DCITRUS_ICONV -DWITH_RUNE -I/usr/src/lib/libc -DRESOLVSORT -I. -DPOSIX_MISTAKE -DPORTMAP -DFLOATING_POINT   -nostdinc -isystem /sim/sgimips/dest/usr/include -c -traditional-cpp  -DALL_STATE -DUSG_COMPAT  -I/usr/src/lib/libc/arch/mips -nostdinc -idirafter /sim/sgimips/dest/usr/include /usr/src/lib/libc/arch/mips/sys/__sigreturn14.S -o __sigreturn14.o.tmp
> /usr/src/lib/libc/arch/mips/sys/__sigreturn14.S: Assembler messages:
> /usr/src/lib/libc/arch/mips/sys/__sigreturn14.S:46: Error: absolute expression required `li'
> 
> *** Failed target:  __sigreturn14.o
> *** Failed command: /sim/sgimips/obj/tooldir.NetBSD-1.6ZK-alpha/bin/mipseb--netbsd-gcc -D_LIBC -DLIBC_SCCS -DSYSLIBC_SCCS -D_REENTRANT -I/usr/src/lib/libc/include -DHESIOD -DINET6 -DNLS -DYP -D__DBINTERFACE_PRIVATE -DI18NMODULE_MAJOR=4 -I/usr/src/libexec/ld.elf_so -I/usr/src/lib/libc/dlfcn -DCITRUS_ICONV -DWITH_RUNE -I/usr/src/lib/libc -DRESOLVSORT -I. -DPOSIX_MISTAKE -DPORTMAP -DFLOATING_POINT -nostdinc -isystem /sim/sgimips/dest/usr/include -c -traditional-cpp -DALL_STATE -DUSG_COMPAT -I/usr/src/lib/libc/arch/mips -nostdinc -idirafter /sim/sgimips/dest/usr/include /usr/src/lib/libc/arch/mips/sys/__sigreturn14.S -o __sigreturn14.o.tmp
> *** Error code 1
> 
> Stop.
> nbmake: stopped in /usr/src/lib/libc
> 
> Current version of /usr/src/lib/libc/arch/mips/sys/__sigreturn14.S:
> 
>     ##### version 1.4, 2004/03/26 20:35:37
>     PSEUDO(__sigreturn14,compat_16___sigreturn14)
> 
> 
> Previously was:
> 
>     ##### version 1.3, 2003/08/07 16:42:17      
>     RSYSCALL(__sigreturn14)
> 
> Definitions for RSYSCALL and PSEUDO are in /usr/src/lib/libc/arch/mips/SYS.h:
> 
>     /*
>      * Do a normal syscall.
>      */
>     #define RSYSCALL(x)                                                 \
>             PSEUDO(x,x)
> 
>     #define PSEUDO(x,y)                                                 \
>     LEAF(x);                                                            \
>             PIC_PROLOGUE(x,t9);                                         \
>             SYSTRAP(y);                                                 \
>             bne a3,zero,err;                                            \
>             j ra;                                                       \
>     err:                                                                \
>             PIC_CALL(__cerror,t9);                                      \
>             END(x)
> 
> The problem occurs during the SYSTRAP preprocessing (We're not __STDC__ here):
> 
>     #ifdef __STDC__
>     # define SYSTRAP(x) li v0,SYS_ ## x; syscall;
>     #else
>     # define SYSTRAP(x) li v0,SYS_/**/x; syscall;
>     #endif
> 
> The expansion ends up being:
> 
>         li $2,SYS_compat_16___sigreturn14;
> 
> SYS_compat_16___sigreturn14 is #DEFINEd in /usr/src/sys/include/syscall.h:
> 
>     #define SYS_compat_16___sigaction14     291
> 
> If I change __sigreturn14.S back to using RSYSCALL instead of PSEUDO macro,
> the expansion correctly results in:
> 
>         li $2,SYS_291; syscall;
> 
> I don't know if this is a macro error, gcc preprocessor error, or what.
> 
> Nonetheless, it is failing and I'm unable to build my nightly release snapshots.
> 
> Can anyone address that or tell me if I have a local problem?
> 
> Cheers,
> -scott
> 
>-- End of excerpt from sgimips NetBSD list