-
Notifications
You must be signed in to change notification settings - Fork 35
Fix UMF build on Alpine OS #1294
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Copyright (C) 2025 Intel Corporation | ||
# Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT. | ||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
|
||
# | ||
# Dockerfile - a 'recipe' for Docker to build an image of Alpine | ||
# environment for building the Unified Memory Framework project. | ||
# | ||
|
||
# Pull base Alpine image version 3.21 | ||
FROM registry.hub.docker.com/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c | ||
|
||
# Set environment variables | ||
ENV OS=alpine | ||
ENV OS_VER=3.21 | ||
|
||
# Base development packages | ||
ARG BASE_DEPS="\ | ||
bash \ | ||
cmake \ | ||
git \ | ||
g++ \ | ||
make \ | ||
sudo" | ||
|
||
# UMF's dependencies | ||
ARG UMF_DEPS="\ | ||
hwloc-dev" | ||
|
||
# Dependencies for tests | ||
ARG TEST_DEPS="\ | ||
numactl-dev" | ||
|
||
# Update and install required packages | ||
RUN apk update \ | ||
&& apk add --no-cache \ | ||
${BASE_DEPS} \ | ||
${TEST_DEPS} \ | ||
${UMF_DEPS} | ||
|
||
# Add a new (non-root) 'test_user' | ||
ENV USER=test_user | ||
RUN adduser -D -G wheel ${USER} | ||
RUN echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers | ||
|
||
USER test_user |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#!/bin/bash | ||
# Copyright (C) 2025 Intel Corporation | ||
# Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT. | ||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
|
||
# alpine_build.sh - Script for building UMF on Alpine image | ||
|
||
set -e | ||
|
||
UMF_BUILD_TYPE=$1 | ||
WORKDIR=$2 | ||
|
||
sudo chown $USER $WORKDIR | ||
cd unified-memory-framework | ||
|
||
cmake -B build -DCMAKE_BUILD_TYPE=$UMF_BUILD_TYPE -DUMF_BUILD_TESTS=ON -DUMF_BUILD_EXAMPLES=ON | ||
cmake --build build |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,13 +19,20 @@ jobs: | |
with: | ||
fetch-depth: 0 | ||
|
||
- name: Manual Trivy Setup | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you could add a simple comment why to set it up manually |
||
uses: aquasecurity/setup-trivy@9ea583eb67910444b1f64abf338bd2e105a0a93d | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. pls add a comment which version of the action is it (e.g. similarly to the one below: |
||
with: | ||
cache: true | ||
version: v0.61.0 | ||
|
||
- name: Run Trivy | ||
uses: aquasecurity/trivy-action@6c175e9c4083a92bbca2f9724c8a5e33bc2d97a5 # v0.30.0 | ||
with: | ||
scan-type: 'config' | ||
hide-progress: false | ||
format: 'sarif' | ||
output: 'trivy-results.sarif' | ||
skip-setup-trivy: true | ||
exit-code: 1 # Fail if issue found | ||
# file with suppressions: .trivyignore (in root dir) | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
/* | ||
* | ||
* Copyright (C) 2024 Intel Corporation | ||
* Copyright (C) 2024-2025 Intel Corporation | ||
* | ||
* Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT. | ||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
|
@@ -10,7 +10,6 @@ | |
#ifdef _WIN32 | ||
#include <windows.h> | ||
#else | ||
#define _GNU_SOURCE 1 | ||
#include <sys/syscall.h> | ||
#include <sys/types.h> | ||
#include <unistd.h> | ||
|
@@ -153,13 +152,21 @@ static void utils_log_internal(utils_log_level_t level, int perror, | |
} | ||
errno = saveno; | ||
#else | ||
char err_buff[1024]; // max size according to manpage. | ||
int saveno = errno; | ||
errno = 0; | ||
#if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE | ||
char err[1024]; | ||
int err_ret = strerror_r(saveno, err, sizeof(err)); | ||
if (err_ret == ERANGE) { | ||
postfix = "[truncated...]"; | ||
} | ||
#else | ||
Comment on lines
+157
to
+163
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is it different from the apple version? can you just update apple ifdef? |
||
char err_buff[1024]; // max size according to manpage. | ||
const char *err = strerror_r(saveno, err_buff, sizeof(err_buff)); | ||
if (errno == ERANGE) { | ||
postfix = "[truncated...]"; | ||
} | ||
#endif | ||
errno = saveno; | ||
#endif | ||
strncpy(b_pos, err, b_size); | ||
|
Uh oh!
There was an error while loading. Please reload this page.