mirror of
https://github.com/verilator/verilator.git
synced 2026-08-29 17:28:46 +02:00
Add jemalloc as an alternative malloc implementation for the Verilator binary. When both tcmalloc and jemalloc are available, jemalloc is preferred due to its better performance on RTLMeter. The new --enable-jemalloc flag (default=check) mirrors the existing --enable-tcmalloc behavior: auto-detected at configure time, supports both static and dynamic linking, and is disabled when --enable-dev-asan is active.
70 lines
2.1 KiB
Docker
70 lines
2.1 KiB
Docker
# DESCRIPTION: Dockerfile for env to build and fully test Verilator
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify it
|
|
# under the terms of either the GNU Lesser General Public License Version 3
|
|
# or the Perl Artistic License Version 2.0.
|
|
# SPDX-FileCopyrightText: 2020 Stefan Wallentowitz
|
|
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
|
|
|
|
FROM ubuntu:24.04
|
|
|
|
# Create the user
|
|
RUN groupadd verilator \
|
|
&& useradd -g verilator -m verilator -s /bin/bash \
|
|
&& apt-get update \
|
|
&& apt-get install --no-install-recommends -y sudo \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& echo verilator ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/verilator \
|
|
&& chmod 0440 /etc/sudoers.d/verilator
|
|
|
|
RUN apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive \
|
|
apt-get install --no-install-recommends -y \
|
|
autoconf \
|
|
bc \
|
|
bison \
|
|
build-essential \
|
|
ca-certificates \
|
|
ccache \
|
|
clang \
|
|
cmake \
|
|
flex \
|
|
gdb \
|
|
git \
|
|
gtkwave \
|
|
help2man \
|
|
libfl2 \
|
|
libfl-dev \
|
|
libclang-rt-18-dev \
|
|
libjemalloc-dev \
|
|
libsystemc \
|
|
libsystemc-dev \
|
|
numactl \
|
|
perl \
|
|
python3 \
|
|
python3-distro \
|
|
wget \
|
|
z3 \
|
|
zlib1g \
|
|
zlib1g-dev \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /tmp
|
|
|
|
RUN git clone https://github.com/veripool/vcddiff.git && \
|
|
make -C vcddiff && \
|
|
cp -p vcddiff/vcddiff /usr/local/bin/vcddiff && \
|
|
rm -rf vcddiff
|
|
|
|
COPY build.sh /tmp/build.sh
|
|
|
|
ENV VERILATOR_AUTHOR_SITE=1
|
|
|
|
USER verilator
|
|
|
|
WORKDIR /work
|
|
|
|
ENTRYPOINT [ "/tmp/build.sh" ]
|