Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configure shouldn't write source tree #13712

Closed
p5pRT opened this issue Apr 5, 2014 · 14 comments
Closed

Configure shouldn't write source tree #13712

p5pRT opened this issue Apr 5, 2014 · 14 comments

Comments

@p5pRT
Copy link

p5pRT commented Apr 5, 2014

Migrated from rt.perl.org#121585 (status was 'resolved')

Searchable as RT121585$

@p5pRT
Copy link
Author

p5pRT commented Apr 5, 2014

From afresh1@openbsd.org

Created by afresh1@openbsd.org

OpenBSD installs perl using an build directory, not directly in the source
tree. This provides the ability to share a single source tree among many build
machines and architectures.

This is a local patch we are using with perl 5.18.2, but it should be able to
be merged into perl directly.

The patch is against bleed.

Perl Info

Flags:
    category=install
    severity=medium

Site configuration information for perl 5.19.10:

Configured by root at Thu Jan  1  0:00:00 UTC 1970.

Summary of my perl5 (revision 5 version 19 subversion 10) configuration:
   
  Platform:
    osname=openbsd, osvers=5.5, archname=amd64-openbsd
    uname='openbsd'
    config_args='-Dusedevel -dsE -Dopenbsd_distribution=defined -Dccflags=-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -Dmksymlinks'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -fno-strict-aliasing -fno-delete-null-pointer-checks -pipe -fstack-protector -I/usr/local/include',
    optimize='-O2',
    cppflags='-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -fno-strict-aliasing -fno-delete-null-pointer-checks -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.2.1 20070719 ', gccosandvers='openbsd5.5'
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags ='-Wl,-E  -fstack-protector -L/usr/local/lib'
    libpth=/usr/lib /usr/lib /usr/local/lib
    libs=-lgdbm -lm -lutil -lc
    perllibs=-lm -lutil -lc
    libc=/usr/lib/libc.so.74.0, so=so, useshrplib=true, libperl=libperl.so.16.10
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-R/usr/libdata/perl5/amd64-openbsd/5.19.10/CORE'
    cccdlflags='-DPIC -fPIC ', lddlflags='-shared -fPIC  -L/usr/local/lib -fstack-protector'



@INC for perl 5.19.10:
    ./lib
    /usr/local/libdata/perl5/site_perl/amd64-openbsd
    /usr/libdata/perl5/site_perl/amd64-openbsd
    /usr/local/libdata/perl5/site_perl
    /usr/libdata/perl5/site_perl
    /usr/libdata/perl5/amd64-openbsd/5.19.10
    /usr/local/libdata/perl5/amd64-openbsd/5.19.10
    /usr/libdata/perl5
    /usr/local/libdata/perl5
    .


Environment for perl 5.19.10:
    HOME=/home/afresh1
    LANG (unset)
    LANGUAGE (unset)
    LC_CTYPE=en_US.UTF-8
    LD_LIBRARY_PATH=./
    LOGDIR (unset)
    PATH=/home/afresh1/bin:/home/afresh1/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games:/home/afresh1/.plenv/bin:.
    PERL5LIB=./lib
    PERL_BADLANG (unset)
    SHELL=/bin/ksh

@p5pRT
Copy link
Author

p5pRT commented Apr 5, 2014

From afresh1@openbsd.org

0001-Don-t-let-Configure-write-to-the-src-tree.patch
From 99ecece5ba3e330bc54ea4fb1ee3bc13ad66f2aa Mon Sep 17 00:00:00 2001
From: Andrew Fresh <afresh1@openbsd.org>
Date: Sat, 29 Mar 2014 15:33:33 -0700
Subject: [PATCH] Don't let Configure write to the src tree

In OpenBSD perl is built with a read-only source tree.  This was writing
temp files into that part of the tree.

This keeps the tempfiles in the writable obj directory.
---
 Configure | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/Configure b/Configure
index 15b3da1..7f22025 100755
--- a/Configure
+++ b/Configure
@@ -22384,8 +22384,8 @@ find_extensions='
 		Scalar/List/Utils) this_ext="List/Util"	;;
 		PathTools)         this_ext="Cwd"	;;
 	    esac;
-	    echo " $xs_extensions $nonxs_extensions" > $$.tmp;
-	    if $contains " $this_ext " $$.tmp; then
+	    echo " $xs_extensions $nonxs_extensions" > $tdir/$$.tmp;
+	    if $contains " $this_ext " $tdir/$$.tmp; then
 		echo >&4;
 		echo "Duplicate directories detected for extension $xxx" >&4;
 		echo "Configure cannot correctly recover from this - shall I abort?" >&4;
@@ -22403,15 +22403,15 @@ find_extensions='
 		esac;
 		echo "Ok.  You will need to correct config.sh before running make." >&4;
 	    fi;
-	    $ls -1 $xxx > $$.tmp;
-	    if   $contains "\.xs$" $$.tmp > /dev/null 2>&1; then
+	    $ls -1 $xxx > $tdir/$$.tmp;
+	    if   $contains "\.xs$" $tdir/$$.tmp > /dev/null 2>&1; then
 		xs_extensions="$xs_extensions $this_ext";
-	    elif $contains "\.c$"  $$.tmp > /dev/null 2>&1; then
+	    elif $contains "\.c$"  $tdir/$$.tmp > /dev/null 2>&1; then
 		xs_extensions="$xs_extensions $this_ext";
 	    elif $test -d $xxx; then
 		nonxs_extensions="$nonxs_extensions $this_ext";
 	    fi;
-	    $rm -f $$.tmp;
+	    $rm -f $tdir/$$.tmp;
 	    ;;
 	esac;
     done'
-- 
1.8.5.3

@p5pRT
Copy link
Author

p5pRT commented Apr 6, 2014

From @avar

