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: tweak config.sh for easier noise-free checksum #15411

Open
p5pRT opened this issue Jun 25, 2016 · 7 comments
Open

Configure: tweak config.sh for easier noise-free checksum #15411

p5pRT opened this issue Jun 25, 2016 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Jun 25, 2016

Migrated from rt.perl.org#128484 (status was 'open')

Searchable as RT128484$

@p5pRT
Copy link
Author

p5pRT commented Jun 25, 2016

From @jimc

Created by @jimc

The header info in config.sh currently has a number of fields whose
values are unconstrained and essentially random​: ($cf_time, $cf_by,
$cf_email, $myuname).

# Package name : perl5
# Source directory : .
# Configuration time​: Fri Aug 28 21​:09​:08 MDT 2015
# Configured by : jimc
# Target system : linux groucho.jimc.earth
4.2.0-rc7-x2a-00125-gd0b89bd #278 smp sat a
ug 22 13​:35​:17 mdt 2015 x86_64 x86_64 x86_64 gnulinux

The presence of these cf_* fields means that `md5sum config.sh` output
is all noise; otherwize identical builds done at different times by
different users will have different checksums.

So this patch tweaks Configure (or rather 2 configure units - only 1
is needed, git add -i the desired chunk) to mark those problematic
lines with a leading '#​:', making them easy to exclude from a
grep|cksum calculation.

  cfx_md5=`grep -v '^#​:' config.sh | grep -vE '^cf_|^my' | md5sum`
  echo cfx_md5=\'$cf_md5\' >> config.sh

So this is a small step towards adding -k<checksum> into the perl
executable's name, and into its @​INC paths.

NOTES​:

1- tested by tweaking Configure, appending to config.sh, building, and
  verifying `./perl -Ilib -V​:cfx_md5​:`. Patched blindly into
  metaconfig units.

2- no >> config.sh actually done here, there might be a better way..

3- cfx_md5 could have a better name (subject to bikeshedding),
  md5 says nothing about what is included in the calculation.

4- multiple cfx_*, each with different subsets of `cat config.sh`,
  could define different "equivalent configs".

  For example​:
  cfx_cfargs=`grep config_args config.sh | md5sum`
  echo cfx_cfargs=\'$cfx_cfargs\' >> config.sh

  cfx_cfargs would neatly map the ~16 Test-Smoke configs to a small
  set of unique and eventually recognizable [0-9a-f]{3,5} key-fragments.

  cfx_md5 as given above would define comparable builds;
  Porting/bench.pl performance results from 2 platforms with
  identical keys should have similar results

Perl Info

Flags:
    category=core
    severity=low

Site configuration information for perl 5.25.3:

Configured by jimc at Sat Jun 25 06:51:35 MDT 2016.

Summary of my perl5 (revision 5 version 25 subversion 3) configuration:
  Local Commit: 34091a802e8ba014b1260cb5a216c48e0282fa6f
  Ancestor: 3957d52baeb5e1bbf9b604a39b98e29377008675
  Platform:
    osname=linux
    osvers=4.5.6-300.fc24.x86_64
    archname=x86_64-linux
    uname='linux buffy.jimc.earth 4.5.6-300.fc24.x86_64 #1 smp wed jun 1
21:29:58 utc 2016 x86_64 x86_64 x86_64 gnulinux '
    config_args='-des -DDEBUGGING -Dusedevel -Accflags=-DPERL_MEM_LOG
-DPERL_TRACE_OPS'
    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 ='-DPERL_MEM_LOG -DPERL_TRACE_OPS -fwrapv -DDEBUGGING
-fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    optimize='-O2 -g'
    cppflags='-DPERL_MEM_LOG -DPERL_TRACE_OPS -fwrapv -DDEBUGGING
-fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='6.1.1 20160510 (Red Hat 6.1.1-2)'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib
/lib64 /usr/lib64 /usr/local/lib64
    libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
-lgdbm_compat
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.23.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.23'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'

