Re: [9/10 PATCH] Fix up filesystem libstdc++ exports for riscv64

2019-04-30 Thread Jonathan Wakely

On 30/04/19 13:35 +0200, Jakub Jelinek wrote:

On Tue, Apr 30, 2019 at 12:02:18PM +0100, Jonathan Wakely wrote:

> So, that indeed fails with -O0 -std=c++17 -Wl,--no-demangle
> https://paste.fedoraproject.org/paste/wvIxqaH37DYNn4b4Cfua~w
>
> Unfortunately, at least judging from the libstdc++*debug symbols on riscv64
> I've posted, it probably isn't just a matter of following, because while
> some symbols like that are in, most of them are not.


I've populated a riscv64-linux-gnu fedora sysroot and built a
cross-compiler, on which I've managed to reproduce it too.
The issue with seemingly missing STB_LOCAL symbols from the list I was
expecting is most likely due to -ffunction-sections -Wl,--gc-sections
way of how is libstdc++.so linked.

With the following patch they are now all included and the patch also
adjusts the riscv64 baseline to match that.

Ok for trunk/9.1?


OK, thanks very much.



[9/10 PATCH] Fix up filesystem libstdc++ exports for riscv64

2019-04-30 Thread Jakub Jelinek
On Tue, Apr 30, 2019 at 12:02:18PM +0100, Jonathan Wakely wrote:
> > So, that indeed fails with -O0 -std=c++17 -Wl,--no-demangle
> > https://paste.fedoraproject.org/paste/wvIxqaH37DYNn4b4Cfua~w
> > 
> > Unfortunately, at least judging from the libstdc++*debug symbols on riscv64
> > I've posted, it probably isn't just a matter of following, because while
> > some symbols like that are in, most of them are not.

I've populated a riscv64-linux-gnu fedora sysroot and built a
cross-compiler, on which I've managed to reproduce it too.
The issue with seemingly missing STB_LOCAL symbols from the list I was
expecting is most likely due to -ffunction-sections -Wl,--gc-sections
way of how is libstdc++.so linked.

With the following patch they are now all included and the patch also
adjusts the riscv64 baseline to match that.

Ok for trunk/9.1?

2019-04-30  Jakub Jelinek  

* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Change _Lock_policyE2 exports
to _Lock_policyE[012].
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.

--- libstdc++-v3/config/abi/pre/gnu.ver.jj  2019-04-30 10:55:31.118223843 
+0200
+++ libstdc++-v3/config/abi/pre/gnu.ver 2019-04-30 13:27:23.810663072 +0200
@@ -2234,17 +2234,17 @@ GLIBCXX_3.4.26 {
 _ZNSt10filesystem7__cxx1128recursive_directory_iteratoraSEOS1_;
 _ZNSt10filesystem7__cxx1128recursive_directory_iteratorppEv;
 
-
_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1Ev;
-
_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS4_;
-
_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS4_;
-
_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev;
-
_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_;
+
_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE[012]EEC1Ev;
+
_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE[012]EEC1EOS4_;
+
_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE[012]EEaSEOS4_;
+
_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE[012]EEC1Ev;
+
_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE[012]EEC1EOS5_;
 
-
_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1Ev;
-
_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_;
-
_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS5_;
-
_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev;
-
_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS6_;
+
_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE[012]EEC1Ev;
+
_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE[012]EEC1EOS5_;
+
_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE[012]EEaSEOS5_;
+
_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE[012]EEC1Ev;
+
_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE[012]EEC1EOS6_;
 
 # basic_ostream::operator<<(nullptr_t)
 _ZNSolsEDn;
--- libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt.jj  
2019-04-30 10:55:39.878083876 +0200
+++ libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt 
2019-04-30 13:27:50.897230866 +0200
@@ -2058,6 +2058,16 @@ FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
 FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
 FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
 FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEC1EOS5_@@GLIBCXX_3.4.26
+FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEC1Ev@@GLIBCXX_3.4.26
+FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE1EEC1EOS4_@@GLIBCXX_3.4.26
+FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE1EEC1Ev@@GLIBCXX_3.4.26
+FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE1EEaSEOS4_@@GLIBCXX_3.4.26
+FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEC1EOS6_@@GLIBCXX_3.4.26
+FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEC1Ev@@GLIBCXX_3.4.26
+FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE1EEC1EOS5_@@GLIBCXX_3.4.26