On Sat, Apr 5, 2014 at 11​:45 PM, via RT <perlbug-followup@​perl.org> wrote​:

OpenBSD installs perl using an build directory, not directly in the source
tree. This provides the ability to share a single source tree among many build
machines and architectures.

This is a local patch we are using with perl 5.18.2, but it should be able to
be merged into perl directly.

The patch is against bleed.

How do you build against a read-only source tree? Are you using some
compiler options I'm not aware of to place the *.o files somewhere
else while they're generated?

Sure it seems that we should use the $tdir there, but I don't get how
this comes anywhere close to solving the problem of perl not building
with a read-only source tree. I built it just now with​:

  ./Configure .. && make -j 10 test_harness

While running this in another window, which only gives the *untracked*
files we create during the build (these should be fixed with
.gitignore)​:

  while true; do git status --porcelain | tee -a /tmp/dirty.txt; done

And after that I get​:

  $ sort /tmp/dirty.txt |uniq -c|sort -nr|wc -l
  450

I.e. 450 unique untracked dirty files (full list attached). A lot of
those seem like they would kill the build if you placed the source
directory on a read-only filesystem.

Or am I mistunderstanding what you're doing here?

@p5pRT
Copy link
Author

p5pRT commented Apr 6, 2014

From @avar

  1896 ?? dist/IO/io_utf8
  1248 ?? t/utf7171.pl
  579 ?? t/.perldb
  575 ?? t/db.out
  377 ?? cpan/ExtUtils-Constant/ext-27508/
  335 ?? cpan/ExtUtils-MakeMaker/t/rU4_crbssf/
  279 ?? regcharclass.h-new
  244 ?? cpan/Devel-PPPort/ppptmp/
  223 ?? .deptmp
  223 ?? .clist
  222 ?? .cout
  222 ?? .cerr
  149 ?? cpan/Memoize/TESTFILE
  135 ?? cpan/ExtUtils-MakeMaker/t/fq6dOngK6c/
  125 ?? lib/ExtTest.pm
  106 ?? cpan/ExtUtils-MakeMaker/t/3PNixnoryq/
  87 ?? t/s2pt8312.sed
  87 ?? t/s2pt8312.in
  87 ?? t/psed
  84 ?? t/s2pt8312.pl
  77 ?? pod/perlmodlib.pod-new
  77 ?? cpan/ExtUtils-MakeMaker/t/Y8SyMXVF5d/
  75 ?? dist/Tie-File/tf4625.txt
  72 ?? dist/ExtUtils-Install/t/nvE5cC6kMT/
  72 ?? cpan/ExtUtils-MakeMaker/t/HSY42vGO20/
  65 ?? dist/Storable/store
  63 ?? cpan/Test-Simple/exit_map_test
  54 ?? cpan/ExtUtils-MakeMaker/t/XS-Test/
  46 ?? dist/ExtUtils-Command/t/testfile.foo
  42 ?? _cflags.c
  37 ?? sv.o-cae62cf9
  35 ?? cpan/Time-HiRes/1484
  33 ?? cpan/Time-HiRes/tmp2035
  32 ?? cpan/ExtUtils-MakeMaker/t/Min-PerlVers/
  31 ?? ext/XS-APItest/APItest.o-ed5101b9
  30 ?? op.o-b3bf36eb
  29 ?? t/h2xst.h
  28 ?? cpan/ExtUtils-MakeMaker/t/crzUO3zWoi/
  27 ?? cpan/Archive-Tar/t/copy
  26 ?? cpan/DB_File/dbr30172
  25 ?? cpan/Pod-Simple/temp.pod
  25 ?? cpan/ExtUtils-MakeMaker/t/Multiple-Authors/
  25 ?? cpan/ExtUtils-MakeMaker/t/8mqdFNmAkt/
  23 ?? pp_ctl.o-57c2e521
  23 ?? opmini.o-12849a62
  23 ?? ext/re/re_comp.o-5c11a739
  22 ?? regcomp.o-97463455
  22 ?? cpan/ExtUtils-MakeMaker/t/i_58E2T1HI/
  21 ?? t/s2pt8312r.txt
  20 ?? cpan/ExtUtils-MakeMaker/t/kGdX3MGU4N/
  19 ?? toke.o-06a1c537
  19 ?? lib/unicore/xyzzy_alias.pl
  19 ?? cpan/DB_File/xyzt
  18 ?? pp.o-68df95a2
  17 ?? pp_sys.o-ee5f5b64
  17 ?? cpan/Unicode-Collate/Collate.o-644cbf92
  16 ?? cpan/DB_File/btree1
  15 ?? cpan/version/t__qyvzR.pm
  15 ?? cpan/Filter-Util-Call/MyTest.pm
  15 ?? cpan/Encode/JP/eu_01_t.o-ed8a5f5c
  14 ?? regexec.o-7dbeb533
  14 ?? pp_hot.o-fda6e685
  14 ?? mg.o-507265a8
  14 ?? ext/B/B.o-9ee61db1
  14 ?? cpan/Unicode-Normalize/Normalize.o-938fdcff
  14 ?? cpan/Filter-Util-Call/call.tst
  14 ?? cpan/Encode/TW/bi_01_t.o-56f20321
  14 ?? cpan/Encode/t/3022.sio
  14 ?? cpan/Encode/t/3022.pio
  13 ?? cpan/ExtUtils-MakeMaker/t/6El0Rfak3A/
  13 ?? cpan/DB_File/DB_File.o-a52d44b0
  13 ?? cpan/DB_File/btree2
  13 ?? cpan/Compress-Raw-Zlib/Zlib.o-86aeeef2
  12 ?? t/Oooof.pm
  12 ?? dist/Storable/Storable.o-d6fd845f
  12 ?? cpan/version/twEPDuNY.pm
  12 ?? cpan/Encode/TW/cp_02_t.o-e1d42128
  11 ?? t/embed_test.c
  11 ?? perl.o-1511f771
  11 ?? gv.o-0b26bdfe
  11 ?? ext/POSIX/POSIX.o-01efdf35
  11 ?? ext/B/xreftest.out
  11 ?? cpan/Filter-Util-Call/nested
  11 ?? cpan/Filter-Util-Call/MyTest5.pm
  11 ?? cpan/Filter-Util-Call/MyTest4.pm
  11 ?? cpan/Filter-Util-Call/MyTest3.pm
  11 ?? cpan/Filter-Util-Call/MyTest2.pm
  11 ?? cpan/Encode/Unicode/Unicode.o-f464f1e6
  11 ?? cpan/Encode/KR/jo_02_t.o-a2dfce48
  10 ?? x2p/UU/
  10 ?? x2p/.deptmp
  10 ?? x2p/.clist
  10 ?? pp_pack.o-46661d7d
  10 ?? ext/re/re_exec.o-36363990
  10 ?? cpan/Encode/TW/ma_03_t.o-236a9d6e
  10 ?? cpan/Encode/TW/bi_00_t.o-accf4330
  10 ?? cpan/Encode/KR/ma_04_t.o-147478c6
  10 ?? cpan/Encode/KR/cp_00_t.o-e9766b5c
  10 ?? cpan/DB_File/SubDB.pm
  10 ?? cpan/Archive-Tar/t/src/long/out.tbz
  9 ?? x2p/.cout
  9 ?? x2p/.cerr
  9 ?? utf8.o-a01d1309
  9 ?? dist/ExtUtils-Install/auto/
  9 ?? cpan/Encode/KR/ks_03_t.o-8ee98003
  9 ?? cpan/Encode/KR/eu_01_t.o-81dace17
  9 ?? cpan/DB_File/__db.tree
  8 ?? ext/PerlIO-encoding/encoding.o-8b98fa99
  8 ?? doio.o-3fa3e31f
  8 ?? dist/threads/threads.o-597ba8e7
  8 ?? dist/Devel-SelfStubber/xParent--1294
  8 ?? dist/Devel-SelfStubber/xChild--1294
  8 ?? dist/Devel-SelfStubber/SSI-1294/
  8 ?? dist/Devel-SelfStubber/C-1294
  8 ?? dist/Devel-SelfStubber/B-1294
  8 ?? dist/Devel-SelfStubber/A-1294
  8 ?? cpan/Filter-Util-Call/block.pm
  8 ?? cpan/DB_File/__db.xxy.db
  8 ?? cpan/Compress-Raw-Bzip2/Bzip2.o-fb9f4aa4
  7 ?? universal.o-323a63c1
  7 ?? t/s2pt8312w.txt
  7 ?? tmp18823B/
  7 ?? t/file-5902
  7 ?? scope.o-7259d097
  7 ?? perlio.o-1fe1e893
  7 ?? hv.o-ae81e971
  7 ?? dist/threads/tmp6189A
  7 ?? dist/Data-Dumper/Dumper.o-bf744496
  7 ?? cpan/version/tSdYETO5.pm
  7 ?? cpan/version/tAJl4uoQ.pm
  7 ?? cpan/ExtUtils-MakeMaker/t/FJY_xy0ygR/
  7 ?? cpan/Encode/JP/ji_03_t.o-364a061a
  7 ?? cpan/Encode/JP/cp_00_t.o-e7ca7b42
  7 ?? cpan/Encode/CN/gb_02_t.o-71e3aeea
  7 ?? cpan/Encode/CN/eu_01_t.o-49406285
  7 ?? cpan/Digest-SHA/SHA.o-90b0c7de
  7 ?? cpan/Devel-PPPort/RealPPPort.o-d67d5ec3
  7 ?? cpan/DB_File/tree
  6 ?? util.o-24772ead
  6 ?? t/utf7951
  6 ?? t/copy6-5902
  6 ?? t/copy3-5902
  6 ?? proto.h-new
  6 ?? pp_sort.o-3731bd7b
  6 ?? locale.o-63198c25
  6 ?? globals.o-119f52cd
  6 ?? ext/SDBM_File/SDBM_File.o-cb4c5e3a
  6 ?? ext/PerlIO-via/via.o-cf97ff9b
  6 ?? ext/Hash-Util/Util.o-7f9c5c44
  6 ?? dump.o-1f11f430
  6 ?? doop.o-8658c2f9
  6 ?? dist/Tie-File/tf4278.txt
  6 ?? dist/Storable/storable-testfile.4169
  6 ?? dist/ExtUtils-Install/t/BatEhme5VJ/
  6 ?? cpan/version/tm3PYEw5.pm
  6 ?? cpan/version/thiAAmWE.pm
  6 ?? cpan/MIME-Base64/Base64.o-2536c3bd
  6 ?? cpan/Encode/CN/cp_00_t.o-16f335d8
  6 ?? cpan/DB_File/xxy.db
  6 ?? cpan/Archive-Tar/t/src/long/out.tgz
  6 ?? av.o-f52c3391
  5 ?? t/copy2-5902
  5 ?? t/copy1-5902
  5 ?? t/Any_dbmx5323
  5 ?? perlmini.o-0ab73492
  5 ?? mro.o-cd965642
  5 ?? keywords.o-39ce1682
  5 ?? ext/XS-APItest/tmp5327A
  5 ?? ext/Opcode/Opcode.o-7b7670d3
  5 ?? ext/mro/mro.o-117efcd4
  5 ?? ext/DynaLoader/DynaLoader.o-88b4932b
  5 ?? ext/B/lib/
  5 ?? ext/arybase/arybase.o-ab2cbedb
  5 ?? dist/Tie-File/tf5542.txt
  5 ?? dist/Math-BigInt-FastCalc/FastCalc.o-12387a7e
  5 ?? dist/ExtUtils-Install/t/IgjrIaThfn/
  5 ?? dist/Devel-SelfStubber/SSO-1294/
  5 ?? cpan/Socket/Socket.o-c604bec0
  5 ?? cpan/Scalar-List-Utils/ListUtil.o-5bdf7a6f
  5 ?? cpan/ExtUtils-MakeMaker/t/dPaeQT1xiX/
  5 ?? cpan/ExtUtils-MakeMaker/t/CgQ_N8Yrv9/
  5 ?? cpan/Encode/JP/ma_05_t.o-9a710ea1
  5 ?? cpan/Encode/JP/ji_04_t.o-958c1bb8
  5 ?? cpan/Encode/CN/ma_05_t.o-30b24390
  5 ?? cpan/Encode/Byte/byte_t.o-dbde6c4f
  5 ?? cpan/Digest-MD5/MD5.o-327714c5
  5 ?? cpan/Devel-PPPort/module2.o-c3410967
  5 ?? cpan/DB_File/__db.btree2
  5 ?? cpan/DB_File/btree3
  5 ?? cpan/Archive-Tar/t/src/long/out.tar
  4 ?? t/__db.tmp13348B
  4 ?? t/__db.Any_dbmx5323
  4 ?? t/copy5-5902
  4 ?? t/copy4-5902
  4 ?? perly.o-a99ce0b0
  4 ?? perlmain.o-3c2d570b
  4 ?? mathoms.o-ecf70b5a
  4 ?? ext/XS-Typemap/Typemap.o-db08c52f
  4 ?? ext/XS-APItest/notcore.o-f610ca96
  4 ?? ext/File-Glob/Glob.o-1c78c059
  4 ?? ext/File-Find/for_find/
  4 ?? ext/Devel-Peek/tmp3772A
  4 ?? ext/Devel-Peek/Peek.o-d7185df8
  4 ?? ext/B/tmp8075B
  4 ?? dist/Tie-File/tf4396.txt
  4 ?? dist/Tie-File/tf3849.txt
  4 ?? dist/threads/tmp7430A
  4 ?? dist/threads-shared/shared.o-2d151b14
  4 ?? dist/Storable/integer.3492
  4 ?? dist/PathTools/Cwd.o-36f3dcc3
  4 ?? dist/IO/poll.o-6f439930
  4 ?? dist/IO/IO.o-f63fcc1a
  4 ?? dist/ExtUtils-ParseXS/t/XSTest.o-31eaadce
  4 ?? dist/ExtUtils-ParseXS/t/XSMore.o-34f9b2c7
  4 ?? cpan/version/tPAQGyd7.pm
  4 ?? cpan/version/tlrKJpsU.pm
  4 ?? cpan/Sys-Syslog/Syslog.o-ca54caf7
  4 ?? cpan/Pod-Parser/t/pod/Parser.OUT
  4 ?? cpan/Module-Metadata/MB-kpbpbfD4/
  4 ?? cpan/Filter-Util-Call/Call.o-265f9440
  4 ?? cpan/Filter-Util-Call/call.bin
  4 ?? cpan/ExtUtils-MakeMaker/t/Odd-Version/
  4 ?? cpan/Encode/TW/TW.o-05e68600
  4 ?? cpan/Encode/Symbol/Symbol.o-6dc9a79b
  4 ?? cpan/Encode/KR/KR.o-5a328393
  4 ?? cpan/Encode/JP/sh_06_t.o-7ab57d86
  4 ?? cpan/Encode/JP/JP.o-434de621
  4 ?? cpan/Encode/Encode.o-7da145a2
  4 ?? cpan/Encode/CN/CN.o-f12d8e3e
  4 ?? cpan/Devel-PPPort/module3.o-a9a2dda1
  4 ?? cpan/DB_File/__db.btree3
  4 ?? cpan/DB_File/__db.btree1
  3 ?? t/utf8
  3 ?? t/embed_test
  3 ?? t/__db.tmp13273B
  3 ?? t/b
  3 ?? t/a
  3 ?? run.o-a482ba55
  3 ?? reentr.o-9d1b1581
  3 ?? perlapi.o-cbc6d22f
  3 ?? pad.o-3dbb855f
  3 ?? opnames.h-new
  3 ?? opcode.h-new
  3 ?? numeric.o-aa09fc23
  3 ?? META.yml-new
  3 ?? ext/XS-APItest/XSUB-undef-XS_VERSION.o-a655fc51
  3 ?? ext/XS-APItest/core.o-dd96c88b
  3 ?? ext/Tie-Hash-NamedCapture/NamedCapture.o-92a9a438
  3 ?? ext/Sys-Hostname/Hostname.o-688be1ee
  3 ?? ext/PerlIO-mmap/mmap.o-ed937676
  3 ?? ext/I18N-Langinfo/Langinfo.o-f724aeb2
  3 ?? ext/Hash-Util-FieldHash/FieldHash.o-bd060391
  3 ?? ext/attributes/attributes.o-a238d6f2
  3 ?? dist/ExtUtils-ParseXS/t/XSUsage.o-b82ee715
  3 ?? dist/ExtUtils-CBuilder/compilet-gtKGG.cc
  3 ?? cpan/version/tTOXLg2Q.pm
  3 ?? cpan/Time-HiRes/HiRes.o-b607bbe7
  3 ?? cpan/Test-Harness/shell_7910.sh
  3 ?? cpan/Term-Cap/tcout
  3 ?? cpan/podlators/t/tmp934.pod
  3 ?? cpan/podlators/t/tmp696.pod
  3 ?? cpan/podlators/t/tmp1086.pod
  3 ?? cpan/Pod-Checker/t/pod/Checker.OUT
  3 ?? cpan/Memoize/__db.md5731
  3 ?? cpan/IPC-SysV/SysV.o-5be7fcad
  3 ?? cpan/ExtUtils-MakeMaker/t/yvTyOaLpDI
  3 ?? cpan/ExtUtils-MakeMaker/t/YBamLd80wr
  3 ?? cpan/ExtUtils-MakeMaker/t/wtFzwUNWtp
  3 ?? cpan/ExtUtils-MakeMaker/t/V8AHsPRxaH
  3 ?? cpan/ExtUtils-MakeMaker/t/TbWZye3rp9
  3 ?? cpan/ExtUtils-MakeMaker/t/QfR10pjKSl
  3 ?? cpan/ExtUtils-MakeMaker/t/NvEdfEWebI
  3 ?? cpan/ExtUtils-MakeMaker/t/jaX6q8Kgzi
  3 ?? cpan/ExtUtils-MakeMaker/t/bQK3Aj7WHR
  3 ?? cpan/ExtUtils-MakeMaker/t/9PKRJh3ntS
  3 ?? cpan/ExtUtils-MakeMaker/t/1Cea54xSJE
  3 ?? cpan/Encode/EBCDIC/EBCDIC.o-c8d13d74
  3 ?? cpan/Encode/CN/ir_04_t.o-6973cfd4
  3 ?? cpan/Encode/CN/gb_03_t.o-ea9847a2
  3 ?? cpan/Archive-Tar/t/directory/
  3 ?? cpan/Archive-Tar/t/bIn2
  3 ?? charclass_invlists.h-new
  3 ?? caretx.o-72b82787
  2 ?? t/Op_dbmx.pag
  2 ?? t/Op_dbmx.dir
  2 ?? t/h2xst/
  2 ?? t/file.bak
  2 ?? t/file
  2 ?? t/echo16350
  2 ?? t/DBM_Filter/
  2 ?? taint.o-570b5665
  2 ?? generate_uudmap.o-69524aa1
  2 ?? ext/XS-APItest/XSUB-redefined-macros.o-d6673987
  2 ?? ext/XS-APItest/tmp5046A
  2 ?? ext/XS-APItest/tmp16990A
  2 ?? ext/XS-APItest/exception.o-6b04dc7b
  2 ?? ext/re/re.o-7c4e72e8
  2 ?? ext/Pod-Html/4962.pod
  2 ?? ext/Pod-Html/4962.o1
  2 ?? ext/Pod-Html/4962.o0
  2 ?? ext/Pod-Html/4962.in
  2 ?? ext/PerlIO-scalar/scalar.o-15ef20dd
  2 ?? ext/File-Glob/bsd_glob.o-7f8d0a37
  2 ?? ext/Fcntl/Fcntl.o-ccabaa87
  2 ?? ext/Devel-Peek/peek3772
  2 ?? embed.h-new
  2 ?? dist/Tie-File/tf4249.txt
  2 ?? dist/PathTools/rel2abs2rel2852.pl
  2 ?? deb.o-93b22efd
  2 ?? cpan/version/tUfjQRDf.pm
  2 ?? cpan/version/t034pL1u.pm
  2 ?? cpan/Time-Piece/Piece.o-85f4c72c
  2 ?? cpan/Pod-Simple/t/delme-6317b-out/
  2 ?? cpan/Pod-Simple/t/32485.pod
  2 ?? cpan/Pod-Simple/t/32461.pod
  2 ?? cpan/Pod-Simple/t/32461.in
  2 ?? cpan/Pod-Parser/t/pod/ParseUtils.OUT
  2 ?? cpan/Pod-Parser/t/pod/InputObjects.OUT
  2 ?? cpan/Pod-Parser/t/pod/Find.OUT
  2 ?? cpan/Filter-Util-Call/MyTest6.pm
  2 ?? cpan/Filter-Util-Call/call2.tst
  2 ?? cpan/ExtUtils-MakeMaker/t/Zy7NLyO7yG
  2 ?? cpan/ExtUtils-MakeMaker/t/ZBWcUI2tmy
  2 ?? cpan/ExtUtils-MakeMaker/t/xZ2HrvnBcp
  2 ?? cpan/ExtUtils-MakeMaker/t/xbtEWKFoRA
  2 ?? cpan/ExtUtils-MakeMaker/t/wN6Iw8ltFI
  2 ?? cpan/ExtUtils-MakeMaker/t/vT6XdJiwtj
  2 ?? cpan/ExtUtils-MakeMaker/t/QkN2DFHXkq
  2 ?? cpan/ExtUtils-MakeMaker/t/IVH84Ob21b
  2 ?? cpan/ExtUtils-MakeMaker/t/Dt8HLGyP8u
  2 ?? cpan/ExtUtils-MakeMaker/t/DHFLBghVod
  2 ?? cpan/ExtUtils-MakeMaker/t/d6EtddPXRB
  2 ?? cpan/ExtUtils-MakeMaker/t/9rLP5MudJ9
  2 ?? cpan/Encode/encengine.o-904f9c1b
  2 ?? cpan/Encode/Byte/Byte.o-61d0e78e
  2 ?? cpan/DB_File/version.o-2d72387e
  2 ?? cpan/DB_File/fruit
  2 ?? cpan/Compress-Raw-Zlib/inflate.o-24e55556
  2 ?? cpan/Compress-Raw-Bzip2/decompress.o-384057d9
  2 ?? cpan/B-Debug/tmp.pl
  2 ?? cpan/Archive-Tar/t/bIn4
  2 ?? cpan/Archive-Tar/t/bIn3
  2 ?? cpan/Archive-Tar/t/bIn1
  2 ?? _cflags
  1 ?? x2p/makefile.new
  1 ?? t/utf8079
  1 ?? t/txt8079
  1 ?? t/thrext163667244/
  1 ?? t/Io_argv2.tmp_bak
  1 ?? t/Io_argv1.tmp_bak
  1 ?? t/fail8101
  1 ?? t/copy-5902
  1 ?? t/bin8079
  1 ?? stGrr9Aj
  1 ?? regnodes.h-new
  1 ?? reentr.h-new
  1 ?? pod/perlapi.pod-new
  1 ?? overload.h-new
  1 ?? overload.c-new
  1 ?? META.json-new
  1 M cpan/DB_File/DB_File.pm
  1 ?? makefile.new
  1 ?? lib/warnings.pm-new
  1 ?? lib/feature.pm-new
  1 ?? feature.h-new
  1 ?? ext/SDBM_File/sdbm/sdbm.o-30451967
  1 ?? ext/SDBM_File/sdbm/pair.o-2ac26b98
  1 ?? ext/SDBM_File/Op_dbmx.pag
  1 ?? ext/SDBM_File/Op_dbmx.dir
  1 ?? ext/Pod-Html/t/htmllink.html
  1 ?? ext/Pod-Html/cacheout.html
  1 ?? ext/IPC-Open3/tmp4347A
  1 ?? ext/File-DosGlob/DosGlob.o-850b8868
  1 ?? dist/Tie-File/t/tf5843.txt
  1 ?? dist/Tie-File/tf5714.txt
  1 ?? dist/Tie-File/tf5665.txt
  1 ?? dist/Tie-File/tf4078.txt
  1 ?? dist/Tie-File/tf3941.txt
  1 ?? dist/Tie-File/tf3505.txt
  1 ?? dist/Tie-File/tf3431.txt
  1 ?? dist/Tie-File/tf3337.txt
  1 ?? dist/Tie-File/tf3221.txt
  1 ?? dist/SelfLoader/self-2981/
  1 ?? dist/IO/Io.dup
  1 ?? dist/ExtUtils-ParseXS/t/compilet-rJVJY.o-49ddc6aa
  1 ?? dist/ExtUtils-Manifest/t/mantest/
  1 ?? dist/ExtUtils-Command/t/newfile
  1 ?? dist/ExtUtils-Command/t/d2utest/
  1 ?? dist/ExtUtils-CBuilder/t/linkt
  1 ?? dist/ExtUtils-CBuilder/t/cplust.o-87c27a28
  1 ?? dist/ExtUtils-CBuilder/t/cplust.cc
  1 ?? dist/ExtUtils-CBuilder/compilet-J5LnU.cc
  1 ?? cpan/version/tZoTYe1r.pm
  1 ?? cpan/version/trD4TvTN.pm
  1 ?? cpan/version/tqXK9nqk.pm
  1 ?? cpan/version/tHiCb2Tt.pm
  1 ?? cpan/version/tg6o51L7.pm
  1 ?? cpan/version/tfZgPXmk.pm
  1 ?? cpan/version/tbZYz2_L.pm
  1 ?? cpan/version/tblI1yxQ.pm
  1 ?? cpan/version/tACITpEZ.pm
  1 ?? cpan/version/t02360JI.pm
  1 ?? cpan/Test-Harness/581-1396818077-0002
  1 ?? cpan/Test-Harness/581-1396818077-0001
  1 ?? cpan/Pod-Simple/t/corpus/koi8r.xml_out
  1 ?? cpan/Pod-Simple/t/corpus/2202jpx.xml_out
  1 ?? cpan/Pod-Parser/t/pod/Select.OUT
  1 ?? cpan/Pod-Parser/t/pod/podselect.OUT
  1 ?? cpan/Pod-Parser/t/pod/PlainText.OUT
  1 ?? cpan/Pod-Parser/t/pod/oneline_cmds.OUT
  1 ?? cpan/Pod-Parser/t/pod/multiline_items.OUT
  1 ?? cpan/Pod-Parser/t/pod/headings.OUT
  1 ?? cpan/podlators/t/tmp.pod
  1 ?? cpan/podlators/t/tmp909.pod
  1 ?? cpan/podlators/t/tmp819.pod
  1 ?? cpan/podlators/t/tmp1262.pod
  1 ?? cpan/podlators/t/out819.err
  1 ?? cpan/Pod-Checker/t/pod/poderrs.OUT
  1 ?? cpan/Memoize/md5731
  1 ?? cpan/File-Temp/tmpCyTD4
  1 ?? cpan/File-Temp/tmp3FKKg
  1 ?? cpan/File-Path/test-5341c077-6cc0-9460/
  1 ?? cpan/ExtUtils-MakeMaker/t/Z3NqZaCfbZ
  1 ?? cpan/ExtUtils-MakeMaker/t/opFB9PKbC_
  1 ?? cpan/ExtUtils-MakeMaker/t/Of295bbBP1
  1 ?? cpan/ExtUtils-MakeMaker/t/iNjx2z4WOp
  1 ?? cpan/ExtUtils-MakeMaker/t/fgU_eEwfWA
  1 ?? cpan/ExtUtils-MakeMaker/t/bxXn7HALuZ
  1 ?? cpan/ExtUtils-MakeMaker/t/a3OaCyjhoY
  1 ?? cpan/ExtUtils-MakeMaker/t/9FgS7drqGs/
  1 ?? cpan/ExtUtils-MakeMaker/t/1R0gBpNOsV
  1 ?? cpan/Encode/t/.UTF-32LE_35_3022
  1 ?? cpan/Encode/t/30815.utf
  1 ?? cpan/Encode/Symbol/symbol_t.o-9b7c249e
  1 ?? cpan/Encode/EBCDIC/ebcdic_t.o-6fec5cb8
  1 ?? cpan/DB_File/__db.xyz
  1 ?? cpan/DB_File/__db.fruit
  1 ?? cpan/Compress-Raw-Zlib/zutil.o-fd35e089
  1 ?? cpan/Compress-Raw-Zlib/trees.o-f9aaacba
  1 ?? cpan/Compress-Raw-Zlib/inffast.o-43bc1347
  1 ?? cpan/Compress-Raw-Zlib/deflate.o-66b7b2e9
  1 ?? cpan/Compress-Raw-Zlib/compress.o-d60ac87e
  1 ?? cpan/Compress-Raw-Bzip2/randtable.o-280b8455
  1 ?? cpan/Compress-Raw-Bzip2/compress.o-14038deb
  1 ?? cpan/Compress-Raw-Bzip2/bzlib.o-0c28a29c
  1 ?? cpan/Archive-Tar/t/x/
  1 ?? cpan/Archive-Tar/t/tmp-symlink.tar.gz
  1 ?? cpan/Archive-Tar/t/tmp/
  1 ?? cpan/Archive-Tar/t/src/long/27464
  1 ?? cpan/Archive-Tar/t/bIn11

@p5pRT
Copy link
Author

p5pRT commented Apr 6, 2014

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Apr 7, 2014

From andrew@afresh1.com

On Sun, Apr 06, 2014 at 02​:08​:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote​:

How do you build against a read-only source tree? Are you using some
compiler options I'm not aware of to place the *.o files somewhere
else while they're generated?

The general idea is that we create an "obj" directory, symlink the files
from the source tree into it and build in the ${.OJBDIR}. $tdir is then
${.OBJDIR} but when searching for modules it ends up looking in the true
source tree.

See Makefile.bsdwrapper
http​://www.openbsd.org/cgi-bin/cvsweb/src/gnu/usr.bin/perl/Makefile.bsd-wrapper?rev=1.94

which ends up including the relevant target from bsd.obj.mk
http​://www.openbsd.org/cgi-bin/cvsweb/src/share/mk/bsd.obj.mk?rev=1.14

You might be interested in trying it out, but this is unlikely to work
anywhere but OpenBSD.
https://github.com/afresh1/OpenBSD-perl

While we could likely change Configure to look in $tdir/{cpan,dist,ext}
instead of $rsrc, which would have a similar effect, elsewhere in
Configure using $tdir appeared to be to preferred solution.

l8rZ,
--
andrew - http​://afresh1.com

