Re: [PATCH] tests: feed -no-undefined when linking libtool libraries

"Gary V. Vaughan" <[email protected]>
Newsgroups gmane.comp.gnu.libtool.patches
Message-ID <[email protected]>
Hi Peter,

My bad, I'm embarrassed to say. I started to write a script to make the appropriate changes, but ended up doing it manually rather than adding more and more corner cases to the throwaway script... a poor choice in hindsight :-(

On 19 ก.ย. 2012, at 19:27, Peter Rosin <[email protected]> wrote:
> On 2012-09-19 11:26, Peter Rosin wrote:
>> On 2012-09-19 09:31, Peter Rosin wrote:
>>> * tests/runpath-in-lalib.at: Make sure shared libraries are created
>>> on Windows by passing -no-undefined. Otherwise libb.la fails to record
>>> a dependency on liba.la, and the final link of the program then fails
>>> with undefined symbols.
>>> 
>>> Signed-off-by: Peter Rosin <[email protected]>
>>> ---
>>> tests/runpath-in-lalib.at |    1 +
>>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>> 
>>> Ok to push?
>>> Or maybe the failure is deeper than this? Should libb.la record a
>>> dependency on liba.la even if libb.la is static only?
>> 
>> I likely is deeper, it seems this is a regression since 2.4.2.
> 
> I have bisected this regression to 962aa919f51cdf8e2cee4fb2d1d9bafa34d50887
> syntax-check: fix violations and implement sc_prohibit_test_const_follows_var.
> 
> I looked through that insanely huge patch and it was not fun. I did
> manage to find a couple of problems:
> 
> -    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
> +    if test yes = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
> 
> -        if test "$prev" = dlprefiles; then
> +        if test dlfiles = "$prev"; then
> 
> -        if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
> +        if test EXPORTS = "`$SED 1q $export_symbols`"; then
> 
> -if test "x[$]$2" = xyes; then
> +if test yes != "[$]$2"; then
> 
> However, my eyes must have glazed over because it is not enough to fix those
> bugs.

I guess my whole brain glazed over while I was checking and rechecking before pushing, so I'm not surprised.

> Comparing to master, I notice that:
> 
> * The export_symbols change has a fixup in
> b804ffabee2ce373d9bac6ae2b235ec68e0b55e8
> fixup: restore EXPORTS test
> * The "x[$]$2" change has a fixup in
> 11869b9c9eb8bcc8cb6a615141f522a447377324
> m4: fix logic error leading to -fno-rtti being added wrongly.
> 
> I have removed a long rant on my opinion of the offending patch, it
> would do no good anyway...

Thanks for finding it, and sparing me from the additional shame.

> Bottom line: More eyes needed on that patch!
> 
> Ok to push the below?

I think it will be safer to revert the broken patch, and then write a script to reapply those changes automatically as I should have done originally, and only then to merge the result back to head. If you hold off for a few days, I'll do that as penance for my sins when I get back to my computer.

But please hold on to your test case to verify that I've made a better job of things on the do over.

> Cheers,
> Peter

Cheers,
-- 
Gary V. Vaughan (gary AT gnu DOT org)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.