Locally applied patches:
    28d629a333f9b5b1738a039d5ef374e8d421a7ba
    e10f6b3035d45d63fc33a4eef641e00ca2bfcb6c
    8183f687f7e1ac150cfb496abcff1ebac408f74f
    d7d0a5d8b47d76075f6bea5717522c1f71b679f6
    198496757f565fc7f3a0b7981477e98d66d70c40
    4368ade6e8b90e883c9c9a6d3c3484da376607a6
    76975f247d006023d00bf7bc7f10030121b7b71c
    e40834e7ab0fcda3bbb89885880512dc96ca4c9a
    31b19988e6480269b055fedaa6bd747cdf16ac19
    19d6c3854e96d89bf4dc2d874df433beac27ee8b
    5068f264e5db925e43c1b4fab9c9c9a44f9a1926
    b8b41556fb743ff3f5496bab15508b79d5ab0d44
    ab462c7d2da3570ffe26e717642be96cccef8b23
    9a10913bc567c79302e241ca82c99909c5cb022a
    319b236e2ed58e5be687a549dd0b94342cacd751
    a95b3d6ada665e29ff33e3063306726e5ec40338
    8c13e94604b1db7743f11c459b95a61238963cc8
    2163b7036ce4c8832734a6bfb49ce6e7ca0f3ec0
    2640dfa870d6d1305073f61c00880c56ba4f4286
    7e69463d5ba4e34c2ea10a5c117a1777435209ec
    de1003b4553058df412757f35324ef710bc68a2e
    f3dd6bae442aa75eaf92234b8ea09650844284fa
    8a035c8d97c1b9c6dece478aed82f335afca0433
    730ddfe84dc700d146653b462354bb0979bb825a
    ee59ac1770a707c4a0b8cbd4165f107558a1b6ec
    b011e696e18f21d188fce6cce32c17498241fadc
    aec451e99ad2c06e1e63b6207d90abcb31d8f0e1
    6f30c2648bf1dda7af5cc205448f8990d2383264
    255a3e7b2026cd461a60bdc2ed8686b42847a3a0
    fa44d9619c1bcdda9c9542b5cb83799dd812b53b
    86ee67245c9257164559d6ced91f64313cea334f
    9baa246cc16b03dcc8354a141d54bb5c40fb99b1
    fff2d93e7190eee6b5d20af2144679a24d8b26ef
    2ed1f60872d6a523432151bf9b766463083779d7
    e34630bf0be590532e13cc73d3fc205d0586636a
    e42cacf8d374de3759c9a6e50fd2d03a7786943a
    2f7cab8b004ce4c319d08509c7662db582202825
    74c0b7194d9de3bdc868ad47d72cbbf557b24466
    1b1e331d7fece38c48963c1a9e4c45bc227b0ce6
    5290b67bf5ccc187badf933627726c9977dd23db
    e52682c1b86499977ca540dd02f99bfef2531899
    6d46ab2cca742e8661fbd5a20568b8974c1cac4f
    45cc06e3de6c5eed0544072a9b48f21ae63b577b
    30914c16ea7170879a83dab48693c2692e1e3850
    8a355c193e75b3d8ec3222d4e11e62b945626cb8
    d9262b38948c21dc22d00f0f094ad37ee3b98430
    3cfebacc8397adeec781a138c311ff4f37e5b601
    bb9879d35229986a0345a5f7ea8c84a85fe09fb1
    ca463a05f8c5a513ebcd09ee1fed6df729073c55
    420b56457b0b355e6217ebacfd48de54a26f0c84
    1a8aefec218b12053a0d3589cae2c353c1360887
    10d36cf9c1885126580478a10462ed672361059e
    6d08d01bdac5597237036a8205ab4683fd456c83
    01f58bcd9dd0fd046ba4b3d52e823716bfd52e51
    1bbb0949bc53208208f0bc7336d62e9724dd4296
    e7fffa3be94db01251c8c3471685a1818acbcdc5
    6bbd724fb7623fb05df66ca5ed83a09511903521
    5f58a6bfe359e4057623eb7db1a92e73495eddb8
    a21b01b71e8d60c4063525294714681dc88a5bcd
    9a21f3bac1068ca5b18174aada84118ea04fe3eb
    03ea422d3e27cf8ec0f1440880a344ad765fd501
    4a9f92efe64e373a27709507fe2cb579e5815029
    9e10bfd47e9af3cbd693566306df4483a6560f2a
    4f8325bacaec9fddb2bc901248c77835e53720ed
    fac0c3514e9b361ca5ffb2946542143d6ca5fd32
    656a5b9cdb56c6fdd719e47be031d7bb269deb56
    be2c0c650b028f54e427f2469a59942edfdff8a9
    c02894f57cd59a7f3423d893c84e7880e3e747cd
    4b8803f08b1d3d0fd79d3c0189ec792fac37bcae
    35f11c10c74d5706be1842324da064df0330c72b
    dc1a9c2dc1c31fcb3b7f7f1eb07b7b03316750fd
    557e6e68fe1416d7a2f497424430514f98f4791b
    c800d8b327c8e7dc5ec8c5ef099ce91b1a719c4d
    2c5484a6fb758fd9bd9f56d504186972d12dd338
    2bd5e579211864414eece8d9f36cd46cef570cf7
    0302547a025c8a18719344e0ce7546340eb0aae4
    4170737e25c85a87b607a645b8cbb5049ea57e58
    b74f9bcd216cbf238be1d6f01fee69de11043e56
    3a985a427587452abb72dab5ef65c5d7347e46e0
    8fc12533a9507e5d20789db64355c26e88445308
    0f51bd1b04adcfb893439055d50b374d6eec71d0
    51f69a247f06354aa055df45451b8b569803f561
    8df928d230eba79fc0097ab1c525ea0aaf62fd01
    fd2f7781c53de487918ce1b3b454abd025e35748
    b82bf1ab2e741cae81b915e189d77e2325bc6b80
    fe427a6378fe383fb343e07edbe0afaf4c9a18e0
    61463a3eba401750124ace520c1bd60db4301a84
    b3632c7127dbc8ae2250b65ba913d59a6e1caac6
    acab2422b2372f4b4d6e2542e9b9cf3dc0b83e92
    60108b47d6130990788b7498d939598cebe8a0b8
    a27615d67331a9b30d8e49e84614dffb27b77acc
    1656665e748b80ad0727244ca0eae788f521f64f
    4ee010a8de7e086d97cebe73ad4c69d91d1ae7f0
    534dad482495d5659cc3fdec2b8189067f5c84e5
    393aa92a477cb2f9e975ca866c8621505b7d93f2
    ba99daed3cfa516a1d34cf4fa75c3a71bd786d29
    bb0f664e88915ea62cf282157a8672ea660cf450
    d35fca5f9e7ec48bb82d2a2d4566dfb68f955e6e
    8fe07b3ce514c23e43fb56a3e1e312a505cc94e7
    f38527b25758b04ca4332232437b236683917182
    23695c073f41fdac9d20d873827ba8b2a3dda710
    83a177d5130b0eaf6e80dc433be6c3ac4ae4fba0
    e71f25b35412c2e07991432fa6973cc30fbd3701
    f54530a43a9d4dd069e26aefc7ae572ac4e299cf
    6a810bd43dcf7de311a8b308e7f58bbb7c0f758e
    cf6c81467061cd51e29062107db165a6fea9fe19
    e5000e04e4da352e379d186098fdee6c8edd4fb8
    1bda7a749022793a1a7ec1719cdd3d5b12feba7a
    da7cf1cc7cedc01f35ceb6724e8260c3b0ee0d12
    5fb413889777319544fb826f2cd3d8e78459b0a8
    9cdec1363fe2fdf6139eb2e9c013baeb2d0e0c29
    614273add497cd4fbed447fdad84ef323b226b18
    a52f2cced5b51a96e90a2604111245e6096dae5b
    5bad2b3959332943ca48f8b4f44af83effad4314
    09cfff44b722bf8a2467d7467da8dd4a8cfa4b45
    add9356cb1c4fd5ffb8f067679f4bbabdea51e14
    a2c3b2fe18baf254f225947385321b029600253e
    55701e3ebf79d326d32737104e76aa1b338781e7
    6b3eaabc80276055f42321406b1ff927f364d64e
    fcd130693a9e7a753f63a08691ff619ad91bf8eb
    2fc8e8ba210632f47ef1990d23e015d378fe0cb8
    b25b06cfba95499e3ff101909adcc2c23aea0d58
    b4514920cd5cabccad6add35edf1bef258070a11
    ec35cd4c022dea519712ce60efb24e281b048471
    c60f3449d2166487bf605f16fd7f6537dfffc5e4
    f914a2ba4b8f428b4efbe6b125d07f221f107a40
    19fc2965b60669d7bc25548edb32e3cdd86a68de
    dc09fdd957016ca0d595c25977472e49c6ac4457
    26acb4d0f1686b3ab50ae999f965a931d3249d57
    1be7e5f17f14e132e60e55c8cf6eb2a1704da810
    556343f1c9b06592ba8ef8f78070d40aab8d9276
    2d825fd950f5c0e0ba60399d56c61b94d3a7fdd1
    52de5f36afe1d56995f76f26f15cf191e9cf699a
    5ff52e3ca85f534d7e9cc92421be53c783fc747b
    da8a4494ec9f611cacc23e2f2bee383f51567ada
    1f207a974e82d7673df119f7fe72a576a69db068
    3f1866a8f6c7a9d70d0c8bb1b4f20d2db63756f1
    3d9637d600ac38511f9e25c1dc51d91ea4a3bf43
    fb245905290137157fd278a090bbfd1074d49de0
    b8070b0795640313148acfe846c5f9320bec5745
    956f01add7c0213f2f704be1e381ba8c5c7622b7
    5d32d268506f1f5aad2cf2f55c6585683f32576f
    4e4996362fc17b0da44da77700adb89378702c1b
    bf1007bc3074646d66e71a732635a3d0b39ea516
    adec5bbf0b66ee5ebc2ba80eda2389bb68e23d86
    bf470003395f7172463f4fa9109e0853ad00272a
    396ce25fb7d85d57d481752ea9f9e4f33fcbcfde
    1c00b880613d955236e052aefc52b7eb1fac5dc9
    f15d05806fb7522031b75cb5a8784727ae03b98a
    1ec2b028f490cff41b7f0c1131c900b58431c722
    2e6807b5b9d6bff0efdfbbed7b7731e04ea21273
    01602aa1039240b47bbb31908b99c74240575514
    8e5993c4dcf9a5b7c84224dd04946a4e49ec96fe
    59a14f30f688ba05fd58f9dba1521fb9be116403
    60a26c797bbff039ea7f861903732e7cceae415a
    7f1bd063e5aa5aeb26ed9c39db6864cc0ecd7a73
    073051a9ae59eaa8dc2e999a8ac61e2577b5f3a4
    c7cd1ed9f82c9c90c5be7e254ba04292d7f07e73
    e8164ee76be9fe457e58508afccf20abb0cc4008
    2f7a15bf0111b35a9af62de5c74e13855cb9cea3
    7ede3c4fd2179a2fd73243b5b8374b6af730fb1f
    9d293ddbfa9b2d5f12e8b7a40b44c1466fc9f148
    0533ae6f60432c9f45178df2a58a9b469f4e3464
    bfea06111a748a3087983fe3342c57695202d016
    0f5c5828d46288412e1703ea0844560c69734fec
    8255316ac82c0fbd7ae49f2f9a217ce063d7bbfb
    94b9cb53c203ffad48e3011ea660a3a5ed9a2b38
    90bb05e99dc8d6f1b2c826c6c6c914dbbd82b168
    fd02503173445323c545718233d54763a7753061
    05a6ec7788eb8010c20a36ab57418c187f61573c
    965f9517a764238c745d253495e1c1ef8403b65c
    fdfa33076f4f175751eccfb62ebb0c926a6307b0
    9cea1b144d6a5c138a4576a9d70366d1949a51db
    a2b4240a80b9c49a8a3c43c2bc84ccfeb6ef63af
    a3b4b767538d6cb0592a1428349ec55e219b81b3
    bd18aea6d95681e1bd5c2cdfd894bd3706e4b819
    c04bead1edb16804f93c1d95979abf8e7477363a
    decf70bc4310d8f5fde9eaa759146c3548ab340a
    9a0b3f3632c5377e7b38bf711f1b2c674649eeed
    b40d1aa27dae20c52bea2ec0d36f57aa37503988
    1cb852db7b10e30cf24e4510b02cfa3361b07978
    a26223c9fe9f719139f4223d916e9ed21e354873
    9ec93952bf7c183cc01466806c75ca9fcbc2548f
    95ec88f91eb8b0df06820832434e1de7ea98394e
    83c15bcdfa3e12f16b91efadce6c8410809e16cb
    7a928d916facc702267dd7b5a9cf36135ae25009
    fe43a9cc030d741126b22f2730889e69452f8988
    acfbe606c0d84540e21a464268c3bc88bc187789
    f861ba6781c5332f6aee9858ce7f69b9ff26f55f
    dc26b617fb7e7efe5ade0b25317c4133355b1cab
    69e7f50e50fca481754ecdbf99128ec510592c89
    38c8d7b116b8e618c4f230cd34234e218e5eb6c8
    0927ade08b4a98671d253366f66b984dc77ed512
    005767288eb2ed82608caafeaad3b0c1aed852fb
    94f9945d6a41925a75e4133e35315328b8f6dc39
    c3492809fd2c796c3cdab4de49e6c47560ce7f23
    68aa5120544a128fb0aa6b9af76179ffb895cdd8
    72e11947ab9e3d00b1e7fb7fd4f7bbbaa9d8b69d
    24963b0a8d4dddbe29a3709011cab46fdc3deee1
    05465a2f07dfa2d935435b71d3245be3c1b851dd
    e57ea7c96db404b6101973609a00a22aa8bce9c3
    5db46185eca18172b266c3527133dbc479f0838f
    16a77b27e2d2b59233235b74ce1f2c90ac18d675
    b250cf0f40ce3da938898a0e893c73e0a95e2a52
    ea319c81d6264975e581fc37c96a23a66e426632
    6af6e5991eb39394eeb1779d27a71f12c051a122
    63dcbd3ae0e96e0423e2d796773dc468817c7ade
    9e17953912c0ab4f21dd642345727a44c388a0af
    7832ad859a7fe7ff3d13488cd9bd5fc210c12ccd
    d674449463a15ac3f36086e3a0bb3a9d02729887
    4de751aa8a27866a3e6ceb6f13d09e9cba8ace55
    9cd3bbfa3a1a8e8c33c486832947833f2dd65c6e
    69ab4fe8f8c211a9fd29de8fa46380ce5ee4eb70
    fef6692e28d019582497b48b58e1773d181d6ac7
    482e4418cbff3a580fd0c63dd1918d375a086700
    08f800f8519574aea9e744ff83230fb93772652b
    f8591e0813fb09e721ebd16e2001516b6c4e7356
    970ebd6f29eaeb8f281ee05c3de6b064ac181673
    1d6c37fc2b29d8f450caa739507858741a5ae58b
    38fe8a04ecde2def590d5181d73afe17f06f9789
    cb5e83e99c97f1e4ac2fbc858b6355888e216047
    9e08bfd8d1a9493056c4199e39523fcaa89c9bf6
    001761daee58d9e33b457b762adae1f44a887a2d
    7d376cf2211a31aecb2ae5e18343bf0d157125e8
    463bbb8d1eef4d77402f62d6bfac305a3d8d6f15
    f7a1e8ff8d838a454a674619d11b7398258e3fe3
    a7efcf70cd2a31460175c14f4b556086948c619d
    5b145eb412326b9b57276229cfde0ef09e7ca2bc
    3d809c37fa60448b1ea99d2ccb4c331887f353c9
    63c81c3f753ee347d0a9b62b314aa7e843093805
    efdbe372ef49f72363879a5a2b598b0770415402
    1e2ea6fa1a2eba023fc9e17082e8909395c79e5a
    5ad999257778c656213e977c2fd782e515f02bad
    a061ab0bf2cb11304132a96f31a2b0403912e9b6
    cc5f9b8acb940eaa010ae87bdf61c7c118da5bf7
    65985bd1d624ef3a5d827a74683c2bc1f24dfb96
    738155d2fb1d2430e97c38da93d074e4e8b5974f
    60e04ba1a34f784612d20e526a0ce38e47a53cf1
    4be1619067a9654f65aef6cfd26153e246218fe8
    8f7d85af81a1d45acb4b5bdd3ef5636dccc8c6fb
    32e7f215b3ed0d58db0abe1375ecbf0b202ddc43
    06c4bad0551a71302ea93b2f015f632a62e48d76
    c2c360591864547f4210a9df74e0064cff39a11b
    db629560b69530994e144a9d538421f72ec29483
    a55ca2cb1c0fdf584fada8400e3f4ebe160cfe0d
    47011d98d8138b193bac04ac39d25acbe9b579ba
    89e2fe5204324fa39466f06895daa50e855dd629
    5ea3460bf04be858ac65dd690c9f49c3d1514ea4
    29e10d39e1747dbb4f219bc660ccfa99ff864ee8
    d88ca568f0ba6af079816962f37e415fd773f90e
    881018827f9961cf5132d9243259ca1e9e2c0330
    81477935a7844157c487842db13847814f93b52a
    73665bc485938167ff7ce1082176b6dac0df99de
    f7ce57d8b7fc8923088cd227564909509cc7f9bf
    01bbc29fd9fddea39dc7b8194ad3cd950f7a466e
    bea284c81588d5800ea7246f6a409ab0599e57e5
    cd642408b70f009ca99d93c350a0bfc33707da9a
    09783a0a55f86092ea742bd6915170b04f98af7f
    5cb51e4d385f1a78e57460db8c624392985b7678
    118a40c4aa59af9330f4c37e86423a8b7c0d301c
    76734a3218e712760695898e424c2369ccdd49c6
    28383d1aefa4f4c119153a5ed41ebf82ecd7a062
    c534415b1fbad02ef209331a3c61dc6bf1356379
    497064412d19d508aa2afbe2e8ab11407edc65e8
    397c43d88a02adee0747f7e7e7db500858dac48b
    09eb1f392c1b3fe7ceb75bc21d727f40789c9f88
    1381beadb71549f2dc14a02454cdb7c11897f118
    adff8e6f7019eb8effa545d376f566003c2ada46
    5f602b3b7e2c9031e50c464666e93499c86a8fbe
    f2b9631d5d19d2b71c1776e1193173d13f3620bf
    4cb26c52ed90189e6e3564a4654b869fe4c4d3e6
    d7244c9a613101b97077ed781e11a729c347555c
    8687a6e6de7ce658ece8673ad56c37d0a1d8cbca
    31f7d6b96b4add13808a033633e6dd1e4d791845
    f68c540351c7aa8d731d66d76cce5fa9b18310e6
    ad01aea0cf123e30f64d2b7f183dfa28c87af2ef
    f17bc913886cd59ab68fde7bec9131dbb90186a0
    4e615abd31bcd0bb8f321ae4687e5aef1a8aa391
    00bf60caa5125511dc13041a21f3d1cf2abff837
    165a1c52807daa7ad3ecc83f0811047937088904
    59c018b996263ec705a1e7182f7fa996b72207da
    6696cfa7cc3a0e1e0eab29a11ac131e6f5a3469e
    4ebeff162503a0f3c404305458e4730ff29f1dea
    3c5f993ee8b2fd0912839a82e5d7d8c871a363ea
    c664130fefeaef47ddc7dcbf7ec1830d04af8ea7
    79f120c89a6e123770f65fd49893ef0b379cd922
    ff52fcf1dae90deb49f680d7cdbf78a04458ac47
    a4a439fb9cd74c575855119abb55dc091955bdf4
    78d57975d5aa732ef6dfba842558183e8880539c
    2fcc0ca9e3b59e6224af067db588ef3249137029
    55e5378d6579f68f700c44b38ccbeecf00493847
    58eebef2d34f0f429943dd0ab07bead821d9daac
    6ddd902ce7b4052f3d48e6dd638d08d705d1ee16
    17f41037d4817b6618a903e12aa1377ae078f66a
    81547f2e05510b240d229ed703948ebd9a1a515a
    227883ef4e371529b73e31e13f3799ba3ad47cee
    b9f119beb209b721e37523a5a5d1d72c901f3316
    cbef69c1c0b28f5a8e50e67afea1ff67dcce20aa
    a73158aa0ed4103b2fa187c058e354bf55e7e7af
    1ee983f50d5e03f3a0d3f3a2fb92a6f6d49da9f2
    27cdc72ee6ec3061d775f2ff7739a3b826d811a1
    2c0879e73edf569030da235e2a6aa0d8fe1fa1a9
    c389e68f6ee2168540f4380398361c24e9b985aa
    e67bc19562c85b51b0d54a3997beeb3ceee2447a
    c29dfc6a6c45f86648c51f961304254cc3c449b9
    e9baa58dcb4000655dff6e7f49c2d012acc17a39
    c97f3887922704b32d37f95cfd7f21cca51ef5a7
    1f44a80e271feac30e0ddd10ca806f3914c2860a
    c429f8edffbbd9861ff58188d59b44dab3946ac1
    997990fd7b2db8e6636731fc98ed2e1e000c4718
    d54f4edc5d7b2d0c486a36819c348aaec29b8470
    18d04e70ad3150934855463233bb7dc953f33a23
    fbe0543bcbaefe00657a5aa89d684a59c352cb84
    58818a660dce0bbd7c77e5be9d0b7c86d30979af
    4694301214bd05a1f063a10ecef2406f849bb30f
    4911bc40d408c8c5acf325e388b3e0513ef90571
    bdc905d035d4f835a808f1825dad9a8cd726d1ec
    6830146276953868aad3dab123e7048a786f9452
    d2bccf1b4e37b11ff1a8260cedb2164e0f382dcb
    ad1bab996deb0d22bb36939fb1f256d22ccd68cb
    3ecb55dd84519230479575c3898a0895dd4ba286
    bd4dc8873aedf5144874edd7e1cf73988fb50bde
    bc900e45a4498affce40e6fdd0282f3715c0b5be
    ef55c6737a667b6853720247c181a0cbfbbe6116
    198aaf386565cec44720e3fd597a6534d97017f5
    e7127e21a1976771d8a5eaf45c257b1d97ca9232
    cc93473c948e5db15d2a37d4e0df8ded0354f6e2
    37808b008bc94c39c5452495998b0106d6d38f6f
    21866d1330b560599ac45bc24574bbd830e59a37
    f71079d3db9617c58ae7b6af4dbc508997966529
    9c88bb56d60636172f099f56a2808249de0c55a6
    e2733f9a9c4a5fa2b3718bce12d67b73111a9bf2
    59f30b2e556f0c671940ad7066fa598d49f64cbb
    4d092e9adf58e7e84cdda3a7ad11760494862343
    404b28f3635e5d0c50f9e076d29cdadf9d75e99b
    bd9daf582584bca02932cf1f7e2b8320ad778aae
    33d95a65610de4b893a90e38c300d3f0b0bf2fb0
    0a44e30b028e9918e549705da4512ad5b5a98493
    6667f488a374c159ef434cbda98e3aea9193e401
    1e834499d76393954f000065800c86f4ba9fe953
    1ab337397b606052e0bf603ddd09115824d4192f
    3b17061e8900d0a8d6eb91ef692333d2c3b2c5e9
    f3fccad61d50bafd4048e7aa2ef581b869cef078
    ebb13b509c428fd7f68640fb852002978e41c60f
    aad46ae64df28b56b2fd339fb99a78a5747c6d66
    af4a745c3de5c6ec8da1633d32df494af30acf4a
    e6404dcec492d26d3bf483b36a4a0a3211f23634
    078428fed963149aed67dec970b15c2e94c9bb69
    98b8e3618fa8e92990412ad4eeab6b13fc76482a
    514e62e37b812971a6aecaf30b28be6f6c8498b8
    c6a6e1c8da974f7737a2fe6ac1e8fbd68546d67c
    e17bc05a6e975416ade31d7743572631e930f1e2
    2cd79449377bbb32a66849c7904f255698f78ad6
    64320867983cca6494b5d7efcd95af322feacf0c
    2104c6951fdadf57c33668bc253de5ea871c9335
    1ba11575b2c75391c309a50dd8070f5c2af46656
    ee072c898947f5fee316f1381b29ad692addcf05
    8c4723656080526a8392690f30ec46d642de80ba
    7eec73eb790f7c4982edfc28c17c011e8a072490
    0bf54b1ecaec8f6d80845d6cb77d62f8c9f4c415
    88bd7502bf4d3b88554da76bf1126e98dbacd997
    596f7718608c57f0ddf6f274e2c8d12030fb4e9f
    5e21a9a97fab08fc899f9b4b6e4cb01cdf27826e
    016af03917eea80cc676de5e934ea517073e5976
    5a0de58193409bae1e4b2ebb59c6d1af2c9b4f00
    7720b61be266a671fcf072b6d38f8a2b3bc34eda
    e4fc70828d25802f8f511e75d50813489648c124
    1a3e97240d9aa40adfeecbebce3f3cce94fe131b
    79409ac8354d04a53c3ba700bc429df2d9bd2043
    7351909aac61b53787fd4089f63807c977a0db64
    33a10326b09f0725eabc08dc590a6c35764f20a4
    31b6f23ed55c460d17977de41cb3e9cb766fd414
    81b22c1785a3942e35481ae675f1d9cfcd97ab0e
    706d6f2a1d6296dc5d88c518b3eca906347ec936
    222c4b0094b4145d06cb164bedd2a66a3141203b
    5347602a6bb67df5acf516eeba93020f8a3bdf5f
    f871eec40e9a7795680dac669164adc39cb6a2a2
    b1d776ccb34b3542b2689c64ea05787e7a0fc931
    ad96436a129f2e21607a1a5b00e1924ec0ed9cd1
    a1e5c56130766aa646e4153d1f3ea60310a818d0
    756a1fc445182059797b470a42abe2b0f18c3d03
    43faffbc07b9c924ceb575fb48c43e4e7db46d78
    971f6fbfde1db03544080e4ca5682549e5856597
    4ef6d3801d0c96dcb38fbd4a1c2a0e49196ef033
    24293753f0a72ccfbcb1da295e440f5d6cd6aa8f
    a9eceb2d857bbc59b5154dab9e49408ea38b8148
    955a736c2cd1ad6cd7868da807a056c4d540dfaa
    d54523c40e947fbb41347e55dca669b20b9ae52e
    c385646f2a7515c11ed819df7fd71e6476dd7bcb
    1a961f9f4ca29c9cc14df1f66d0427e5cabfbf1b
    32dfbb33d9d65fcaa08a476841459ef8b0801e45
    44b1835744fc7d04d391b987c9b2ad4095b09b28
    857716c91d72a6a564885f5d4ead75033c1840ee
    60858fe86ce0e2182138f1006d72637ca0621048
    8a094feeb16ec802357524d7ca31bc69c5c07bf1
    3f6b66c14467c0f8c7459e32c576618155ca89f3
    f32855156936eaf820046ce5030eea8ab1cc758d
    3735683b023fce9f2d10ced6617390155313b6dd
    0de6c762a26eee78d6c85af739cbb17ccbbeadc6
    3bcfc7b32c9b00b9bf0355e7261883faed76aa08
    9ed2d9d9590c246380663caa818775c693b29fb0
    e23397c2eeebcfee7f88b590392f8b0aec393f79
    0bac45c8ec730e2fa8dc539d8acfd2271778b4bf
    8dd2ecb38ea33d0b1ddb80356f233a3848692e8a
    8fe4bbc8847add0c39ceb548a6d7d7f7a42c06d0
    69b63ee4908eb1aca0c1fcfee5f574ab3c3f7bf5
    9f99f3e9e6ae0ec21101eb53f031516873ae9ac3
    a1b6998077ae2b109cc93651b33f30c38a068f9e
    8165798cc711507af4bd58859dae1d19860215fe
    b20d3b89d707a2ac44e8fee8cae299ecd1bb7e28
    6405d2efd52180a82bb921486ffeb4adf0167ecd
    a1399808f7d0c25a44b5677fd6cafda57e658955
    8e84dec289732f088323c1bdc1e82f10841b362a
    e1711683d9d75ff4314d29ad0ca2e4268edcbaca
    51e3e8c825a18bc0e09c2ae137d09f4a9c5bec08
    ec5bd2262bb4e28f0dc6a0a3edb9b1f1b5befa2f
    62ba63838458dc3df81eb419fc3c9fc1e41d7a77
    12cb3c02e264d77fd9013f1b766d53f51de20f6f
    2901a589f468669f5e9087642106e92479f89422
    f72f2c070b0204ac6a1d3af58defbe641066e5b1
    3b58a017360a47c8b94fbef2d6d902c41ad62f51
    d60db39f8813951c8cc72a487997e8a8de5b9fb6
    29002dbe17478ea0e63401923b1e8af041bcf556
    d09711917ce23e8f0ea2c508ccef33f2da87d68e
    18940b1f64e0cf2b55273c662167fdce8ba842b4
    c04c2bf1bf7cf377ab523ecaa7b0bd9a8f93f0cd
    2d41a263c0e09e6dfabecd28212d7e80b42dc3e6
    ba3530a211029e1fe07e19b385b9f7c17af92ac5
    683433bde86eadff5e1a6ecebc027e0eefcd25ca
    bf89478047d514ae1f567b0f3a20b3123bfd3f70
    d52d06a7c81cf08f525d196054b9352c5ce45261
    323565712651fcba2b32b0b34a5e12fc169e3330
    93e53d65b0b29c674bff7d23eff34925a1e79526
    e388eafabcb845b5918222d97a454fea1600edaf
    90a4dab5168f7b0f935a5e5497b7756f2004f80a
    7984aa215389d9f2df23b11f387d8a0edcfb3245
    8c3f6b0b0ae614484fa1c408f25a4cfbac77a513
    d3cf57bba0f4ee08a63044d3c9001f1e4ec2d73c
    d6e0ab90d221e0e0cbfcd8c68c96c721a688265f
    e340d4b1e2a4156fc60342ea5b9a6b1e40a929b3
    3864116fc7507401e183c321c51faad2163d9545
    5c427e6bc47d9e77f3a22781cdd61de2bad81072
    228bfab9ec3f3f6bbf264145687d5ec8c0be9522
    a0e0fa22911321fcd11b572848dd985b0264e9e4
    c338e234d57f13141c5e04b6361ed8cc9e14b42a
    143048c08af5307d9b4ff95c3322a6c67cff93cd
    76744982a904f21ca6ade6b1e09f5dd764508ca4
    00ac85b948033a963c2554006b5836e7ffb379c9
    bf49eae4014ca7ff7b44362d99251f5b9f30bec8
    94e22bd6136e123eae522a02d51cbba06bc7c203
    17529fac2380ba2f4761aee843738199976ae966
    4827ac7e56d329e2bcf028d5472ae4b3407a71d8
    e6da2a9c4c0cecea6bf21f8ae47d78bdbe8bcbce
    55b6481ff87f84626ba01275708297a42a6537b1
    c0c2b3021b3b2a6bb405e98b1ebfcde6dc620048
    e7acdfe976f01ee0d1ba31b3b1db61454a72d6c9
    21a5c8db3a272de4e9aec0faf8402cb19ce8dbc9
    c92b26e114702cae63b26bfe6517283589a04296
    4e058f448f14936d2650df689211ba416bb627ba
    b6c0faaf0a2924c76850099116895e5c29a739e1
    6295dc14882a54531ce4542f1d80fa8ae7b4f8f0
    b0e24409fd3623db353286c203d33b56e622bae6
    f2bfbac0855ff84c0a0d9cda7134d653d4e04428
    a49fc7b3df0604607677e9aa70ac9c5468bbd742
    13e1fc6ad5f61be7a02b000114901d1d850e988f
    6c50b67b99a3df9486896d14dc294825a148a673
    8bf4c4010cc474d4000c2a8c78f6890fa5f1e577
    3dfcef7e97bf1b516f2ff2b33a39a1fd2d816236
    817597733b0e2fe71999d7d7998504fae8d7abbc
    8bbcf42b3db0806c3a344687b8bfbc78af46ee4b
    9d0d7636ed8ab86b4764ee6b9a9091f2a92cf26d
    1b3df0e6584ada095ded632e22ae5b3a3f9b802d
    d3ac93550cd6be77e2bda672ab969e80dfda3463
    10f94efda718d740901a1240ef33924a21edf4f5
    59fe5989cd9d8fa61d51c7fceb20334ffe0d194d
    9e5cda6b852ca831004628051cf32c1576146452
    12e0223607f17a2664c9be5124ee139fb06b7f55


