Skip to content

alpine:edge compilation failed starting in v1.14.0+ (/usr/include/fortify/stdio.h:82) #3000

@Mizux

Description

@Mizux

Seems HiGHs latest/v1.14.0 do not compile on alpine:edge anymore...

Trace

/usr/include/fortify/stdio.h: In function '__to_xstring.constprop':
#11 65.07 /usr/include/fortify/stdio.h:82:28: error: inlining failed in call to 'always_inline' 'vsnprintf': function body can be overwritten at link time
#11 65.07    82 | _FORTIFY_FN(vsnprintf) int vsnprintf(char * _FORTIFY_POS0 __s, size_t __n,
#11 65.07       |                            ^
#11 65.07 /usr/include/c++/15.2.0/ext/string_conversions.h:115:32: note: called from here
#11 65.07   115 |       const int __len = __convf(__s, __n, __fmt, __args);
#11 65.07       |                                ^
#11 65.81 make[3]: *** [/tmp/ccgdIgcD.mk:88: /tmp/ccNhkfJa.ltrans43.ltrans.o] Error 1
#11 65.81 make[3]: *** Waiting for unfinished jobs....
#11 68.49 lto-wrapper: fatal error: make returned 2 exit status
#11 68.49 compilation terminated.
#11 68.50 /usr/lib/gcc/x86_64-alpine-linux-musl/15.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: error: lto-wrapper failed
#11 68.51 collect2: error: ld returned 1 exit status
#11 68.51 
#11 68.51 gmake[2]: *** [highs/CMakeFiles/highs.dir/build.make:2981: lib/libhighs.so.1.14.0] Error 1
#11 68.51 gmake[2]: Leaving directory '/home/project/build'
#11 68.51 gmake[1]: *** [CMakeFiles/Makefile2:1102: highs/CMakeFiles/highs.dir/all] Error 2
#11 68.51 gmake[1]: Leaving directory '/home/project/build'
#11 68.51 gmake: *** [Makefile:166: all] Error 2
#11 68.51 
#11 ERROR: process "/bin/sh -c cmake --build build --target all -v" did not complete successfully: exit code: 2

Protocol

A simply way to reproduce it is to use this Dockerfile (placed in the root dir of a fresh git clone).

./Dockerfile:

# Create a virtual environment with all tools installed
# ref: https://hub.docker.com/_/alpine
FROM alpine:edge AS base

# Install system build dependencies
ENV PATH=/usr/local/bin:$PATH
RUN apk add --no-cache git build-base linux-headers cmake
CMD [ "/bin/sh" ]

FROM base AS env
RUN cmake -version

FROM env AS devel
WORKDIR /home/project
COPY . .

ARG CMAKE_BUILD_PARALLEL_LEVEL
ENV CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL:-4}

FROM devel AS build
RUN cmake -S. -Bbuild
RUN cmake --build build --target all -v
RUN cmake --build build --target install

FROM build AS test
RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test

then use the following cmds:

# verify my HiGHS clone 
$ git rev-parse --abbrev-ref HEAD
latest
$ docker build --target build --progress=plain . 

Observed

compilation failed

Expected

compilation pass

Dev Note

FYI, testing using v1.13.1 compilation pass, so it seems to be a newly regression...

$ git checkout v1.13.1
$ docker build --target build --progress=plain .
...
#12 1.002 -- Set non-toolchain portion of runtime path of "/usr/local/lib/libhighs.so.1.13.1" to "$ORIGIN"
#12 1.003 -- Installing: /usr/local/lib/libhighs.so
#12 1.003 -- Installing: /usr/local/lib/cmake/highs/highs-targets.cmake
#12 1.003 -- Installing: /usr/local/lib/cmake/highs/highs-targets-release.cmake
#12 1.004 -- Installing: /usr/local/lib/cmake/highs/highs-config.cmake
#12 1.004 -- Installing: /usr/local/lib/cmake/highs/highs-config-version.cmake
#12 1.005 -- Installing: /usr/local/lib/pkgconfig/highs.pc
#12 1.006 -- Installing: /usr/local/bin/highs
#12 1.011 -- Set non-toolchain portion of runtime path of "/usr/local/bin/highs" to "$ORIGIN:$ORIGIN/../lib"
#12 DONE 1.0s

Misc

note: spotted in or-tools when integrating HiGHS v1.14.0
see: https://github.com/google/or-tools/actions/runs/24277768054/job/70894528629#step:6:6248

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions