You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.6 KiB
4.6 KiB
PFEXTLIB Build Results
Build Summary
Successfully compiled all three PFEXTLIB libraries in CentOS 3.9 i386 environment:
✅ cppunit-1.10.2
- Shared library:
libcppunit-1.10.so.2.0.0(1.9 MB) - Static library:
libcppunit.a(3.4 MB) - Binary:
DllPlugInTester - Location:
./output/cppunit/lib/ - Format: ELF 32-bit LSB shared object, Intel i386
- Dependencies: libstdc++.so.5, libm.so.6, libc.so.6, libgcc_s.so.1
- Status: ✅ Compiled successfully (install error is non-critical - headers already present)
✅ fftw-3.0.1
- Shared library:
libfftw3.so.3.0.1(624 KB) - Static library:
libfftw3.a(1.0 MB) - Location:
./output/fftw/lib/ - Format: ELF 32-bit LSB shared object, Intel i386
- Configure options:
--enable-sse --enable-threads - Dependencies: libm.so.6, libc.so.6, ld-linux.so.2
- Status: ✅ Compiled successfully
✅ hdf5-1.6.2
- Shared library:
libhdf5.so.0.0.0(997 KB) - Static library:
libhdf5.a(1.3 MB) - Location:
./output/hdf5/lib/ - Format: ELF 32-bit LSB shared object, Intel i386
- Configure options:
--enable-cxx - Dependencies: libm.so.6, libc.so.6, ld-linux.so.2
- Status: ✅ Compiled successfully
Build Environment
- OS: CentOS 3.9 i386 (from archive.kernel.org vault)
- GCC: 3.2.3-59 (gcc, g++, cpp)
- glibc: 2.3.2-95.50
- libstdc++: 5.0 (from compat-libstdc++-7.3-2.96.128)
- Toolchain: autoconf 2.57, automake 1.6.3, libtool 1.4.3, make 3.79.1
- Total packages: 47 RPMs verified and installed
Docker Image
- Image name:
centos39-pfextlib:latest - Architecture: i386 (32-bit)
- Source directory:
/usr/local/PFEXTLIB-1.2/
Output Directory Structure
output/
├── cppunit/
│ ├── bin/
│ │ └── DllPlugInTester
│ ├── include/
│ │ └── cppunit/ (complete header tree)
│ └── lib/
│ ├── libcppunit-1.10.so.2.0.0
│ ├── libcppunit.so -> libcppunit-1.10.so.2.0.0
│ ├── libcppunit.a
│ └── *.o files
├── fftw/
│ ├── include/
│ │ └── fftw3.h
│ └── lib/
│ ├── libfftw3.so.3.0.1
│ ├── libfftw3.so -> libfftw3.so.3.0.1
│ └── libfftw3.a
└── hdf5/
├── include/
│ └── H5public.h
└── lib/
├── libhdf5.so.0.0.0
├── libhdf5.so -> libhdf5.so.0.0.0
└── libhdf5.a
Build Scripts
-
build-docker-image.sh (270 lines)
- Downloads 47 RPMs from CentOS 3.9 vault
- Creates minimal rootfs with rpm2cpio
- Cleans source directories (make distclean, rm *.o .so *.a .libs)
- Generates build scripts for each library
- Builds Docker image
-
build-libraries.sh
- Starts Docker container in background
- Executes builds inside container
- Copies compiled libraries to
./output/ - Automatically cleans up container
-
verify-rpms.sh
- Validates all 47 RPM package names
- 100% verified against CentOS vault
Usage
Rebuild Docker Image
./build-docker-image.sh
Build All Libraries
./build-libraries.sh
Verify RPM Package Names
./verify-rpms.sh
Helper Commands
./pfextlib-docker.sh
# Commands: start, stop, shell, build, build-cppunit, build-fftw, build-hdf5,
# clean, logs, help
Notes
- Install errors: cppunit shows "files are the same" errors during install phase - this is expected because headers exist in source directory. The compiled libraries are successfully created.
- libstdc++.so.6: Not found in CentOS 3.9 packages. GCC 3.2.3 compiled binaries need libstdc++.so.5 which is present.
- 32-bit libraries: All libraries are 32-bit Intel i386 format, suitable for legacy systems.
Timestamps
- Build Date: November 3, 2024
- Build Time: ~3 minutes for all libraries
- Image Size: ~320 MB (minimal CentOS 3.9 + build tools)
Files Created
build-docker-image.sh- Main Docker image builderbuild-libraries.sh- Library compilation and extraction scriptverify-rpms.sh- RPM verification toolpfextlib-docker.sh- Helper script with common commandsREADME.md- Full documentationBUILD-RESULTS.md- This file
Success Criteria
✅ All three libraries compile without errors ✅ Shared objects (.so) created successfully ✅ Static libraries (.a) created successfully ✅ Libraries are 32-bit i386 format ✅ Dependencies are satisfied (libstdc++.so.5, libm, libc, libgcc_s) ✅ Headers and binaries extracted ✅ Build process is reproducible