@INC for perl 5.25.3:
    lib
    /usr/local/lib/perl5/site_perl/5.25.3/x86_64-linux
    /usr/local/lib/perl5/site_perl/5.25.3
    /usr/local/lib/perl5/5.25.3/x86_64-linux
    /usr/local/lib/perl5/5.25.3
    /usr/local/lib/perl5/site_perl
    .


Environment for perl 5.25.3:
    HOME=/home/jimc
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)

PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/jimc/.local/bin:/home/jimc/bin
    PERL_BADLANG (unset)
    SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Jun 25, 2016

From @jimc

[jimc@​buffy perl.git]$ cat perlbug.rep
Subject​: noise-free config.sh checksums
Message-Id​: <5.25.3_10346_1466885971@​buffy.jimc.earth>
To​: perlbug@​perl.org
From​: jim.cromie@​gmail.com
Reply-To​: jim.cromie@​gmail.com

This is a bug report for perl from jim.cromie@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.25.3.


[Please describe your issue here]

The header info in config.sh currently has a number of fields whose
values are unconstrained and essentially random​: ($cf_time, $cf_by,
$cf_email, $myuname).

# Package name : perl5
# Source directory : .
# Configuration time​: Fri Aug 28 21​:09​:08 MDT 2015
# Configured by : jimc
# Target system : linux groucho.jimc.earth
4.2.0-rc7-x2a-00125-gd0b89bd #278 smp sat a
ug 22 13​:35​:17 mdt 2015 x86_64 x86_64 x86_64 gnulinux

