On Wed, Oct 18, 2006 at 07:48:39PM +0400, Alexey Tourbin wrote: > On Wed, Oct 18, 2006 at 06:24:45PM +0300, Victor Forsyuk wrote: > > On Wed, Oct 18, 2006 at 06:40:29PM +0400, Dmitry V. Levin wrote: > > > > > > [...] > > > execve("/bin/sh", ["/bin/sh", "../scripts/Configure-os.h"], [..., "TMPDIR=\"/tmp\"", ... > > > [...] > > > open("\"/tmp\"/sh-thd.oBIvPb", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 ENOENT (No such file or directory) > > > ../scripts/Configure-os.h: line 41: cannot create temp file for here document: No such file or directory > > > > > > Почему /tmp оказался закавыченным? > > > > Строка > > > > TMPDIR="/tmp" > > > > всегда была в файле, который содержал определения использовавшихся при > > сборке макросов (src/EDITME --> Local/Makefile). > > > > Однако до последнего времени это не влияло на отработку here document. > > Может это раньше не проникало в environment запускавшегося скрипта, > > может поменялась обработка here document (bash?). > > У меня есть гипотеза, что синтаксис < stdio'шный tmpfile(3), который раньше использовал hardcoded /tmp, > а теперь стал смотреть в getenv("TMPDIR"). stdio'шный tmpfile(3) использует $TMPDIR начиная с glibc-core-2.2.6-alt0.11, см. glibc-*-alt-tmpfile.patch -- ldv