[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22354: Test failure when running distcheck from out-of-tree build
From: |
Taylan Ulrich Bayırlı/Kammer |
Subject: |
bug#22354: Test failure when running distcheck from out-of-tree build |
Date: |
Wed, 13 Jan 2016 10:00:55 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
address@hidden (Ludovic Courtès) writes:
> address@hidden (Taylan Ulrich "Bayırlı/Kammer") skribis:
>
>> address@hidden (Ludovic Courtès) writes:
>>
>>> address@hidden (Taylan Ulrich "Bayırlı/Kammer") skribis:
>>>
>>>> If one runs distcheck from within the build directory of an out-of-tree
>>>> build (perhaps a strange combination), the guix-environment.sh test
>>>> fails with the following log snippet.
>>>
>>> [...]
>>>
>>>> ./configure: ./config.status:
>>>> /home/taylan/src/guix/build/guix-0.9.1/_build/sub/test-tmp/store/d41iyl2gyk0r:
>>>> bad interpreter: No such file or directory
>>>
>>> I think you’re hitting the shebang limit (127 chars) that prevents you
>>> from running test from that build tree. ./configure emits a warning in
>>> this case, which you should see in ‘config.log’.
>>>
>>> So, not a bug, but it would have been nicer if ‘make check’ had failed
>>> directly. Commit bb25130 does that.
>>>
>>> Though now that I look again at the error above, I see that we’re below
>>> the 127 char limit. Weird.
>>
>> Hmm, that commit didn't fix the issue.
>
> You mean it doesn’t error out directly upon ‘make check’? Could you
> run “grep length …/_build/config.log”?
Yes, it still goes through the tests and fails at guix-environment.sh
with the same error. I repeated all steps from a new clone of master.
address@hidden:~/src/guix/build$ grep length guix-0.9.1/_build/sub/config.log
configure:6946: checking the length of the installed socket file name
configure:6969: checking the length of the socket file name used in tests
configure:6980: checking the length of a typical hash bang line
configure:6992: checking the length of a hash bang line used in tests
ac_cv_guix_hash_bang_length=73
ac_cv_guix_socket_file_name_length=74
ac_cv_guix_test_hash_bang_length=127
ac_cv_guix_test_socket_file_name_length=90
>> I'm also puzzled by the cut-off of the shebang string at 77 characters
>> in the error message, so I looked into it a bit, but nothing strange
>> here from what I can tell: the ./configure of make-4.1 is called with
>> SHELL and CONFIG_SHELL set to
>>
>> /home/taylan/src/guix/build/guix-0.9.1/_build/sub/test-tmp/store/d41iyl2gyk0rwd9z2ddgph9nyg48f3p0-bootstrap-binaries-0/bin/bash
>>
>> which is exactly 127 characters, but add #! and you have 129. This ends
>> up being the shebang of config.status, which is why it fails while
>> trying to call that.
>
> So the diagnostic was correct.
>
>> Only the error message is broken.
>
> Would be interesting to see which is the piece of software that has an
> even lower limit here.
For what it's worth, I confirmed that on my system (Debian 8), using
/bin/bash (in case it should be relevant):
- the hash bang limit of a called script is 127 characters, and
- when I pass the limit, I get an error message where the path is
truncated to 77 characters.
Maybe it's something in Linux or in glibc. I don't know what other
parts of the system are involved here.
> Ludo’.
Taylan
bug#22354: Hash-bang line length, Ludovic Courtès, 2016/01/13
bug#22354: Hash-bang line length, Chet Ramey, 2016/01/13
bug#22354: Hash-bang line length, Ludovic Courtès, 2016/01/13