adoptium / adoptium/infrastructure
Ansible request for AIX: Correct libc++ runtime environment.
- Dominant language
- Python
- Stars
- 96
- Forks
- 106
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 13
Description
- Historically, the builds requiring xlc16 (e.g., openj9) have also added two OSS packages: `libgcc` and `libgcc8`.
- These were needed because the (beta/GA) release of xlc16 - did not have the rte library package `libc++.rte`.
- This library is provided by IBM, both in the xlC16 package, as in a separate 'runt-time-only' package.
- As, such, NOT using the IBM provided library (in particular `libatomic.a`) may introduce unexpected issues.
- [x] Missing install
- [x] Bug in ansible playbook
- [ ] Request for new playbook addition
Details:
Current:
```
p159a01:/ # rpm -qa | grep gcc
libgcc-8-1.ppc
libgcc8-8.3.0-4.ppc
p159a01:/ # rpm -ql libgcc
/opt/freeware/lib/libatomic.a
/opt/freeware/lib/libgcc_s.a
/opt/freeware/lib/pthread/libatomic.a
/opt/freeware/lib/pthread/libgcc_s.a
/opt/freeware/lib/pthread/ppc64/libatomic.a
/opt/freeware/lib/pthread/ppc64/libgcc_s.a
/opt/freeware/lib64/libatomic.a
/opt/freeware/lib64/libgcc_s.a
p159a01:/ # rpm -ql libgcc8
/opt/freeware/doc/libgcc8-8.3.0
/opt/freeware/doc/libgcc8-8.3.0/COPYING
/opt/freeware/doc/libgcc8-8.3.0/COPYING.LIB
/opt/freeware/doc/libgcc8-8.3.0/COPYING3
/opt/freeware/doc/libgcc8-8.3.0/COPYING3.LIB
/opt/freeware/lib/gcc
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/libatomic.a
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/libgcc_s.a
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/ppc64
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/ppc64/libatomic.a
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/ppc64/libgcc_s.a
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/pthread
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/pthread/libatomic.a
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/pthread/libgcc_s.a
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/pthread/ppc64
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/pthread/ppc64/libatomic.a
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/pthread/ppc64/libgcc_s.a
```
Desired:
```
jenkins@adopt08:[/home/jenkins/bin]lslpp -f libc++.rte
Fileset File
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
libc++.rte 16.1.0.2 /usr/lpp/xlC/lib/aix61/libatomic.a
/usr/lpp/xlC
/usr/lib/libatomic.a -> /usr/lpp/xlC/lib/libatomic.a
/usr/lib/libc++.a -> /usr/lpp/xlC/lib/libc++.a
/usr/lpp/xlC/lib
/usr/lpp/xlC/lib/aix61/libc++.a
/usr/lpp/xlC/lib/aix61
```
Contributor guide
Research direction
Locate the Ansible playbook responsible for provisioning builds requiring xlc16 on AIX and inspect how libgcc and libgcc8 are installed. Compare that package setup with the requested libc++.rte fileset and verify the resulting runtime environment on an AIX host; done means the IBM-provided runtime is used instead of the conflicting OSS libraries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ansible
- Domain
- devops, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100