From 41294406354fda72008ab306644e2ad2a472db7a Mon Sep 17 00:00:00 2001 From: Iori Yanokura Date: Thu, 26 Jun 2025 21:44:38 +0900 Subject: [PATCH 1/7] Support apple silicon arm architecture --- irteus/Makefile.Darwin | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/irteus/Makefile.Darwin b/irteus/Makefile.Darwin index 885000264..3ac4f37dc 100644 --- a/irteus/Makefile.Darwin +++ b/irteus/Makefile.Darwin @@ -53,7 +53,7 @@ ESFX= SOFLAGS=-g -falign-functions=8 IMPLIB=-L$(EUSDIR)/$(ARCHDIR)/lib -leusgeo -L$(INSTALLLIBDIR) -lnr IMPLIBGL=-L$(EUSDIR)/$(ARCHDIR)/lib -leusgl -L/usr/X11R6/lib -lGLU -lGL -lXext -IMPLIBIMG=-L/opt/local/lib/jpeg6b/lib -ljpeg -L/opt/local/lib -lpng +IMPLIBIMG=-L/opt/local/lib/jpeg6b/lib -ljpeg -L/opt/local/lib -lpng -L/opt/homebrew/lib -L/usr/local/lib EXPLIB= RAPID=-LRAPID/$(ARCHDIR) -lRAPID-static RAPIDLIB=RAPID/$(ARCHDIR)/$(LPFX)RAPID-static.a @@ -64,14 +64,23 @@ SVNVERSION=\"$(shell git rev-parse --short HEAD)\" ARCH=Darwin # copy from eus/lisp/Makefile.Darwin OS_VERSION=$(shell sw_vers -productVersion | sed s/\.[^.]*$$//) +ARCH_TYPE=$(shell uname -m) ifeq ($(OS_VERSION), 10.5) MACHINE=i386 else - MACHINE=x86_64 + ifeq ($(ARCH_TYPE), arm64) + MACHINE=arm64 + else + MACHINE=x86_64 + endif endif THREAD= -DTHREADED -DPTHREAD -CFLAGS=-O2 -D$(MACHINE) -D$(ARCH) -DLinux -D_REENTRANT -DGCC -I/opt/local/include -I$(EUSDIR)/include $(THREAD) -DSVNVERSION=$(SVNVERSION) +ifeq ($(MACHINE), arm64) +CFLAGS=-O2 -D$(MACHINE) -Daarch64 -D$(ARCH) -DLinux -D_REENTRANT -DGCC -I/opt/local/include -I/opt/homebrew/include -I/usr/local/include -I$(EUSDIR)/include $(THREAD) -DSVNVERSION=$(SVNVERSION) +else +CFLAGS=-O2 -D$(MACHINE) -D$(ARCH) -DLinux -D_REENTRANT -DGCC -I/opt/local/include -I/opt/homebrew/include -I/usr/local/include -I$(EUSDIR)/include $(THREAD) -DSVNVERSION=$(SVNVERSION) +endif CXXFLAGS=$(CFLAGS) CFLAGS+= -g -falign-functions=8 -fPIC From 8a531016372ed02ddb9f8cea21e444c99891913f Mon Sep 17 00:00:00 2001 From: Iori Yanokura Date: Mon, 30 Jun 2025 22:39:51 +0900 Subject: [PATCH 2/7] Include aarch64 for geo.l --- irteus/test/geo.l | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/irteus/test/geo.l b/irteus/test/geo.l index 651554443..896aafdbc 100644 --- a/irteus/test/geo.l +++ b/irteus/test/geo.l @@ -11,7 +11,7 @@ (normal (float-vector 0 0 0)) eps) ;; somehow arm architecture needs to return #f(0 0 0) for small normalized vectors - (if (member :arm *features*) + (if (or (member :arm *features*) (member :aarch64 *features*)) (setq eps 1.0e-10) (setq eps 1.0e-20)) (while vlist From 2635768ce89d04b1ffcfab2be7bad4f59b33c6f0 Mon Sep 17 00:00:00 2001 From: Iori Yanokura Date: Tue, 1 Jul 2025 21:18:31 +0900 Subject: [PATCH 3/7] [ga] Add test for macos-14 and macos-15 (Apple Silicon) --- .github/workflows/config.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 8ecab1b2d..4f7a856ce 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -186,7 +186,18 @@ jobs: osx: - runs-on: macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md + strategy: + matrix: + include: + # https://github.com/actions/runner-images/tree/main/images/macos + # Note: To test macOS-x with Intel architecture, + # you need to use the paid macOS-x-large runner, as macOS-x is grouped with ARM-based runners. + # https://docs.github.com/en/actions/concepts/runners/about-larger-runners + - runs-on: macos-13 # Intel (x64) + - runs-on: macos-14 # ARM64 (Apple Silicon) + - runs-on: macos-15 # ARM64 (Apple Silicon) + fail-fast: false + runs-on: ${{ matrix.runs-on }} timeout-minutes: 60 steps: - name: Checkout From e7bb9682e0bed91e030379c3f1ffb917a0ade91c Mon Sep 17 00:00:00 2001 From: Iori Yanokura Date: Tue, 1 Jul 2025 21:19:12 +0900 Subject: [PATCH 4/7] [ga] Bump actions/cache verstion to v4 because v2 is deprecated --- .github/workflows/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 4f7a856ce..31c059719 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -206,7 +206,7 @@ jobs: id: brew-cache run: echo "::set-output name=dir::$(brew --cache)/downloads" - name: Brew cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ${{ steps.brew-cache.outputs.dir }} key: ${{ runner.os }}-${{ hashFiles('.github/workflows/Brewfile') }} From 66b4069d77c64d5956e747097eac362a82ae6a52 Mon Sep 17 00:00:00 2001 From: Iori Yanokura Date: Tue, 1 Jul 2025 21:30:24 +0900 Subject: [PATCH 5/7] [ga/macos-14] since macos-14, we need to install GL/gl.h for mesalib-glw and X11 for xquartz --- .github/workflows/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 31c059719..c77fbcab8 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -228,6 +228,8 @@ jobs: export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" # since macos-11, we need to install GL/gl.h HOMEBREW_NO_AUTO_UPDATE=1 brew install mesa-glu + # since macos-14, we need to install GL/gl.h for mesalib-glw and X11 for xquartz + HOMEBREW_NO_AUTO_UPDATE=1 brew install mesalib-glw xquartz ./.travis-osx.sh - name: Cleanup some brew downloads run: cd ${{ steps.brew-cache.outputs.dir }} && ls -lsS | head -n 10 | awk '{ print $10 }' | xargs rm -rf From e75cec21717cda10f31baf54b2dce7a77fb2a076 Mon Sep 17 00:00:00 2001 From: Iori Yanokura Date: Tue, 1 Jul 2025 21:36:14 +0900 Subject: [PATCH 6/7] [ga/macos-13] Add brew install jpeg --- .github/workflows/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index c77fbcab8..9449738b4 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -230,6 +230,8 @@ jobs: HOMEBREW_NO_AUTO_UPDATE=1 brew install mesa-glu # since macos-14, we need to install GL/gl.h for mesalib-glw and X11 for xquartz HOMEBREW_NO_AUTO_UPDATE=1 brew install mesalib-glw xquartz + # since macos-13, we need to install jpeg + HOMEBREW_NO_AUTO_UPDATE=1 brew install jpeg ./.travis-osx.sh - name: Cleanup some brew downloads run: cd ${{ steps.brew-cache.outputs.dir }} && ls -lsS | head -n 10 | awk '{ print $10 }' | xargs rm -rf From 95ee85fc4bc3c8ec16bf807404b8025f40f90ef2 Mon Sep 17 00:00:00 2001 From: Iori Yanokura Date: Wed, 2 Jul 2025 14:08:31 +0900 Subject: [PATCH 7/7] [ga] Fixed catkin test (#3) --- .github/workflows/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 9449738b4..9b9fac88d 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -112,7 +112,9 @@ jobs: apt-get install -qq -y dpkg # necessary for catkin-pkg to be installable echo "Testing branch $GITHUB_REF of $GITHUB_REPOSITORY" sh -c 'echo "deb http://packages.ros.org/ros-shadow-fixed/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list' - wget http://packages.ros.org/ros.key -O - | apt-key add - + # Replace the old apt-key add with the new method for adding the key + # https://github.com/ros/rosdistro/pull/46048 + curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add - apt-get update -qq apt-get install -qq -y python-catkin-tools python-rosdep apt-get install -qq -y build-essential git ros-melodic-rosbash ros-melodic-rospack