mirror of
https://github.com/ETLCPP/etl.git
synced 2026-04-30 19:09:10 +08:00
* manchester * Added manchester code and test * manchester * Formatting and added missing file * manchester * Some functions can only be constexpr since C++14 * manchester * Manchester decode and some refactoring * manchester * Added some missing typenames * manchester * constexpr void function not allowed in C++11 * manchester * condition on static_assert tests * manchester * revert CMakeLists.txt * Using ETL_STATIC_ASSERT * Some cleanup * manchester * Added static_assert message * manchester * Added compile time tests * manchester * Added invert manchester * Some refactoring * manchester * Disable test for now * Move ETL_NODISCARD before static * manchester * Test for valid_span * manchester * Remove redundant (?) storage specifiers for template specializations. Storage specifier already given in base template * manchester * refactoring to get rid of specialized template functions in template class * manchester * cleanup * manchester * Added documentation comments * Some refactoring * manchester * introducing namespace detail_manchester * manchester * Some refactoring * Update tests * manchester * Some refactoring * Removed possible undefined behavior by refactoring encode_span * constexpr version of encode_span * Static assertion for rare case where code doesn't work because CHAR_BIT is not the same as the number of bits in uint_least8_t * manchester * renamed valid to is_valid * manchester * renamed is_valid_span to is_valid * Using etl exceptions in ETL_ASSERT * manchester * Removed _fast functions * merged encode_in_place with encode and decode_in_place with decode * removed _span to create normal overloads of encode and decode for span * Some renaming and minor refactoring * manchester * Fix build issues * manchester * Conditionally compile manchester_decoded * Update test_manchester.cpp Removed redundant semicolon * #1258 Manchester coding * Formatting * consistency: hex literals with lower case 0x * #1258 Manchester coding * Moved copyright to top of file * Make constexpr encode/decode span functions equal for little and big endian platforms * #1258 Manchester coding * Added missing include * Added missing 8bit/64bit guards * Fixed is_valid for big endian platforms * #1258 Manchester coding * private memcpy alias * #1258 Manchester coding * Review comments * #1258 Manchester coding * Cleanup * Fix build error * #1258 Manchester coding * Add manchester documentation * #1258 Manchester coding * Preparation for GitHub pages * #1324 Manchester documentation * Some small fixes * Print test names at test time (#1343) * IGN-280 biphasic amplitude as float * Add big-endian devcontainer * manchester * fixed the configuration to work with GitHub Codespaces. The changes use cross-compilation with QEMU emulation instead of trying to use a native s390x container. * manchester * Made manchester work for big-endian * Some updates to the container * Manchester big-endian support * Cleanup * Manchester big-endian support * add sourcedirectory * Enable running with ctest * Manchester big-endian support * Update documentation * Manchester big-endian support * QA * Manchester big-endian support * QA * Enable testing with ctest with cross-compiler (#5) * Enable testing with ctest and with cross-compiler * Clean up includes in manchester.h --------- Co-authored-by: Timon Zijnge <timon.zijnge@imec.nl> --------- Co-authored-by: Timon Zijnge <timon.zijnge@imec.nl> Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
41 lines
1011 B
Docker
41 lines
1011 B
Docker
# s390x Big-Endian Test Environment for ETL
|
|
# Uses QEMU user-mode emulation to run s390x binaries on x64 host
|
|
FROM debian:trixie
|
|
|
|
# Avoid prompts from apt
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install QEMU user-mode emulation and s390x cross-compilation tools
|
|
RUN dpkg --add-architecture s390x && \
|
|
apt-get update && apt-get install -y --no-install-recommends\
|
|
qemu-user-static \
|
|
qemu-user \
|
|
binfmt-support \
|
|
gcc-s390x-linux-gnu \
|
|
g++-s390x-linux-gnu \
|
|
cmake \
|
|
make \
|
|
ninja-build \
|
|
git \
|
|
wget \
|
|
file \
|
|
libc6:s390x \
|
|
libstdc++6:s390x \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set working directory
|
|
WORKDIR /workspaces/etl
|
|
|
|
# Verify QEMU and cross-compilation setup
|
|
RUN echo "=== Host Architecture ===" && \
|
|
uname -m && \
|
|
echo "" && \
|
|
echo "=== s390x Cross Compiler ===" && \
|
|
s390x-linux-gnu-gcc --version && \
|
|
echo "" && \
|
|
echo "=== QEMU s390x ===" && \
|
|
qemu-s390x-static --version | head -n1
|
|
|
|
# Default command
|
|
CMD ["/bin/bash"]
|