Re: [PATCH] Fix build with binutils-2.22

Subject: Re: [PATCH] Fix build with binutils-2.22

Date: Fri, 16 Dec 2011 07:43:58 +0200

To: Thomas Jost, notmuch@notmuchmail.org

Cc:

From: Tomi Ollila


On Thu, 15 Dec 2011 20:41:58 +0100, Thomas Jost <schnouki@schnouki.net> wrote:
> binutils-2.22 changes the behaviour of ld by defaulting to
> --no-copy-dt-needed-entries, which means that required objects/libs are not
> "indirectly" linked through intermediate objects/libs anymore. As a consequence,
> when using binutils-2.22, building symbol-test fails with the following error:
> 
>     /usr/bin/ld: test/symbol-test.o: undefined reference to symbol
>     'std::basic_string<char, std::char_traits<char>, std::allocator<char>
>     >::~basic_string()@@GLIBCXX_3.4'
> 
>     /usr/bin/ld: note: 'std::basic_string<char, std::char_traits<char>,
>     std::allocator<char> >::~basic_string()@@GLIBCXX_3.4' is defined in DSO
>     /usr/lib/libstdc++.so.6 so try adding it to the linker command line
> 
>     /usr/lib/libstdc++.so.6: could not read symbols: Invalid operation
> 
> An easy fix is to link using CXX instead of CC.
> ---

+1 -- LGTM, Works for me (hits also on Fedora 15). Interesting that gcc
does not fully default to g++ behaviour when source file is symbol-test.cc

Tomi

> Hi there,
> 
> This build issue happens on Arch Linux. For more details, the relevant binutils
> changelog is here: http://ur1.ca/6px8j, and more explanations are available on
> the Fedora wiki: https://fedoraproject.org/wiki/UnderstandingDSOLinkChange
> (People who read the arch-general ML may want to read the thread starting at
> id:"1323458274-sup-9064@eris".)
> 
> Best regards,
> Thomas
> 
>  test/Makefile.local |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/test/Makefile.local b/test/Makefile.local
> index 6cb6c82..fa2df73 100644
> --- a/test/Makefile.local
> +++ b/test/Makefile.local
> @@ -17,7 +17,7 @@ $(dir)/smtp-dummy: $(smtp_dummy_modules)
>  	$(call quiet,CC) $^ -o $@
>  
>  $(dir)/symbol-test: $(dir)/symbol-test.o
> -	$(call quiet,CC) $^ -o $@ -Llib -lnotmuch -lxapian
> +	$(call quiet,CXX) $^ -o $@ -Llib -lnotmuch -lxapian
>  
>  .PHONY: test check
>  
> -- 
> 1.7.8
> 
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
> 

Thread: