bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#27866: Handle clang's internal libraries when finding compiler's int


From: Martin Storsjö
Subject: bug#27866: Handle clang's internal libraries when finding compiler's internal libraries
Date: Sun, 15 May 2022 23:21:35 +0300 (EEST)

On Sun, 15 May 2022, Alex Ameen wrote:

Earlier this week I read through the thread, and created a patch based on the ones posted. This was checked if you would like to experiment with it.

What I did notice was that this change has a wider effect than the problem statement initially suggests. I'm not crazy about the way it has a conditional behavior for two specific libraries since it is an ad-hoc solution directed at two compiler-collections, as opposed to a general purpose solution; but for the time being I see this as a practical change.

As a side effect this change should also resolve issues with certain flag-specs such as `-fsanitize' which is nice; but the impact of unknown side effects is something I expect will rear its head in the near future. With that in mind, I think this is a necessary change, but I want to express up front that "I'm confident this will break a lot of existing builds, and I consider this to be a first draft".

I would greatly appreciate y'all taking this for a spin on any available projects you have to get a sense of how it will behave "in the field". This change really effects "unspecified behavior" that the test-suite isn't designed to audit, but nonetheless has a practical effect on users.

Thanks!

I tested this now, and it doesn't work quite as is - it needs this modification:

diff --git a/m4/libtool.m4 b/m4/libtool.m4
index ab5af335..9c084816 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -7554,7 +7554,7 @@ if AC_TRY_EVAL(ac_compile); then
   for p in `eval "$output_verbose_link_cmd"`; do
     case $prev$p in

-    -L* | -R* | -l* | */clang_rt*.a)
+    -L* | -R* | -l* | */libclang_rt*.a)
        # Some compilers place space between "-{L,R}" and the path.
        # Remove the space.
        if test x-L = "$p" ||

(This was correct in one out of two instances in 1d2577357ee704da2d6d7c7da119ad82ba8ca172.)

With that changed, it does seem to work as it should for me on a test project.

// Martin






reply via email to

[Prev in Thread] Current Thread [Next in Thread]