URL:
  <https://savannah.gnu.org/support/?111191>

                 Summary: libtool mistakes a directory as an executable
                   Group: GNU Libtool
               Submitter: tyan0
               Submitted: Wed 19 Feb 2025 11:37:27 PM UTC
                Category: None
                Priority: 5 - Normal
                Severity: 3 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email:
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: Microsoft Windows


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Wed 19 Feb 2025 11:37:27 PM UTC By: Takashi Yano <tyan0>
In cygwin mailing list, the maintainer of gdbm package reported test suite
failure in that package.
https://cygwin.com/pipermail/cygwin/2025-February/257349.html

I looked into this issue, and found the root cause is in libtool.
https://cygwin.com/pipermail/cygwin/2025-February/257416.html

A simple test case (reproducer.sh) is attached.

The expected output of the test case is:
Hello 1
Hello 2

However, with cygwin libtool, the output is:
Hello 1
127

This is caused because find_executable() returns the directory whose name is
the same as the target executable if it appears earlier in the environment
PATH. This issue arises from a bug in check_executable() that returns 1 for
the directory.

The patch (check-executable.patch) to fix this issue is attached. I confirmed
that both the test case attached, and gdbm test suite work as expected with
this patch.

This issue does not occur in Linux because these functions are not used for
some reason. I'm not sure what is the difference in cygwin and Linux.

Thanks in advance.






    _______________________________________________________
File Attachments:


-------------------------------------------------------
Name: reproducer.sh  Size: 399B
<https://file.savannah.gnu.org/file/reproducer.sh?file_id=56928>
-------------------------------------------------------
Name: check-executable.patch  Size: 429B
<https://file.savannah.gnu.org/file/check-executable.patch?file_id=56929>

    AGPL NOTICE

These attachments are served by Savane. You can download the corresponding
source code of Savane at
https://savannah.gnu.org/source/savane-513955078e56c124c506c834d031bbe09cbf4040.tar.gz

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/support/?111191>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to