Dear GCC Help:
Well I am baffled on this one and just have to ask.
I have two systems that are nearly identical SPARC boxen running ye
old Solaris 10 and the only real difference is the processors. One of
them is old Niagara T2 class and the other is much much older UltraSPARC
class 2 ( UltraSPARC IIe ) from way way back in 2001. Bootstrap took a
full week. Yes really. However the results look vey good. I have much
newer M-class gear but anything compiled on an old SPARC will run on the
newer and they can be good to experiment with. In any case I have GCC
6.4.0 neatly bootstrapped and installed on both over the last week or
so. Strange result, one of them has libraires that are entirely missing
the ELF section for "Version Definition Section". Both were bootstrapped
with gcc 4.9.2.
Let me explain here with the data from the machine with the full data:
n0$ elfdump -v /usr/local/gcc6/lib/sparcv9/libstdc++.so.6.0.22
Version Definition Section: .SUNW_version
index version dependency
[1] libstdc++.so.6 [ BASE ]
[2] GLIBCXX_3.4
[3] GLIBCXX_3.4.1 GLIBCXX_3.4
[4] GLIBCXX_3.4.2 GLIBCXX_3.4.1
[5] GLIBCXX_3.4.3 GLIBCXX_3.4.2
[6] GLIBCXX_3.4.4 GLIBCXX_3.4.3
[7] GLIBCXX_3.4.5 GLIBCXX_3.4.4
[8] GLIBCXX_3.4.6 GLIBCXX_3.4.5
[9] GLIBCXX_3.4.7 GLIBCXX_3.4.6
[10] GLIBCXX_3.4.8 GLIBCXX_3.4.7
[11] GLIBCXX_3.4.9 GLIBCXX_3.4.8
[12] GLIBCXX_3.4.10 GLIBCXX_3.4.9
[13] GLIBCXX_3.4.11 GLIBCXX_3.4.10
[14] GLIBCXX_3.4.12 GLIBCXX_3.4.11
[15] GLIBCXX_3.4.13 GLIBCXX_3.4.12
[16] GLIBCXX_3.4.14 GLIBCXX_3.4.13
[17] GLIBCXX_3.4.15 GLIBCXX_3.4.14
[18] GLIBCXX_3.4.16 GLIBCXX_3.4.15
[19] GLIBCXX_3.4.17 GLIBCXX_3.4.16
[20] GLIBCXX_3.4.18 GLIBCXX_3.4.17
[21] GLIBCXX_3.4.19 GLIBCXX_3.4.18
[22] GLIBCXX_3.4.20 GLIBCXX_3.4.19
[23] GLIBCXX_3.4.21 GLIBCXX_3.4.20
[24] GLIBCXX_3.4.22 GLIBCXX_3.4.21
[25] CXXABI_1.3
[26] CXXABI_1.3.1 CXXABI_1.3
[27] CXXABI_1.3.2 CXXABI_1.3.1
[28] CXXABI_1.3.3 CXXABI_1.3.2
[29] CXXABI_1.3.4 CXXABI_1.3.3
[30] CXXABI_1.3.5 CXXABI_1.3.4
[31] CXXABI_1.3.6 CXXABI_1.3.5
[32] CXXABI_1.3.7 CXXABI_1.3.6
[33] CXXABI_1.3.8 CXXABI_1.3.7
[34] CXXABI_1.3.9 CXXABI_1.3.8
[35] CXXABI_1.3.10 CXXABI_1.3.9
[36] CXXABI_TM_1
Version Needed Section: .SUNW_version
index file version
[37] libm.so.2 SUNW_1.2
[38] SUNW_1.1 [ INFO ]
[39] librt.so.1 SUNW_0.7
[40] libgcc_s.so.1 GCC_3.0 [ INFO ]
[41] GCC_3.3 [ INFO ]
[42] GCC_3.4 [ INFO ]
[43] GCC_4.2.0
[44] libc.so.1 SUNW_1.22
[45] SUNW_1.18 [ INFO ]
[46] SUNW_1.1 [ INFO ]
[47] SUNW_0.9 [ INFO ]
[48] SUNW_0.7 [ INFO ]
[49] SUNWprivate_1.1
n0$
That looks beautiful.
On the older system I am given very little :
mimas$ elfdump -v /usr/local/gcc6/lib/sparcv9/libstdc++.so.6.0.22
Version Needed Section: .SUNW_version
index file version
[2] libm.so.2 SUNW_1.2
[3] SUNW_1.1 [ INFO ]
[4] librt.so.1 SUNW_0.7
[5] libgcc_s.so.1 GCC_3.0 [ INFO ]
[6] GCC_3.3 [ INFO ]
[7] GCC_3.4 [ INFO ]
[8] GCC_4.2.0
[9] libc.so.1 SUNW_1.22
[10] SUNW_1.18 [ INFO ]
[11] SUNW_1.1 [ INFO ]
[12] SUNW_0.9 [ INFO ]
[13] SUNW_0.7 [ INFO ]
[14] SUNWprivate_1.1
mimas$
That's all there is. No "Version Definition Section" at all.
I took the libstdc++.so.6.0.22 file with all the goodness in it and
copied it over to the machine that was lacking just to verify that there
wasn't a tools issue with elfdump or something. Nope. No such luck.
The file with the "Version Definition Section" is correct and travels
with it where ever it goes. So it isn't elfdump or its brethern.
This is baffling since the libgcc_c.so.1 is perfect on both machines :
mimas$ elfdump -v /usr/local/gcc6/lib/sparcv9/libgcc_s.so.1
Version Definition Section: .SUNW_version
index version dependency
[1] libgcc_s.so.1 [ BASE ]
[2] GCC_3.0
[3] GCC_3.3 GCC_3.0
[4] GCC_3.3.1 GCC_3.3
[5] GCC_3.4 GCC_3.3.1
[6] GCC_3.4.2 GCC_3.4
[7] GCC_3.4.4 GCC_3.4.2
[8] GCC_4.0.0 GCC_3.4.4
[9] GCC_4.2.0 GCC_4.0.0
[10] GCC_4.3.0 GCC_4.2.0
[11] GCC_4.7.0 GCC_4.3.0
Version Needed Section: .SUNW_version
index file version
[12] libc.so.1 SUNW_1.1
[13] SUNW_0.9 [ INFO ]
[14] SUNW_0.7 [ INFO ]
mimas$
Any hints at all ? Should I even care in the least degree ?
Dennis