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