What are the unsurpassable real world weaknesses in OpenBSD,
  that you know of?
  -- Kevin Chadwick <ma1l1ists@​yahoo.co.uk>
Lots of fake people attacking the project on the mailing lists makes
  them a poor resource for users.
  -- Theo de Raadt <deraadt@​cvs.openbsd.org>

@p5pRT
Copy link
Author

p5pRT commented Apr 7, 2014

From afresh1@openbsd.org

On Sun, Apr 06, 2014 at 02​:08​:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote​:

How do you build against a read-only source tree? Are you using some
compiler options I'm not aware of to place the *.o files somewhere
else while they're generated?

The general idea is that we create an "obj" directory, symlink the files
from the source tree into it and build in the ${.OJBDIR}. $tdir is then
${.OBJDIR} but when searching for modules it ends up looking in the true
source tree.

See Makefile.bsdwrapper
http​://www.openbsd.org/cgi-bin/cvsweb/src/gnu/usr.bin/perl/Makefile.bsd-wrapper?rev=1.94

which ends up including the relevant target from bsd.obj.mk
http​://www.openbsd.org/cgi-bin/cvsweb/src/share/mk/bsd.obj.mk?rev=1.14

You might be interested in trying it out, but this is unlikely to work
anywhere but OpenBSD.
https://github.com/afresh1/OpenBSD-perl

