povray
povray copied to clipboard
[BUG][UNIX]
Summary
Static compilation fails on the boost library. ./configure COMPILED_BY="Docker" --prefix=/installdir --enable-static
POV-Ray Version
- Incarnation: POV-Ray for Unix
- Affected build version: v3.7.0.10 (commit: cd074e4d2698b3faa5b157c6b05c5f3ad432fddc, branch: latest-stable)
- Known working build version: ??
Runtime Environment
- Operating system: alpine linux, docker, latest
- Hardware architecture: Docker
- CPU model: N/A
Steps to Reproduce
Store the following as a Dockerfile
FROM alpine:latest as BUILD
RUN apk add build-base git autoconf automake boost-dev libpng-dev tiff-dev openexr-dev
RUN git clone -b latest-stable --single-branch --depth 1 https://github.com/POV-Ray/povray.git
WORKDIR /povray
RUN cd unix &&
./prebuild.sh
RUN ./configure COMPILED_BY="Docker" --prefix=/installdir --enable-static`
Command Line
Docker build .
Expected Behavior
Make-command should successfully compile a binary
Actual Behavior
Compilation fails
Output
#0 0.440
#0 0.440 ===============================================================================
#0 0.440 Configure POV-Ray version 3.7.0.10
#0 0.440 ===============================================================================
#0 0.440
#0 0.440 This is an unofficial version compiled by:
#0 0.440 Docker
#0 0.440 The POV-Ray Team(tm) is not responsible for supporting this version.
#0 0.440
#0 0.440 Environment
#0 0.440 -----------
#0 0.443 checking build system type... x86_64-pc-linux-musl
#0 0.473 checking host system type... x86_64-pc-linux-musl
#0 0.473 checking for a BSD-compatible install... /usr/bin/install -c
#0 0.622 checking whether build environment is sane... yes
#0 0.626 /bin/sh: can't open '"/povray/unix/config"/missing': No such file or directory
#0 0.626 configure: WARNING: 'missing' script is too old or missing
#0 0.626 checking for a race-free mkdir -p... ./unix/config/install-sh -c -d
#0 0.630 checking for gawk... no
#0 0.631 checking for mawk... no
#0 0.631 checking for nawk... no
#0 0.631 checking for awk... awk
#0 0.631 checking whether make sets $(MAKE)... yes
#0 0.636 checking whether make supports nested variables... yes
#0 0.640 checking whether to enable maintainer-specific portions of Makefiles... no
#0 0.641 checking whether $C_INCLUDE_PATH contains the "." path... no
#0 0.643 checking whether $CPLUS_INCLUDE_PATH contains the "." path... no
#0 0.643
#0 0.643 Programs
#0 0.643 --------
#0 0.643 checking for gcc... gcc
#0 0.659 checking whether the C compiler works... yes
#0 0.681 checking for C compiler default output file name... a.out
#0 0.681 checking for suffix of executables...
#0 0.703 checking whether we are cross compiling... no
#0 0.727 checking for suffix of object files... o
#0 0.743 checking whether the compiler supports GNU C... yes
#0 0.758 checking whether gcc accepts -g... yes
#0 0.774 checking for gcc option to enable C11 features... none needed
#0 0.801 checking whether gcc understands -c and -o together... yes
#0 0.830 checking whether make supports the include directive... yes (GNU style)
#0 0.835 checking dependency style of gcc... gcc3
#0 0.855 checking how to run the C preprocessor... gcc -E
#0 0.891 checking for stdio.h... yes
#0 0.903 checking for stdlib.h... yes
#0 0.917 checking for string.h... yes
#0 0.930 checking for inttypes.h... yes
#0 0.944 checking for stdint.h... yes
#0 0.959 checking for strings.h... yes
#0 0.973 checking for sys/stat.h... yes
#0 0.989 checking for sys/types.h... yes
#0 1.004 checking for unistd.h... yes
#0 1.021 checking for stdlib.h... (cached) yes
#0 1.021 checking for g++... g++
#0 1.034 checking whether the compiler supports GNU C++... yes
#0 1.049 checking whether g++ accepts -g... yes
#0 1.066 checking for g++ option to enable C++11 features... none needed
#0 1.126 checking dependency style of g++... gcc3
#0 1.145 checking whether the g++ compiler works... yes
#0 1.171 checking how to run the C++ preprocessor... g++ -E
#0 1.208 checking for C++ compiler vendor... gnu
#0 1.262 checking for grep that handles long lines and -e... /bin/grep
#0 1.293 checking for egrep... /bin/grep -E
#0 1.294 checking for g++ version... 12.2.1
#0 1.299 checking for ranlib... ranlib
#0 1.300 checking for stat format option... -c
#0 1.305
#0 1.305 Libraries
#0 1.305 ---------
#0 1.305 checking whether to link with cygwin DLL... no
#0 1.305 checking whether to enable static linking... yes
#0 1.305 checking for linker static flag... -static
#0 1.305 checking for working '-static' flag... yes
#0 1.356 checking for the pthreads library -lpthreads... no
#0 1.383 checking whether pthreads work without any flags... yes
#0 1.412 checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
#0 1.440 checking if more special flags are required for pthreads... no
#0 1.443 checking for boostlib >= 1.37... yes
#0 1.462 checking whether the Boost::Thread library is available... yes
#0 3.084 checking for exit in -lboost_thread... no
#0 3.109 checking for exit in -lboost_thread... (cached) no
#0 3.110 configure: error: Could not link against boost_thread !
Suggested Solution
Checking if the library exists should be done differently for boost, as static linking of a .hpp is not dependent on a .so or .a-file.