Philip Martin <philip.mar...@wandisco.com> writes: > I don't know what the new script is doing differently from the old > script. They both generate a whitespace separated list of libraries. > The new script should have a more accurate list.
With some help from Stefan. The new script produces: LD_PRELOAD="" export LD_PRELOAD and OpenBSD doesn't handle the empty list. The list is empty because OpenBSD doesn't have .so files so the -f test removes all the libraries. It appears to have .so.0.0 files. It turns out that the old script was also broken on OpenBSD. It produced: LD_PRELOAD=""# export LD_PRELOAD# The svn program cannot be directly executed until all the libtool The # prevents the export line working which means the empty LD_PRELOAD is not exported. Here's a patch: * build/generator/gen_make.py (write_transform_libtool_scripts): Look for .so.0 and .so.0.0, don't write LD_PRELOAD lines if empty. Index: build/generator/gen_make.py =================================================================== --- build/generator/gen_make.py (revision 1050098) +++ build/generator/gen_make.py (working copy) @@ -493,24 +493,34 @@ case $LIB in *libsvn_test-*) continue ;; esac - if [ -f $LIB ]; then - if [ -z "$EXISTINGLIBS" ]; then - EXISTINGLIBS="$LIB" - else - EXISTINGLIBS="$EXISTINGLIBS $LIB" - fi + if [ ! -f $LIB ]; then + LIB=${LIB}.0 + if [ ! -f $LIB ]; then + LIB=${LIB}.0 + if [ ! -f $LIB ]; then + continue + fi + fi fi + + if [ -z "$EXISTINGLIBS" ]; then + EXISTINGLIBS="$LIB" + else + EXISTINGLIBS="$EXISTINGLIBS $LIB" + fi done - cat "$SCRIPT" | - ( - read LINE - echo "$LINE" - echo "LD_PRELOAD=\\"$EXISTINGLIBS\\"" - echo "export LD_PRELOAD" - cat - ) < "$SCRIPT" > "$SCRIPT.new" - mv -f "$SCRIPT.new" "$SCRIPT" - chmod +x "$SCRIPT" + if [ ! -z "$EXISTINGLIBS" ]; then + cat "$SCRIPT" | + ( + read LINE + echo "$LINE" + echo "LD_PRELOAD=\\"$EXISTINGLIBS\\"" + echo "export LD_PRELOAD" + cat + ) < "$SCRIPT" > "$SCRIPT.new" + mv -f "$SCRIPT.new" "$SCRIPT" + chmod +x "$SCRIPT" + fi fi fi } -- Philip