While we could likely change Configure to look in $tdir/{cpan,dist,ext}
instead of $rsrc, which would have a similar effect, elsewhere in
Configure using $tdir appeared to be to preferred solution.

l8rZ,
--
andrew - http​://afresh1.com

The power!!!! The nightmares!!!! The strange medication!!!!!!!!

@p5pRT
Copy link
Author

p5pRT commented Apr 7, 2014

From afresh1@openbsd.org

On Sun, Apr 06, 2014 at 02​:08​:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote​:

How do you build against a read-only source tree? Are you using some
compiler options I'm not aware of to place the *.o files somewhere
else while they're generated?

The general idea is that we create an "obj" directory, symlink the files
from the source tree into it and build in the ${.OJBDIR}. $tdir is then
${.OBJDIR} but when searching for modules it ends up looking in the true
source tree.

See Makefile.bsdwrapper
http​://www.openbsd.org/cgi-bin/cvsweb/src/gnu/usr.bin/perl/Makefile.bsd-wrapper?rev=1.94

which ends up including the relevant target from bsd.obj.mk
http​://www.openbsd.org/cgi-bin/cvsweb/src/share/mk/bsd.obj.mk?rev=1.14

You might be interested in trying it out, but this is unlikely to work
anywhere but OpenBSD.
https://github.com/afresh1/OpenBSD-perl