The presence of these cf_* fields means that `md5sum config.sh` output
is all noise; otherwize identical builds done at different times by
different users will have different checksums.

So this patch tweaks Configure (or rather 2 configure units - only 1
is needed, git add -i the desired chunk) to mark those problematic
lines with a leading '#​:', making them easy to exclude from a
grep|cksum calculation.

  cfx_md5=`grep -v '^#​:' config.sh | grep -vE '^cf_|^my' | md5sum`
  echo cfx_md5=\'$cf_md5\' >> config.sh

So this is a small step towards adding -k<checksum> into the perl
executable's name, and into its @​INC paths.

NOTES​:

1- tested by tweaking Configure, appending to config.sh, building, and
  verifying `./perl -Ilib -V​:cfx_md5​:`. Patched blindly into
  metaconfig units.

2- no >> config.sh actually done here, there might be a better way..

3- cfx_md5 could have a better name (subject to bikeshedding),
  md5 says nothing about what is included in the calculation.

4- multiple cfx_*, each with different subsets of `cat config.sh`,
  could define different "equivalent configs".

  For example​:
  cfx_cfargs=`grep config_args config.sh | md5sum`
  echo cfx_cfargs=\'$cfx_cfargs\' >> config.sh

  cfx_cfargs would neatly map the ~16 Test-Smoke configs to a small
  set of unique and eventually recognizable [0-9a-f]{3,5} key-fragments.

  cfx_md5 as given above would define comparable builds;
  Porting/bench.pl performance results from 2 platforms with
  identical keys should have similar results

