I am trying to revive my OpenIndiana VM in the QA Farm and I'm confused. I'd
really appreciate help from someone who cares about PCP and knows about
building and packaging software for OpenIndiana ... are you out there, someone?
Specifically, as of oi 2016.04 (and the apparent gcc toolchain switch for the
kernel) on a x86_64 CPU, I seem to have the following matrix of object formats
to pick from ...
{ suncc, gcc } x { i386, x86_64 }
and it seems that all spots in the matrix are occupied with stuff I might care
about ...
kenj@vm13:~/src/pcp/qa$ find /usr/bin /usr/gnu -name grep | xargs file
/usr/bin/grep: ELF 32-bit LSB executable 80386 Version 1, dynamically linked,
not stripped, no debugging information available
/usr/gnu/bin/grep: ELF 32-bit LSB executable 80386 Version 1, dynamically
linked, not stripped
/usr/gnu/bin/amd64/grep: ELF 64-bit LSB executable AMD64 Version 1,
dynamically linked, not stripped, no debugging information available
kenj@vm13:~/src/pcp/qa$ find /usr/bin /usr/gnu -name ps | xargs file
/usr/bin/amd64/ps: ELF 64-bit LSB executable AMD64 Version 1, dynamically
linked, not stripped, no debugging information available
/usr/bin/i86/ps: ELF 32-bit LSB executable 80386 Version 1, dynamically
linked, not stripped, no debugging information available
/usr/bin/ps: ELF 32-bit LSB executable 80386 Version 1, dynamically linked,
not stripped, no debugging information available
and for extra credit there are 4 versions of ld(1) ...
kenj@vm13:~/src/pcp/qa$ find /usr/bin /usr/gnu -name ld -type f | xargs file
/usr/bin/amd64/ld: ELF 64-bit LSB executable AMD64 Version 1, dynamically
linked, not stripped, no debugging information available
/usr/bin/ld: ELF 32-bit LSB executable 80386 Version 1, dynamically linked,
not stripped, no debugging information available
/usr/gnu/i386-pc-solaris2.11/bin/ld: ELF 32-bit LSB executable 80386 Version
1, dynamically linked, not stripped
/usr/gnu/bin/ld: ELF 32-bit LSB executable 80386 Version 1, dynamically
linked, not stripped
(I know the /usr/bin/gnu stuff _really_ means it is GNU-based source, rather
than Solaris-based source, but I'll bet all the binaries here were built with
gcc).
And uname reports ...
kenj@vm13:~/src/pcp/qa$ uname -a
SunOS vm13 5.11 illumos-f83b46b i86pc i386 i86pc Solaris
but the kernel is demonstrably 64-bit
kenj@vm13:~/src/pcp/qa$ sudo pminfo -L hinv.ncpu
pmdasolaris: /dev/ksyms is not a 32-bit kernel namelist
hinv.ncpu
So what are we supposed to build for PCP ...
1. 64-bit pmdasolaris is needed for 64-bit kernels, but 32-bit pmdasolaris is
needed for 32-bit kernels
2. and since pmdasolaris is used as a DSO, the same applies to pmcd
3. and all the other PMDAs that are built as DSOs
4. and dbpmda
5. and that means most of the PCP libraries also
Do we need 32-bit _and_ 64-bit libraries and commands in a single build, or
different 32-bit and 64-bit packages for 32-bit or 64-bit platforms?
|