Opened 3 years ago

Closed 3 years ago

Last modified 5 months ago

#63603 closed defect (duplicate)

bison @3.8.2 does not build on PPC Leopard with GCC 4.2 because confdir-14B---: file name too long

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: leopard Cc: cooljeanius (Eric Gallager)
Port: bison

Description

checking Valgrind suppression file... 
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating src/yacc
config.status: creating javacomp.sh
config.status: creating javaexec.sh
config.status: creating gnulib-po/Makefile.in
config.status: creating runtime-po/Makefile.in
config.status: creating etc/bench.pl
config.status: creating tests/atlocal
config.status: creating tests/bison
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating doc/yacc.1
config.status: creating lib/config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating gnulib-po/POTFILES
config.status: creating gnulib-po/Makefile
config.status: creating runtime-po/POTFILES
config.status: creating runtime-po/Makefile
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing tests/atconfig commands
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: No space left on device
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---/confdir-14B---: Directory not empty
rm: confdir-14B---: Directory not empty
DEBUG: Executing portconfigure::configure_finish
Error: Failed to configure bison: /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8.2/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: file name too long
DEBUG: Error code: POSIX ENAMETOOLONG {file name too long}
DEBUG: Backtrace: /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8.2/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---: file name too long
    while executing
"fs-traverse -tails file [list ${workpath}] {
        if {[file tail $file] in [list config.log CMakeError.log meson-log.txt] && [file isfile [file joi..."
    (procedure "portconfigure::check_implicit_function_declarations" line 7)
    invoked from within
"portconfigure::check_implicit_function_declarations"
    (procedure "portconfigure::configure_finish" line 5)
    invoked from within
"$postrun $targetname"
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/main.log for details.
DEBUG: could not read "/opt/local/share/locale/zh_TW/LC_MESSAGES/bison-runtime.mo": no such file or directory
root 273 /\ l /opt/local/share/locale/zh_TW/LC_MESSAGES/bison-runtime.mo
-rw-r--r--  1 root  admin  1334  9 Okt 14:47 /opt/local/share/locale/zh_TW/LC_MESSAGES/bison-runtime.mo
root 275 /\ l /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8.2/
total 17208
-rw-r--r--  1 macports  admin        6 12 Sep 11:42 .prev-version
-rw-r--r--  1 macports  admin        6 25 Sep 11:10 .tarball-version
-rw-r--r--  1 macports  admin        6 25 Sep 10:44 .version
-rw-r--r--  1 macports  admin    93787 29 Okt  2019 ABOUT-NLS
drwxr-xr-x  2 macports  admin     1292 25 Sep 11:10 build-aux
-rw-r--r--  1 macports  admin     7092 25 Sep 08:02 cfg.mk
drwx------  3 macports  admin      102  9 Okt 14:52 confdir-14B---
-rw-r--r--  1 macports  admin  1258937  9 Okt 14:53 config.log
-rwxr-xr-x  1 macports  admin   106021  9 Okt 14:53 config.status
-rwxr-xr-x  1 macports  admin  1478710 25 Sep 10:44 configure
-rw-r--r--  1 macports  admin    12460 14 Sep 06:54 configure.ac
drwxr-xr-x  5 macports  admin      272 25 Sep 11:10 data
root 276 /\ find /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8.2/ -type d | wc -l
116
root 277 /\ find /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8.2/ -type f | wc -l
1659

See also: #28654: defect: gajim, #50567: defect: findutils 4.6.0, #58927: defect: findutils @4.7.0, #62994: defect: m4 @1.4.19, #63059: defect: m4 (closed: duplicate).

Attachments (6)

main.log (74.1 KB) - added by ballapete (Peter "Pete" Dyballa) 3 years ago.
Main.log from PPC Leopard
configure-PATH_MAX-bug.diff (242 bytes) - added by ballapete (Peter "Pete" Dyballa) 3 years ago.
Patch to prevent creation of the insane bison-3.8.2/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/… directorsy tree
configure-evaluate-PATH_MAX-bug.diff (190 bytes) - added by ballapete (Peter "Pete" Dyballa) 3 years ago.
Patch to see in more detail why the PATH_MAX bug actually happens
configure-evaluate-bug.diff (1.4 KB) - added by ballapete (Peter "Pete" Dyballa) 3 years ago.
Patch to determine how deep configure will go creating sub-directories
configure-evaluate-bug.diff-14 (2.0 KB) - added by ballapete (Peter "Pete" Dyballa) 3 years ago.
Patch to conftest with resulting 1024 characters path name length, saves the original conftest programme
configure-evaluate-bug.diff-15 (2.6 KB) - added by ballapete (Peter "Pete" Dyballa) 3 years ago.
Patch to conftest with resulting shorter path name length by chnaging the subdir name, saves the original conftest programme

Download all attachments as: .zip

Change History (32)

Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

Main.log from PPC Leopard

comment:1 Changed 3 years ago by jmroot (Joshua Root)

As mentioned in #62994, the issue is in some code that's included from gnulib, getcwd-abort-bug.m4.

comment:2 in reply to:  1 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Replying to jmroot:

As mentioned in #62994, the issue is in some code that's included from gnulib, getcwd-abort-bug.m4.

Using Ken's patch configure does not create the impressive directory tree bison-3.8.2/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/… and upgrades.

Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: configure-PATH_MAX-bug.diff added

Patch to prevent creation of the insane bison-3.8.2/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/… directorsy tree

comment:3 Changed 3 years ago by mascguy (Christopher Nielsen)

Owner: set to mascguy
Status: newassigned

comment:4 Changed 3 years ago by mascguy (Christopher Nielsen)

Hmmmm, Bison 3.8.2 builds fine for me on my PowerBook G4, for both 10.4.x and 10.5.x, using GCC 4.2.

And indeed, we spent plenty of time working with the Bison maintainer (Akim), on getting everything working. See issue:59927.

So before getting too far into the weeds, is there something unique about your setup, or...?

comment:5 in reply to:  4 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Replying to mascguy:

I have "patched" a few ports to not use Python 3.9…

comment:6 Changed 3 years ago by kencu (Ken)

this still-not-fully-understood problem has nothing to do with bison, so nothing the bison maintainer would have done would make the slightest bit difference. Nor the python.

and the fact that it built for you on your G4 is also not unexpected, as it is recognized to be an intermittent problem, not showing up on every system, as per #62994. But when it does show up on a given system, it seems to be there forever, and the only way past it is to patch.

some kind of race? perhaps. Never seen it on anything > Leopard. We may never really sort it out.

So Pete, patch yours, as you did, and move along. If enough people add a "me too" to this ticket, it will get patched, like I did m4.

comment:7 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Maybe it helps to put

set -x
set -v

into configure to see a bit more clearly why and when it happens. I used the second patch instead of the first one, but it will take a few until I can explore the output it generated.

Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Patch to see in more detail why the PATH_MAX bug actually happens

comment:8 in reply to:  6 Changed 3 years ago by mascguy (Christopher Nielsen)

Replying to kencu:

this still-not-fully-understood problem has nothing to do with bison, so nothing the bison maintainer would have done would make the slightest bit difference. Nor the python.

and the fact that it built for you on your G4 is also not unexpected, as it is recognized to be an intermittent problem, not showing up on every system, as per #62994. But when it does show up on a given system, it seems to be there forever, and the only way past it is to patch.

some kind of race? perhaps. Never seen it on anything > Leopard. We may never really sort it out.

Ah gotcha, didn't realize this is an intermittent issue.

If a permanent patch for the port makes sense, I'm happy to add it. Lemme know.

comment:9 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

The error actually happens quite late, when configure tries to remove its debris:

## confdefs.h. ##
## ----------- ##"
      echo
      cat confdefs.h
      echo
    fi
    test "$ac_signal" != 0 &&
      printf "%s\n" "$as_me: caught signal $ac_signal"
    printf "%s\n" "$as_me: exit $exit_status"
  } >&5
  rm -f core *.core core.conftest.* &&
    rm -f -r conftest* confdefs* $ac_clean_files conf$$* &&   <<== it's in $ac_clean_files
    exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0

On my system only one available rm binary exists, althought there exist /opt/local/bin/grm and hidden /opt/local/libexec/gnubin/rm. Why can I remove the directory tree with too long names? And why does port clean bison fail as well?

root 345 /\ port clean bison
--->  Cleaning bison
Error: error deleting "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8.2/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---/confdir-14B---": file name too long

comment:10 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

The purpose of the test is described this way:

/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
   the 16kB pagesize on ia64 linux.  Those conditions make the code below
   trigger a bug in glibc's getcwd implementation before 2.4.90-10.  */
#define TARGET_LEN (5 * 1024)

Tiger does not have this bug, maybe Leopard as well. So one way to get around this rm error is to remove the code that builds this directory tree. And just write

"#define HAVE_MINIMALLY_WORKING_GETCWD 1"
"#define HAVE_PARTLY_WORKING_GETCWD 1"
"#define HAVE_GETCWD_SHORTER 1"
"#define GNULIB_GETCWD 1"
"#define GNULIB_TEST_GETCWD 1"

into confdefs.h. We just need to be sure…

The C programme that creates the directory tree is:

    1	int
    2	main ()
    3	{
    4	  char *cwd;
    5	  size_t initial_cwd_len;
    6	  int fail = 0;
    7	
    8	  /* The bug is triggered when PATH_MAX < getpagesize (), so skip
    9	     this relatively expensive and invasive test if that's not true.  */
   10	#ifdef PATH_MAX
   11	  int bug_possible = PATH_MAX < getpagesize ();
   12	#else
   13	  int bug_possible = 0;
   14	#endif
   15	  if (! bug_possible)
   16	    return 0;
   17	
   18	  cwd = getcwd (NULL, 0);
   19	  if (cwd == NULL)
   20	    return 2;
   21	
   22	  initial_cwd_len = strlen (cwd);
   23	  free (cwd);
   24	
   25	  if (1)
   26	    {
   27	      static char const dir_name[] = "confdir-14B---";
   28	      size_t desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
   29	                              / sizeof dir_name);
   30	      size_t d;
   31	      for (d = 0; d < desired_depth; d++)
   32	        {
   33	          if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
   34	            {
   35	              if (! (errno == ERANGE || errno == ENAMETOOLONG
   36	                     || errno == ENOENT))
   37	                fail = 3; /* Unable to construct deep hierarchy.  */
   38	              break;
   39	            }
   40	        }
   41	
   42	      /* If libc has the bug in question, this invocation of getcwd
   43	         results in a failed assertion.  */
   44	      cwd = getcwd (NULL, 0);
   45	      if (cwd == NULL)
   46	        fail = 4; /* getcwd didn't assert, but it failed for a long name
   47	                     where the answer could have been learned.  */
   48	      free (cwd);
   49	
   50	      /* Call rmdir first, in case the above chdir failed.  */
   51	      rmdir (dir_name);
   52	      while (0 < d--)
   53	        {
   54	          if (chdir ("..") < 0)
   55	            {
   56	              fail = 5;
   57	              break;
   58	            }
   59	          rmdir (dir_name);
   60	        }
   61	    }
   62	
   63	  return fail;
   64	}

As far as I understand the code the programme changes directory to the one it has just created and then creates a new one, until the maximum path length is reached. Then it changes directory upwards and removes the directory it created before. This latter code, lins #50–60, seems to fail because the directory tree is left intact. Does this code need an upgrade?

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:11 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

The statement on lines #28 and #29 uses the values 5120 for TARGET_LEN, 154 for initial_cwd_len and 15 for (sizeof dir_name). The resulting desired_depth is 331. configure is able to create the "confdir-14B---" subdirectory and a depth of 58 "confdir-14B---" levels. If I make desired_depth to equal 57 then the directory hierarchy can be successfully removed and it is still found:

checking whether getcwd succeeds when 4k < cwd_length < 16k... yes

The resulting lib/config.h is still the same as before.

I determined desired_depth by outputting its value into a file from the conftest programme and also by couting the directories in "confdir-14B---". The patch file will be added.

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: configure-evaluate-bug.diff added

Patch to determine how deep configure will go creating sub-directories

comment:12 Changed 3 years ago by mascguy (Christopher Nielsen)

Hey Peter, let me know if you're at a point where you could use some help troubleshooting this.

It might be a challenge, given that I haven't (yet) experienced the behavior. But perhaps I can do more digging on my PowerBook G4, per the related ticket.

comment:13 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

I think the case is clear: rm behaves differently. Using it interactively it succeeds to delete recursively the deep directory hierarchy, running it from/in MacPorts it fails. One way to cure this failure is to limit the depth of the directory hierarchy to 57. The small test programme configure builds and runs to create the directory hierarchy is probably OK, what it tries seems to be sensible.

With more knowledge of MacPorts you might be able to find the cause why rm behaves so differently… (and why only on Leopard)

comment:14 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

I just saw that #comment:11 had some typos and corrected them. Supposedly the limit of the maximal length of a path name is the limit factor, probably around 1024, and it might happen that on the 58. level this value is already exceeded. Which makes rm fail in MacPorts. I think I'll augment configure's test programme a bit more this weekend…

comment:15 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

One clue I found today is that the path name given after the text "Error: Failed to configure bison:" in my initial report is exactly 1024 characters. In

/usr/include/sys/syslimits.h:91:#define PATH_MAX                 1024   /* max bytes in pathname */

PATH_MAX is #defined and then reused in

/usr/include/sys/param.h:198:#define    MAXPATHLEN      PATH_MAX

Finally we get:

/usr/include/stdio.h:216:#define        FILENAME_MAX    1024    /* must be <= PATH_MAX <sys/syslimits.h> */

This might explain why the test only sometimes fails – because the longest path name is either less than or exactly (<=) 1024 bytes. It can't be longer, because then it could not be created. The question why rm sometimes fails to remove the directory hierarchy could be explained by assuming that inside MacPorts the text string of 1024 characters is limited by a NEWLINE character and becomes this way one character too long and illegal.

In #comment:10 I inserted the C test programme that configure runs. It actually has a loop that removes the just created directory hierachy, lines #50–60. This code seems to fail first, so that configure sees the start of the directory hierarchy and therefore starts to delete it. And fails, too…

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:16 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

I could prove that the cleaning routine actually runs – but it does not delete. So I tried to use other functions, unlink() or system() and feeding it with UNIX commands like rmdir or rmdir -p or rm -rf. Adding perror() I saw in config.log always an initial error report à la:

«utility»: No space left on device 

and then reports about an Operation not permitted or a Directory not empty. My conclusion is that neither from C nor from MacPorts exactly 1024 characters long path names can be deleted. I proved that also by saving the conftest programme under a different name and then running it manually. It failed too…

comment:17 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

On Tiger the maximal path name length is the same. On Tiger I am using the same rsynch repository, so the path to the working directory should be the same. I have to check this, possibly next weekend (because I committed myself to debug make check in lighttpd).

comment:18 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

I started to make a new test. This time I changed the name of the test subdirectory from confdir-14B--- to confdir--14B---. In the original case I had "initial_cwd_len is 154, TARGET_LEN is 5120, dir_name has string length 15, desired_depth is 331." In the new test case I have "initial_cwd_len is 154, TARGET_LEN is 5120, dir_name has string length 16, desired_depth is 310." and "path name length is 1018" – no wonder, the port is built!

So I think this problems is almost solved (I am waiting for Tiger). On which GNU utilities bug email list should I discuss this with the developers?

If you want to repeat my succeess of repeated failures: use "rsync://nue.de.rsync.macports.org/macports/release/tarballs/ports.tar" as "[default]" in /opt/local/etc/macports/sources.conf.

comment:19 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

I am attaching my latest patches to the conftest programme to help me debug the case.

Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Patch to conftest with resulting 1024 characters path name length, saves the original conftest programme

Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Patch to conftest with resulting shorter path name length by chnaging the subdir name, saves the original conftest programme

comment:20 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

I can reproduce the problem on PPC Tiger, Mac OS X 10.4.11. It's just a bit worse: Here even rm cannot delete the directory tree!

Renaming /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8.2 to /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8 did not help, but when I mv'ed /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3.8 to /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_bison/bison/work/bison-3 I had success.

comment:21 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

The "bottom level" directory created last is

d????????? ? ? ? ?             ? confdir--14B---

The path name length of its parent directory is 1023 characters…

comment:22 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

My "splendid" patch for the conftest programme fails on Tiger. First I had to change in the fprintf() statement on line #401 the %lu for TARGET_LEN to %d, but still no writing to my file. Then I found when I run the conftest programme as a mortal user it creates a directory hierarchy of almost 300 levels, which is close to the desired depth when TARGET_LEN is 5120. To remove this tree it's necessary to move the directory at around the 50. level to some other name in the current working directory, say "a". And then work on the a tree the same to create b. And so on. Interestingly mv does not seem to be limited to a path name length of 1024 characters. This extremely deep tree can be removed by an rm -rf confdir-14B---/ [a-g]

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:23 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

On PPC Leopard I patched configure that confdir-14B--- became confdir-14B---X – and the new bison version built.

comment:24 Changed 3 years ago by kencu (Ken)

duplicate issue to #62994

same problem, different port, same logic, might as well not reinvent the wheel every time.

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:25 Changed 3 years ago by kencu (Ken)

Resolution: duplicate
Status: assignedclosed

comment:26 Changed 5 months ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added
Note: See TracTickets for help on using tickets.