@p5pRT
Copy link
Author

p5pRT commented Jun 26, 2016

From @jimc

0001-Config_sh.U-tweak-header-comments-to-mark-noisy-line.patch
From 1c78f2af96b2505b8402c724cdf81df21665e98d Mon Sep 17 00:00:00 2001
From: Jim Cromie <jim.cromie@gmail.com>
Date: Sat, 25 Jun 2016 12:50:25 -0600
Subject: [PATCH] Config_sh.U: tweak header comments to mark noisy lines for
 checksum exclusion

The header info in config.sh currently has a number of fields whose
values are unconstrained and essentially random: ($cf_time, $cf_by,
$cf_email, $myuname).

 # Package name      : perl5
 # Source directory  : .
 # Configuration time: Fri Aug 28 21:09:08 MDT 2015
 # Configured by     : jimc
 # Target system     : linux groucho.jimc.earth 4.2.0-rc7-x2a-00125-gd0b89bd #278 smp sat aug 22 13:35:17 mdt 2015 x86_64 x86_64 x86_64 gnulinux

The presence of these cf_* fields means that `md5sum config.sh` output
is all noise; otherwize identical builds done at different times by
different users will have different checksums.

So this patch tweaks Configure (or rather 2 configure units - only 1
is needed, git add -i the desired chunk) to mark those problematic
lines with a leading '#:', making them easy to exclude from a
grep|cksum calculation.

   cfx_md5=`grep -v '^#:' config.sh | grep -vE '^cf_|^my' | md5sum`
   echo cfx_md5=\'$cf_md5\' >> config.sh

