m1 mac 编译调试openjdk

3 篇文章 0 订阅
2 篇文章 0 订阅

利用docker和vs code去编译调试

下载需要的文件 

  1. jdk源码 GitHub - AdoptOpenJDK/openjdk-aarch64-jdk8u: Mirror of aarch64 jdk8u mercurial forest at OpenJDK
  2. arm版本的jdk8 Java Downloads | Oracle
  3. make-3.81源码 Index of /gnu/make

 也可以直接下载我上传的arm平台-调试jdk8的docker镜像制作-C++文档类资源-CSDN下载

Dockerfile 制作镜像

在镜像中编译好openjdk源码, 容器启动后可以直接调试

FROM ubuntu:18.04

# 这些文件可以从https://download.csdn.net/download/cyliang1113/87266955下载
COPY openjdk-aarch64-jdk8u-master.zip /root/Dev-workspace/source_code/
COPY jdk-8u351-linux-aarch64.tar.gz /root/Dev-workspace/source_code/
COPY make-3.81.tar.gz /root/Dev-workspace/source_code/

# 设置源
RUN echo 'deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse \n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse \n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse \n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse' \
> /etc/apt/sources.list \
&& apt-get update

# 设置时区
RUN apt-get  -y install tzdata \
&& rm /etc/localtime \
&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 解压文件
RUN apt-get -y install unzip \
&& cd /root/Dev-workspace/source_code/ \
&& tar -zxf jdk-8u351-linux-aarch64.tar.gz \
&& unzip openjdk-aarch64-jdk8u-master.zip > /dev/null \
&& tar -zxf make-3.81.tar.gz \
&& mv jdk1.8.0_351/ ../ \
&& mv openjdk-aarch64-jdk8u-master ../ \
&& mv make-3.81 ../ \
&& rm -rf *

# 安装编译依赖
RUN apt-get -y install build-essential gdb vim \
pkg-config libfreetype6-dev libxft-dev libx11-dev \
libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev \
cpio zip libcups2-dev libasound2-dev git


# 安装make-3.81
RUN sed -i '210s/#if/\/\/#if/g' /root/Dev-workspace/make-3.81/glob/glob.c \
&& sed -i '231s/#end/\/\/#end/g' /root/Dev-workspace/make-3.81/glob/glob.c \
&& cd /root/Dev-workspace/make-3.81 \
&& ./configure --build=arm-linux --prefix=/usr/local/make-3.81 \
&& make install

ENV PATH /usr/local/make-3.81/bin:$PATH

# 编译jvm
RUN cd /root/Dev-workspace/openjdk-aarch64-jdk8u-master \
&& bash configure --with-boot-jdk=/root/Dev-workspace/jdk1.8.0_351 --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0 --with-extra-cflags=-Wno-all --with-extra-cxxflags=-Wno-all \
&& make all ZIP_DEBUGINFO_FILES=0 ENABLE_FULL_DEBUG_SYMBOLS=0 JOBS=6


CMD tail -f /dev/null

也可以直接使用我制作的镜像 cyliang1113/debug-jvm-arm:0.1 Docker Hub

vs code调试

vs code连接docker调试jvm可以看我另一篇文章 jvm调试环境 简单快速搭建_瞬身_止水的博客-CSDN博客_jvm源码调试环境 vs2022

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值