Patchwork PATCH: PR libstdc++/45863: [4.6 regression] FAIL: libstdc++-abi/abi_check

login
register
mail settings
Submitter Rainer Orth
Date Oct. 4, 2010, 6:06 p.m.
Message ID <yddbp79de85.fsf@manam.CeBiTec.Uni-Bielefeld.DE>
Download mbox | patch
Permalink /patch/66715/
State New
Headers show

Comments

Rainer Orth - Oct. 4, 2010, 6:06 p.m.
Hi Paolo,

>> The pvs change in scripts/extract_symvers breaks Linux.  This patch
>> reverts it.  A different patch should be used instead. I am not familiar
>> with Solaris to make a suggestion.  OK for trunk?
>
> I would say let's give Rainer a few more hours to actually fix the issue for Solaris too: from Sat evening your local time you are cleared to commit this patch.

sorry for the mess: I don't have internet access during the weekend, so
I saw the mails only today.

The one Linux system we has doesn't have the LVM2 pvs, so I wouldn't
have noticed this even with testing there.

The following patch (against the originally installed extract_symvers)
should fix both issues (wrong pvs and missing quoting).  Tested by
manually running against libstdc++.so on Solaris 10/x86 and libc.so on
Linux/x86_64.  Regtest on both platforms (without the LVM2 pvs) in
progress.  It would be good if someone with access to a Linux
installation with the `wrong' pvs could test the patch, too.

Ok for mainline if testing passes?

	Rainer


2010-10-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libstdc++/45863
	* scripts/extract_symvers: Restore revision 164879.
	Guard against LVM2 pvs.
	Quote ${pvs}.
Paolo Carlini - Oct. 4, 2010, 6:16 p.m.
On 10/04/2010 08:06 PM, Rainer Orth wrote:
> Ok for mainline if testing passes?
If HJ can give the patch a try, it's fine with me.

Thanks,
Paolo.
H.J. Lu - Oct. 4, 2010, 11:34 p.m.
On Mon, Oct 4, 2010 at 11:06 AM, Rainer Orth
<ro@cebitec.uni-bielefeld.de> wrote:
> Hi Paolo,
>
>>> The pvs change in scripts/extract_symvers breaks Linux.  This patch
>>> reverts it.  A different patch should be used instead. I am not familiar
>>> with Solaris to make a suggestion.  OK for trunk?
>>
>> I would say let's give Rainer a few more hours to actually fix the issue for Solaris too: from Sat evening your local time you are cleared to commit this patch.
>
> sorry for the mess: I don't have internet access during the weekend, so
> I saw the mails only today.
>
> The one Linux system we has doesn't have the LVM2 pvs, so I wouldn't
> have noticed this even with testing there.
>
> The following patch (against the originally installed extract_symvers)
> should fix both issues (wrong pvs and missing quoting).  Tested by
> manually running against libstdc++.so on Solaris 10/x86 and libc.so on
> Linux/x86_64.  Regtest on both platforms (without the LVM2 pvs) in
> progress.  It would be good if someone with access to a Linux
> installation with the `wrong' pvs could test the patch, too.
>
> Ok for mainline if testing passes?
>
>        Rainer
>
>
> 2010-10-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
>
>        PR libstdc++/45863
>        * scripts/extract_symvers: Restore revision 164879.
>        Guard against LVM2 pvs.
>        Quote ${pvs}.
>
> diff -r fdb979422f7b libstdc++-v3/scripts/extract_symvers
> --- a/libstdc++-v3/scripts/extract_symvers      Fri Oct 01 11:58:21 2010 +0000
> +++ b/libstdc++-v3/scripts/extract_symvers      Mon Oct 04 19:59:51 2010 +0200
> @@ -31,7 +31,11 @@
>  if type pvs 2>&1 | grep 'not found' > /dev/null; then
>     :
>  else
> -    pvs="pvs -dsvo"
> +    # Linux may have a completely different pvs from LVM2, so make sure
> +    # we've got the right one.
> +    if pvs -dsvo ${lib} > /dev/null 2>&1; then
> +       pvs="pvs -dsvo"
> +    fi
>  fi

I think it is too fragile. Today, LVM2 pvs doesn't take -s. But it may change
in the future. You should verify it is on Solaris before using Solaris pvs.

Patch

diff -r fdb979422f7b libstdc++-v3/scripts/extract_symvers
--- a/libstdc++-v3/scripts/extract_symvers	Fri Oct 01 11:58:21 2010 +0000
+++ b/libstdc++-v3/scripts/extract_symvers	Mon Oct 04 19:59:51 2010 +0200
@@ -31,7 +31,11 @@ 
 if type pvs 2>&1 | grep 'not found' > /dev/null; then
     :
 else
-    pvs="pvs -dsvo"
+    # Linux may have a completely different pvs from LVM2, so make sure
+    # we've got the right one.
+    if pvs -dsvo ${lib} > /dev/null 2>&1; then
+	pvs="pvs -dsvo"
+    fi
 fi
 
 # GNU binutils, somewhere after version 2.11.2, requires -W/--wide to avoid
@@ -52,7 +56,7 @@ 
 
 # Prefer pvs if found.  Need to use nawk on Solaris 2 since Solaris 8/9 awk
 # (oawk) cannot handle sub.
-if [ -n ${pvs} ]; then
+if [ -n "${pvs}" ]; then
     ${pvs} ${lib} | \
     nawk '# Remove colon separator from version field, trailing semicolon.
 	 {