This yields a checksum value that reflects the given config_args, and
all the platform details its being built upon.  The checksum is
sensitive to the platform, despite dropping myarchname, via the
contents of cppsymbols, incpth, plibpth, gccversion, etc.

Further, with the cfx_md5 appended to config.sh as shown above, the
resulting %Config will have it, making it available for installation
tools to use.

      $ ./perl -Ilib -V:cfx_md5:
      cfx_md5='37e040a516936d31d0e049d95ad66b68 -'

So this is a small step towards adding -k<checksum> into the perl
executable's name, and into its @INC paths.

NOTES:

1- tested by tweaking Configure, appending to config.sh, building, and
   verifying `./perl -Ilib -V:cfx_md5:`.  Patched blindly into
   metaconfig units.

2- no >> config.sh actually done here, there might be a better way..

3- cfx_md5 could have a better name (subject to bikeshedding),
   md5 says nothing about what is included in the calculation.

4- multiple cfx_*, each with different subsets of `cat config.sh`,
   could define different "equivalent configs".

   For example:
   cfx_cfargs=`grep config_args config.sh | md5sum`
   echo cfx_cfargs=\'$cfx_cfargs\' >> config.sh

   cfx_cfargs would neatly map the ~16 Test-Smoke configs to a small
   set of unique and eventually recognizable [0-9a-f]{3,5} key-fragments.

   cfx_md5 as given above would define comparable builds;
   Porting/bench.pl performance results from 2 platforms with
   identical keys should have similar results
---
 U/modified/Config_sh.U | 10 +++++-----
 dist/U/Config_sh.U     | 10 +++++-----
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/U/modified/Config_sh.U b/U/modified/Config_sh.U
index 2bbcf1b..c9d884b 100644
--- a/U/modified/Config_sh.U
+++ b/U/modified/Config_sh.U
@@ -112,11 +112,11 @@ $startsh
 # instead choose to run each of the .SH files by yourself, or "Configure -S".
 #
 
-# Package name      : $package
-# Source directory  : $src
-# Configuration time: $cf_time
-# Configured by     : $cf_by
-# Target system     : $myuname
+#: Package name      : $package
+#: Source directory  : $src
+#: Configuration time: $cf_time
+#: Configured by     : $cf_by
+#: Target system     : $myuname
 
 EOT
 ?X: Command line options are saved by the Options.U unit in the
diff --git a/dist/U/Config_sh.U b/dist/U/Config_sh.U
index bb47b7b..a46b9f3 100644
--- a/dist/U/Config_sh.U
+++ b/dist/U/Config_sh.U
@@ -96,11 +96,11 @@ $startsh
 # instead choose to run each of the .SH files by yourself, or "Configure -S".
 #
 
-# Package name      : $package
-# Source directory  : $src
-# Configuration time: $cf_time
-# Configured by     : $cf_by
-# Target system     : $myuname
+#: Package name      : $package
+#: Source directory  : $src
+#: Configuration time: $cf_time
+#: Configured by     : $cf_by
+#: Target system     : $myuname
 
 EOT
 ?X: Command line options are saved by the Options.U unit in the
-- 
2.7.4

1 similar comment
@p5pRT
Copy link
Author

p5pRT commented Jun 26, 2016

From @jimc

0001-Config_sh.U-tweak-header-comments-to-mark-noisy-line.patch
From 1c78f2af96b2505b8402c724cdf81df21665e98d Mon Sep 17 00:00:00 2001
From: Jim Cromie <jim.cromie@gmail.com>
Date: Sat, 25 Jun 2016 12:50:25 -0600
Subject: [PATCH] Config_sh.U: tweak header comments to mark noisy lines for
 checksum exclusion

The header info in config.sh currently has a number of fields whose
values are unconstrained and essentially random: ($cf_time, $cf_by,
$cf_email, $myuname).

 # Package name      : perl5
 # Source directory  : .
 # Configuration time: Fri Aug 28 21:09:08 MDT 2015
 # Configured by     : jimc
 # Target system     : linux groucho.jimc.earth 4.2.0-rc7-x2a-00125-gd0b89bd #278 smp sat aug 22 13:35:17 mdt 2015 x86_64 x86_64 x86_64 gnulinux

The presence of these cf_* fields means that `md5sum config.sh` output
is all noise; otherwize identical builds done at different times by
different users will have different checksums.

So this patch tweaks Configure (or rather 2 configure units - only 1
is needed, git add -i the desired chunk) to mark those problematic
lines with a leading '#:', making them easy to exclude from a
grep|cksum calculation.

   cfx_md5=`grep -v '^#:' config.sh | grep -vE '^cf_|^my' | md5sum`
   echo cfx_md5=\'$cf_md5\' >> config.sh

This yields a checksum value that reflects the given config_args, and
all the platform details its being built upon.  The checksum is
sensitive to the platform, despite dropping myarchname, via the
contents of cppsymbols, incpth, plibpth, gccversion, etc.

Further, with the cfx_md5 appended to config.sh as shown above, the
resulting %Config will have it, making it available for installation
tools to use.

      $ ./perl -Ilib -V:cfx_md5:
      cfx_md5='37e040a516936d31d0e049d95ad66b68 -'

So this is a small step towards adding -k<checksum> into the perl
executable's name, and into its @INC paths.

NOTES:

1- tested by tweaking Configure, appending to config.sh, building, and
   verifying `./perl -Ilib -V:cfx_md5:`.  Patched blindly into
   metaconfig units.

2- no >> config.sh actually done here, there might be a better way..

3- cfx_md5 could have a better name (subject to bikeshedding),
   md5 says nothing about what is included in the calculation.

4- multiple cfx_*, each with different subsets of `cat config.sh`,
   could define different "equivalent configs".

   For example:
   cfx_cfargs=`grep config_args config.sh | md5sum`
   echo cfx_cfargs=\'$cfx_cfargs\' >> config.sh

   cfx_cfargs would neatly map the ~16 Test-Smoke configs to a small
   set of unique and eventually recognizable [0-9a-f]{3,5} key-fragments.

   cfx_md5 as given above would define comparable builds;
   Porting/bench.pl performance results from 2 platforms with
   identical keys should have similar results
---
 U/modified/Config_sh.U | 10 +++++-----
 dist/U/Config_sh.U     | 10 +++++-----
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/U/modified/Config_sh.U b/U/modified/Config_sh.U
index 2bbcf1b..c9d884b 100644
--- a/U/modified/Config_sh.U
+++ b/U/modified/Config_sh.U
@@ -112,11 +112,11 @@ $startsh
 # instead choose to run each of the .SH files by yourself, or "Configure -S".
 #
 
-# Package name      : $package
-# Source directory  : $src
-# Configuration time: $cf_time
-# Configured by     : $cf_by
-# Target system     : $myuname
+#: Package name      : $package
+#: Source directory  : $src
+#: Configuration time: $cf_time
+#: Configured by     : $cf_by
+#: Target system     : $myuname
 
 EOT
 ?X: Command line options are saved by the Options.U unit in the
diff --git a/dist/U/Config_sh.U b/dist/U/Config_sh.U
index bb47b7b..a46b9f3 100644
--- a/dist/U/Config_sh.U
+++ b/dist/U/Config_sh.U
@@ -96,11 +96,11 @@ $startsh
 # instead choose to run each of the .SH files by yourself, or "Configure -S".
 #
 