While we could likely change Configure to look in $tdir/{cpan,dist,ext}
instead of $rsrc, which would have a similar effect, elsewhere in
Configure using $tdir appeared to be to preferred solution.

l8rZ,
--
andrew - http​://afresh1.com

What are the unsurpassable real world weaknesses in OpenBSD,
  that you know of?
  -- Kevin Chadwick <ma1l1ists@​yahoo.co.uk>
Lots of fake people attacking the project on the mailing lists makes
  them a poor resource for users.
  -- Theo de Raadt <deraadt@​cvs.openbsd.org>

@p5pRT
Copy link
Author

p5pRT commented Apr 7, 2014

From @doughera88

On Sun, Apr 06, 2014 at 08​:52​:35PM -0700, Andrew Fresh wrote​:

On Sun, Apr 06, 2014 at 02​:08​:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote​:

How do you build against a read-only source tree? Are you using some
compiler options I'm not aware of to place the *.o files somewhere
else while they're generated?

The general idea is that we create an "obj" directory, symlink the files
from the source tree into it and build in the ${.OJBDIR}. $tdir is then
${.OBJDIR} but when searching for modules it ends up looking in the true
source tree.

Good catch. I build all the time using Configure -Dmksymlinks, which
does the same thing for you, and yes, Configure still goes back and
writes in the source tree. It shouldn't.

