On Thu, May 27, 2021 at 12:43:58PM +0200, Claes Nästén wrote:
Have a look at what your /dev/null currently is, should be something like: $ ls -l /dev/null crw-rw-rw- 1 root root 13, 2 May 27 09:45 /dev/null Or: $ ls -l /dev/null lrwxrwxrwx 1 root other 27 Apr 12 20:01 /dev/null -> ../devices/pseudo/mm@0:null If it's a regular file, recreate /dev/null, remove your work directories and try again.
Thank you Claes, that was it! # ls -l /dev/null -rw-r--r-- 1 root root 0 May 27 08:11 /dev/null # rm /dev/null && ln -s ../devices/pseudo/mm@0:null /dev/null # ls -l /dev/null lrwxrwxrwx 1 root root 27 May 27 12:15 null -> ../devices/pseudo/mm@0:null And install is working.I've also rebuilt the last few installed packages before /dev/null broke, and found the one causing the issue: devel/git-base
Ultimately I had to resort to truss to find out wtf is going on here: 22964: execve("/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/cc1", 0x00103EE8, 0x001035FC) argc = 30 22964: argv: /opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/cc1 22964: -quiet -I /usr/pkg/include -I /usr/include -I 22964: /usr/pkg/include -I /usr/include -MMD /dev/null.d -MF 22964: /dev/null -MP -MQ /dev/null -D__sparcv8 -D _FORTIFY_SOURCE=2 22964: /dev/null -quiet -dumpbase null -mcpu=v9 -auxbase-strip 22964: /dev/null -O2 -o /var/tmp//ccWh7Ysa.s [...] 22966: execve("/usr/ccs/bin/as", 0x00103EE8, 0x001035FC) argc = 8 22966: argv: /usr/ccs/bin/as -Qy -s -xarch=v8plus -m32 -o /dev/null 22966: /var/tmp//ccWh7Ysa.s [...] 22966: unlink("/dev/null") = 0 22966: open("/dev/null", O_RDWR|O_SYNC|O_CREAT, 0666) = 3That is, the Solaris assembler deletes its output file first, then recreates it. For reference, the one on this machine is:
# as -V as: SunOS 5.10 118683-07 Patch 05/02/2011Now in the git Makefile there are 3 places calling the compiler with "-o /dev/null", all of which will cause /dev/null to be overwritten. This is one of these commands which can be used for reproduction (it's for setting the variable dep_check):
gcc -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/include -c -MF /dev/null -MQ /dev/null -MMD -MP -x c /dev/null -o /dev/null Regards, Lehel
Attachment:
signature.asc
Description: PGP signature