-# Package name      : $package
-# Source directory  : $src
-# Configuration time: $cf_time
-# Configured by     : $cf_by
-# Target system     : $myuname
+#: Package name      : $package
+#: Source directory  : $src
+#: Configuration time: $cf_time
+#: Configured by     : $cf_by
+#: Target system     : $myuname
 
 EOT
 ?X: Command line options are saved by the Options.U unit in the
-- 
2.7.4

@p5pRT
Copy link
Author

p5pRT commented Jun 28, 2016

From @jkeenan

On Sat Jun 25 13​:57​:13 2016, yoduh wrote​:

Subject​: noise-free config.sh checksums
Message-Id​: <5.25.3_10346_1466885971@​buffy.jimc.earth>
To​: perlbug@​perl.org
From​: jim.cromie@​gmail.com
Reply-To​: jim.cromie@​gmail.com

This is a bug report for perl from jim.cromie@​gmail.com,
generated with the help of perlbug 1.40 running under perl 5.25.3.

-----------------------------------------------------------------
[Please describe your issue here]

The header info in config.sh currently has a number of fields whose
values are unconstrained and essentially random​: ($cf_time, $cf_by,
$cf_email, $myuname).

# Package name : perl5
# Source directory : .
# Configuration time​: Fri Aug 28 21​:09​:08 MDT 2015
# Configured by : jimc
# Target system : linux groucho.jimc.earth
4.2.0-rc7-x2a-00125-gd0b89bd #278 smp sat a
ug 22 13​:35​:17 mdt 2015 x86_64 x86_64 x86_64 gnulinux

The presence of these cf_* fields means that `md5sum config.sh` output
is all noise; otherwize identical builds done at different times by
different users will have different checksums.

So this patch tweaks Configure (or rather 2 configure units - only 1
is needed, git add -i the desired chunk) to mark those problematic
lines with a leading '#​:', making them easy to exclude from a
grep|cksum calculation.

cfx_md5=`grep -v '^#​:' config.sh | grep -vE '^cf_|^my' | md5sum`
echo cfx_md5=\'$cf_md5\' >> config.sh

So this is a small step towards adding -k<checksum> into the perl
executable's name, and into its @​INC paths.

NOTES​:

1- tested by tweaking Configure, appending to config.sh, building, and
verifying `./perl -Ilib -V​:cfx_md5​:`. Patched blindly into
metaconfig units.

2- no >> config.sh actually done here, there might be a better way..

3- cfx_md5 could have a better name (subject to bikeshedding),
md5 says nothing about what is included in the calculation.

4- multiple cfx_*, each with different subsets of `cat config.sh`,
could define different "equivalent configs".

For example​:
cfx_cfargs=`grep config_args config.sh | md5sum`
echo cfx_cfargs=\'$cfx_cfargs\' >> config.sh

cfx_cfargs would neatly map the ~16 Test-Smoke configs to a small
set of unique and eventually recognizable [0-9a-f]{3,5} key-fragments.

cfx_md5 as given above would define comparable builds;
Porting/bench.pl performance results from 2 platforms with
identical keys should have similar results

1. There are two attachments to this RT. However, they appear to be exactly the same -- correct?

2. The patches are not drawn against the Perl 5 core distribution, so my hunch is that they're drawn against metaconfig. So they need to be evaluated by people with that system; bcc-ing some likely experts.

3. You wrote, "So this is a small step towards adding -k<checksum> into the perl executable's name, and into its @​INC paths." Is that a goal that we (P5P) have set for ourselves? If not, should we? Discuss.

Thank you very much.
Jim Keenan

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags​:
category=core
severity=low
---
Site configuration information for perl 5.25.3​:

Configured by jimc at Sat Jun 25 06​:51​:35 MDT 2016.

Summary of my perl5 (revision 5 version 25 subversion 3)
configuration​:
Local Commit​: 34091a802e8ba014b1260cb5a216c48e0282fa6f
Ancestor​: 3957d52baeb5e1bbf9b604a39b98e29377008675
Platform​:
osname=linux
osvers=4.5.6-300.fc24.x86_64
archname=x86_64-linux
uname='linux buffy.jimc.earth 4.5.6-300.fc24.x86_64 #1 smp wed jun
1
21​:29​:58 utc 2016 x86_64 x86_64 x86_64 gnulinux '
config_args='-des -DDEBUGGING -Dusedevel -Accflags=-DPERL_MEM_LOG
-DPERL_TRACE_OPS'
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 ='-DPERL_MEM_LOG -DPERL_TRACE_OPS -fwrapv -DDEBUGGING
-fno-strict-aliasing -pipe -fstack-protector-strong
-I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
optimize='-O2 -g'
cppflags='-DPERL_MEM_LOG -DPERL_TRACE_OPS -fwrapv -DDEBUGGING
-fno-strict-aliasing -pipe -fstack-protector-strong
-I/usr/local/include'
ccversion=''
gccversion='6.1.1 20160510 (Red Hat 6.1.1-2)'
gccosandvers=''
intsize=4
longsize=8
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=16
longdblkind=3
ivtype='long'
ivsize=8
nvtype='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries​:
ld='cc'
ldflags =' -fstack-protector-strong -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib /lib/../lib64 /usr/lib/../lib64
/lib
/lib64 /usr/lib64 /usr/local/lib64
libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
-lgdbm_compat
perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.23.so
so=so
useshrplib=false
libperl=libperl.a
gnulibc_version='2.23'
Dynamic Linking​:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags='-Wl,-E'
cccdlflags='-fPIC'
lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-
strong'