Though I haven't tested it myself, your patch looks good.

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Apr 7, 2014

From @Tux

On Mon, 7 Apr 2014 07​:17​:24 -0400, Andy Dougherty
<doughera@​lafayette.edu> wrote​:

On Sun, Apr 06, 2014 at 08​:52​:35PM -0700, Andrew Fresh wrote​:

On Sun, Apr 06, 2014 at 02​:08​:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote​:

How do you build against a read-only source tree? Are you using some
compiler options I'm not aware of to place the *.o files somewhere
else while they're generated?

The general idea is that we create an "obj" directory, symlink the files
from the source tree into it and build in the ${.OJBDIR}. $tdir is then
${.OBJDIR} but when searching for modules it ends up looking in the true
source tree.

Good catch. I build all the time using Configure -Dmksymlinks, which
does the same thing for you, and yes, Configure still goes back and
writes in the source tree. It shouldn't.

Though I haven't tested it myself, your patch looks good.

I agree, but I think it is beyond code-freeze and will have to wait for
5.21.0

--
H.Merijn Brand http​://tux.nl Perl Monger http​://amsterdam.pm.org/
using perl5.00307 .. 5.19 porting perl5 on HP-UX, AIX, and openSUSE
http​://mirrors.develooper.com/hpux/ http​://www.test-smoke.org/
http​://qa.perl.org http​://www.goldmark.org/jeff/stupid-disclaimers/

