Re: LLVM bug WRT temporary files?

2014-02-13 Thread Marcel Moolenaar

On Feb 13, 2014, at 9:42 AM, David Chisnall david.chisn...@cl.cam.ac.uk wrote:

 This looks like a bug, please file an llvm PR.  The offending code seems to 
 be createUniqueEntity() in lib/Support/Unix/Path.inc, which does... 
 something.  Something weird and convoluted that seems to try to implement 
 mkstemp() / mkdtemp() in an incomprehensible way.

Will do. Thanks David,

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: LLVM bug WRT temporary files?

2014-02-13 Thread David Chisnall
This looks like a bug, please file an llvm PR.  The offending code seems to be 
createUniqueEntity() in lib/Support/Unix/Path.inc, which does... something.  
Something weird and convoluted that seems to try to implement mkstemp() / 
mkdtemp() in an incomprehensible way.

David

On 13 Feb 2014, at 17:33, Marcel Moolenaar mar...@xcllnt.net wrote:

 Guys,
 
 I'm running into a build break that relates to the temporary files
 that LLVM creates:
 
 svl-junos-j019% cc --version
 FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
 Target: arm--freebsd10.0-gnueabi
 Thread model: posix
 
 
 On a build machine /tmp/b is a directory and created by user X.
 I am doing a buildworld on that machine as user Y (Y=marcelm) and
 I don't have permissions in /tmp/b. The build gets to usr.bin/awk
 and it has a source file called b.c
 
 
 The build fails with:
 
 --- b.o ---
 cc  -O -pipe  -DHAS_ISBLANK -I. 
 -I/b/marcelm/buildbot/FreeBSD_arm_arm/build/usr.bin/awk/../../contrib/one-true-awk
  -DFOPEN_MAX=64 -std=gnu99 -Qunused-arguments  -Wsystem-headers -Werror 
 -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int 
 -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality 
 -Wno-unused-function -Wno-enum-conversion -Wno-switch -Wno-switch-enum 
 -Wno-knr-promoted-parameter -Wno-parentheses -c 
 /b/marcelm/buildbot/FreeBSD_arm_arm/build/usr.bin/awk/../../contrib/one-true-awk/b.c
 cc: error: unable to make temporary file: /tmp/b: can't make unique filename: 
 Permission denied
 *** [b.o] Error code 1
 
 
 Running truss shows:
 
 access(/b/marcelm/buildbot/FreeBSD_arm_arm/build/usr.bin/awk/../../contrib/one-true-awk/b.c,0)
  = 0 (0x0)
 stat(/tmp/b,{ mode=drwxr-xr-x ,inode=235520,size=512,blksize=16384 }) = 0 
 (0x0)
 open(/dev/random,O_RDONLY,00)= 3 (0x3)
 read(3,\M^S\M^H\^S65S'*\M-T\M-r\^A9\M-K...,128) = 128 (0x80)
 close(3)   = 0 (0x0)
 stat(/tmp/b,{ mode=drwxr-xr-x ,inode=235520,size=512,blksize=16384 }) = 0 
 (0x0)
 open(/tmp/b/B8owDb,O_RDWR|O_CREAT|O_EXCL,0600) ERR#13 'Permission denied'
 
 
 Now, if I compile another file, I get:
 
 access(/b/marcelm/buildbot/FreeBSD_arm_arm/build/usr.bin/awk/../../contrib/one-true-awk/lex.c,0)
  = 0 (0x0)
 stat(/tmp/lex,0x7fffbab0)ERR#2 'No such file or 
 directory'
 open(/dev/random,O_RDONLY,00)= 3 (0x3)
 read(3,\^F\r\M-J\M-5Z\M-fK\^E\M-2'\M-1...,128) = 128 (0x80)
 close(3)   = 0 (0x0)
 stat(/tmp,{ mode=drwxrwxrwt ,inode=2,size=9728,blksize=16384 }) = 0 (0x0)
 open(/tmp/lex-pDQnPA,O_RDWR|O_CREAT|O_EXCL,0600) = 3 (0x3)
 close(3)   = 0 (0x0)
 
 
 So for some reason when /tmp/basename exists and is a directory, then the
 compiler wants to create a temporary file underneath that directory. That
 looks like a bug to me. Do people concur and thus shall I file a PR?
 
 -- 
 Marcel Moolenaar
 mar...@xcllnt.net
 
 

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org