Locally applied patches​:
28d629a
e10f6b3
8183f68
d7d0a5d
1984967
4368ade
76975f2
e40834e
31b1998
19d6c38
5068f26
b8b4155
ab462c7
9a10913
319b236
a95b3d6
8c13e94
2163b70
2640dfa
7e69463
de1003b
f3dd6ba
8a035c8
730ddfe
ee59ac1
b011e69
aec451e
6f30c26
255a3e7
fa44d96
86ee672
9baa246
fff2d93
2ed1f60
e34630b
e42cacf
2f7cab8
74c0b71
1b1e331
5290b67
e52682c
6d46ab2
45cc06e
30914c1
8a355c1
d9262b3
3cfebac
bb9879d
ca463a0
420b564
1a8aefe
10d36cf
6d08d01
01f58bc
1bbb094
e7fffa3
6bbd724
5f58a6b
a21b01b
9a21f3b
03ea422
4a9f92e
9e10bfd
4f8325b
fac0c35
656a5b9
be2c0c6
c02894f
4b8803f
35f11c1
dc1a9c2
557e6e6
c800d8b
2c5484a
2bd5e57
0302547
4170737
b74f9bc
3a985a4
8fc1253
0f51bd1
51f69a2
8df928d
fd2f778
b82bf1a
fe427a6
61463a3
b3632c7
acab242
60108b4
a27615d
1656665
4ee010a
534dad4
393aa92
ba99dae
bb0f664
d35fca5
8fe07b3
f38527b
23695c0
83a177d
e71f25b
f54530a
6a810bd
cf6c814
e5000e0
1bda7a7
da7cf1c
5fb4138
9cdec13
614273a
a52f2cc
5bad2b3
09cfff4
add9356
a2c3b2f
55701e3
6b3eaab
fcd1306
2fc8e8b
b25b06c
b451492
ec35cd4
c60f344
f914a2b
19fc296
dc09fdd
26acb4d
1be7e5f
556343f
2d825fd
52de5f3
5ff52e3
da8a449
1f207a9
3f1866a
3d9637d
fb24590
b8070b0
956f01a
5d32d26
4e49963
bf1007b
adec5bb
bf47000
396ce25
1c00b88
f15d058
1ec2b02
2e6807b
01602aa
8e5993c
59a14f3
60a26c7
7f1bd06
073051a
c7cd1ed
e8164ee
2f7a15b
7ede3c4
9d293dd
0533ae6
bfea061
0f5c582
8255316
94b9cb5
90bb05e
fd02503
05a6ec7
965f951
fdfa330
9cea1b1
a2b4240
a3b4b76
bd18aea
c04bead
decf70b
9a0b3f3
b40d1aa
1cb852d
a26223c
9ec9395
95ec88f
83c15bc
7a928d9
fe43a9c
acfbe60
f861ba6
dc26b61
69e7f50
38c8d7b
0927ade
0057672
94f9945
c349280
68aa512
72e1194
24963b0
05465a2
e57ea7c
5db4618
16a77b2
b250cf0
ea319c8
6af6e59
63dcbd3
9e17953
7832ad8
d674449
4de751a
9cd3bbf
69ab4fe
fef6692
482e441
08f800f
f8591e0
970ebd6
1d6c37f
38fe8a0
cb5e83e
9e08bfd
001761d
7d376cf
463bbb8
f7a1e8f
a7efcf7
5b145eb
3d809c3
63c81c3
efdbe37
1e2ea6f
5ad9992
a061ab0
cc5f9b8
65985bd
738155d
60e04ba
4be1619
8f7d85a
32e7f21
06c4bad
c2c3605
db62956
a55ca2c
47011d9
89e2fe5
5ea3460
29e10d3
d88ca56
8810188
8147793
73665bc
f7ce57d
01bbc29
bea284c
cd64240
09783a0
5cb51e4
118a40c
76734a3
28383d1
c534415
4970644
397c43d
09eb1f3
1381bea
adff8e6
5f602b3
f2b9631
4cb26c5
d7244c9
8687a6e
31f7d6b
f68c540
ad01aea
f17bc91
4e615ab
00bf60c
165a1c5
59c018b
6696cfa
4ebeff1
3c5f993
c664130
79f120c
ff52fcf
a4a439f
78d5797
2fcc0ca
55e5378
58eebef
6ddd902
17f4103
81547f2
227883e
b9f119b
cbef69c
a73158a
1ee983f
27cdc72
2c0879e
c389e68
e67bc19
c29dfc6
e9baa58
c97f388
1f44a80
c429f8e
997990f
d54f4ed
18d04e7
fbe0543
58818a6
4694301
4911bc4
bdc905d
6830146
d2bccf1
ad1bab9
3ecb55d
bd4dc88
bc900e4
ef55c67
198aaf3
e7127e2
cc93473
37808b0
21866d1
f71079d
9c88bb5
e2733f9
59f30b2
4d092e9
404b28f
bd9daf5
33d95a6
0a44e30
6667f48
1e83449
1ab3373
3b17061
f3fccad
ebb13b5
aad46ae
af4a745
e6404dc
078428f
98b8e36
514e62e
c6a6e1c
e17bc05
2cd7944
6432086
2104c69
1ba1157
ee072c8
8c47236
7eec73e
0bf54b1
88bd750
596f771
5e21a9a
016af03
5a0de58
7720b61
e4fc708
1a3e972
79409ac
7351909
33a1032
31b6f23
81b22c1
706d6f2
222c4b0
5347602
f871eec
b1d776c
ad96436
a1e5c56
756a1fc
43faffb
971f6fb
4ef6d38
2429375
a9eceb2
955a736
d54523c
c385646
1a961f9
32dfbb3
44b1835
857716c
60858fe
8a094fe
3f6b66c
f328551
3735683
0de6c76
3bcfc7b
9ed2d9d
e23397c
0bac45c
8dd2ecb
8fe4bbc
69b63ee
9f99f3e
a1b6998
8165798
b20d3b8
6405d2e
a139980
8e84dec
e171168
51e3e8c
ec5bd22
62ba638
12cb3c0
2901a58
f72f2c0
3b58a01
d60db39
29002db
d097119
18940b1
c04c2bf
2d41a26
ba3530a
683433b
bf89478
d52d06a
3235657
93e53d6
e388eaf
90a4dab
7984aa2
8c3f6b0
d3cf57b
d6e0ab9
e340d4b
3864116
5c427e6
228bfab
a0e0fa2
c338e23
143048c
7674498
00ac85b
bf49eae
94e22bd
17529fa
4827ac7
e6da2a9
55b6481
c0c2b30
e7acdfe
21a5c8d
c92b26e
4e058f4
b6c0faa
6295dc1
b0e2440
f2bfbac
a49fc7b
13e1fc6
6c50b67
8bf4c40
3dfcef7
8175977
8bbcf42
9d0d763
1b3df0e
d3ac935
10f94ef
59fe598
9e5cda6
12e0223

---
@​INC for perl 5.25.3​:
lib
/usr/local/lib/perl5/site_perl/5.25.3/x86_64-linux
/usr/local/lib/perl5/site_perl/5.25.3
/usr/local/lib/perl5/5.25.3/x86_64-linux
/usr/local/lib/perl5/5.25.3
/usr/local/lib/perl5/site_perl
.

---
Environment for perl 5.25.3​:
HOME=/home/jimc
LANG=en_US.UTF-8
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)

PATH=/usr/lib64/qt-
3.3/bin​:/usr/lib64/ccache​:/usr/local/bin​:/usr/local/sbin​:/usr/bin​:/usr/sbin​:/home/jimc/.local/bin​:/home/jimc/bin
PERL_BADLANG (unset)
SHELL=/bin/bash

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jun 28, 2016

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

@p5pRT
Copy link
Author

p5pRT commented Jun 28, 2016

From @jimc

1. There are two attachments to this RT. However, they appear to be
exactly the same -- correct?

glad theyre exact - they should be -
I didnt see the 1st succeed. I probly didnt wait long enough.

2. The patches are not drawn against the Perl 5 core distribution, so my
hunch is that they're drawn against metaconfig. So they need to be
evaluated by people with that system; bcc-ing some likely experts.

true - I could have patched Configure
but that leaves more work for Tux or someone else busy.

3. You wrote, "So this is a small step towards adding -k<checksum> into
the perl executable's name, and into its @​INC paths." Is that a goal that
we (P5P) have set for ourselves? If not, should we? Discuss.

I almost removed that bit, to defer controversy.

recently, these were added to make it easier to find differences
between 2 given builds; now diff Conf-a Conf-b
will show line by line whats different.

8dd2ecb perl -V​: make configuration one per line
0bac45c perl -V​: make 'Compile-time options' one per line

the opposite is also true, it would be nice to know when 2 configs are
identical;
with the time, date, builder-name, uname -a built into config
2 otherwize identical builds, done seconds apart,
will fail to be checksum equivalent,
diff -q a b > /dev/null will return 1 (not 0)
so its not trivial to check via script

this patch is the smallest step I could take,
I didnt want to actually remove the info contained here

#= Package name : perl5
#= Source directory : .
#= Configuration time​: Sat Jun 25 06​:51​:35 MDT 2016
#= Configured by : jimc
#= Target system : linux buffy.jimc.earth 4.5.6-300.fc24.x86_64 #1 smp
wed j
un 1 21​:29​:58 utc 2016 x86_64 x86_64 x86_64 gnulinux

so I chose to mark it such that its easy to exclude from a checksum
computation.
if that checksum is done like so​:

  cfx_md5=`grep -v '^#=' config.sh | grep -vE '^cf_|^my' | md5sum`
  echo cfx_md5=\'$cf_md5\' >> config.sh

then cfx_md5 will change only rarely for a given config_args value
on a single box, probably only changing when CC or system libraries are
updated

supposing that cfx_md5 is unchanging for 2 months on a box,
that means that Porting/bench.pl --write results are comparable
for performance regressions (or progressions) over that period (on that
box).

it might also be true that 2 '-des -Usedevel' builds of blead on 2
fedora-24 boxes
will have identical cfx_md5. if those 2 boxes have i3 and i7 cpus, the
results
are not comparable - but `cksum /proc/cpuinfo` could solve that,
and results from your box and mine might then be comparable.

so if --write results can be grouped by one or more of
-g<commit> -k<conf-md5> -m<mem-hash> -p<cpu-hash>

then we can compute std-deviations on sets of results
defined by various constellations of these values,
the larger sets should have larger std-devs

thats all pretty distant and speculative,
and it sounds a bit underwhelming as expressed above,
but then Ive only tweaked 5 line of 'comments'

-jimc

Thank you very much.
Jim Keenan

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

3 participants