@p5pRT
Copy link
Author

p5pRT commented Jun 11, 2014

From andrew@afresh1.com

What's the proper way to bump this ticket now that 5.21 is available to
accept patches?

On Mon, Apr 07, 2014 at 01​:27​:32PM +0200, H.Merijn Brand wrote​:

On Mon, 7 Apr 2014 07​:17​:24 -0400, Andy Dougherty
<doughera@​lafayette.edu> wrote​:

On Sun, Apr 06, 2014 at 08​:52​:35PM -0700, Andrew Fresh wrote​:

On Sun, Apr 06, 2014 at 02​:08​:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote​:

How do you build against a read-only source tree? Are you using some
compiler options I'm not aware of to place the *.o files somewhere
else while they're generated?

The general idea is that we create an "obj" directory, symlink the files
from the source tree into it and build in the ${.OJBDIR}. $tdir is then
${.OBJDIR} but when searching for modules it ends up looking in the true
source tree.

Good catch. I build all the time using Configure -Dmksymlinks, which
does the same thing for you, and yes, Configure still goes back and
writes in the source tree. It shouldn't.

Though I haven't tested it myself, your patch looks good.

I agree, but I think it is beyond code-freeze and will have to wait for
5.21.0

--
andrew - http​://afresh1.com

People who invent random theories which only defend the vendor must have
been beaten as children. Beaten with sticks.
At least, that's my theory.
  -- Theo De Raadt

@p5pRT
Copy link
Author

p5pRT commented Jun 11, 2014

From @Tux

On Tue, 10 Jun 2014 22​:47​:34 -0700, Andrew Fresh <andrew@​afresh1.com>
wrote​:

What's the proper way to bump this ticket now that 5.21 is available to
accept patches?

Replying like this is :)

Committed in d611994

On Mon, Apr 07, 2014 at 01​:27​:32PM +0200, H.Merijn Brand wrote​:

On Mon, 7 Apr 2014 07​:17​:24 -0400, Andy Dougherty
<doughera@​lafayette.edu> wrote​:

On Sun, Apr 06, 2014 at 08​:52​:35PM -0700, Andrew Fresh wrote​:

On Sun, Apr 06, 2014 at 02​:08​:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote​:

How do you build against a read-only source tree? Are you using some
compiler options I'm not aware of to place the *.o files somewhere
else while they're generated?

The general idea is that we create an "obj" directory, symlink the files
from the source tree into it and build in the ${.OJBDIR}. $tdir is then
${.OBJDIR} but when searching for modules it ends up looking in the true
source tree.

Good catch. I build all the time using Configure -Dmksymlinks, which
does the same thing for you, and yes, Configure still goes back and
writes in the source tree. It shouldn't.

Though I haven't tested it myself, your patch looks good.

I agree, but I think it is beyond code-freeze and will have to wait for
5.21.0

--
H.Merijn Brand http​://tux.nl Perl Monger http​://amsterdam.pm.org/
using perl5.00307 .. 5.19 porting perl5 on HP-UX, AIX, and openSUSE
http​://mirrors.develooper.com/hpux/ http​://www.test-smoke.org/
http​://qa.perl.org http​://www.goldmark.org/jeff/stupid-disclaimers/

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2014

From @tonycoz

On Wed Jun 11 00​:46​:55 2014, hmbrand wrote​:

On Tue, 10 Jun 2014 22​:47​:34 -0700, Andrew Fresh <andrew@​afresh1.com>
wrote​:

What's the proper way to bump this ticket now that 5.21 is available
to
accept patches?

Replying like this is :)

Committed in d611994

So closing the ticket.

Tony

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2014

@tonycoz - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant