POV-Ray / povray

The Persistence of Vision Raytracer: http://www.povray.org/
GNU Affero General Public License v3.0
1.35k stars 282 forks source link

[BUG][UNIX] #453

Open bratne opened 1 year ago

bratne commented 1 year ago

Summary

Static compilation fails on the boost library. ./configure COMPILED_BY="Docker" --prefix=/installdir --enable-static

POV-Ray Version

Runtime Environment

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.