Skip to content

Commit db650bb

Browse files
committed
Fix Travis CI to only build x86_64, and fix --with-macarchs flag
Apple Silicon build doesn't work in CI yet, and as such we don't want CI to build it, as accidentaly Apple Silicon builds will mean an Apple Silicon Mac prioritize that over Rosetta build which will crash (since we are only building `MacVim` as universal, but the raw `Vim` process is not). Also, add a CI smoketest step to make sure we only build x86_64. Also, fix up the `--with-macarchs` flag for `configure`. For some reason, Apple seems to have broken sed's word boundary parsing, so need to work around it and use a more convoluted regex to do the word splitting.
1 parent ee71f93 commit db650bb

3 files changed

Lines changed: 24 additions & 3 deletions

File tree

.travis.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ env:
1818
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.9/Python
1919
vi_cv_dll_name_ruby=/usr/local/opt/ruby/lib/libruby.dylib
2020
VIMCMD=src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
21-
CONFOPT="--with-features=huge --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-gui=macvim"
21+
MACVIM_BIN=src/MacVim/build/Release/MacVim.app/Contents/MacOS/MacVim
22+
CONFOPT="--with-features=huge --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-gui=macvim --with-macarchs=x86_64"
2223
BASH_SILENCE_DEPRECATION_WARNING=1
2324

2425
_anchors:
@@ -85,6 +86,10 @@ script:
8586
# Make sure there isn't any dynamic linkage to third-party dependencies in the built binary, as we should only use
8687
# static linkage to avoid dependency hell. Test that all those dylib's are in /usr/lib which is bundled with macOS and not third-party.
8788
- (! otool -L ${VIMCMD} | grep '\.dylib\s' | grep -v '^\s*/usr/lib/')
89+
# Make sure we are building x86_64 only. arm64 builds don't work properly now, so we don't want to accidentally build
90+
# it as it will get prioritized by Apple Silicon Macs.
91+
- (lipo -archs ${VIMCMD} | grep '^x86_64$')
92+
- (lipo -archs ${MACVIM_BIN} | grep '^x86_64$')
8893
- echo -en "travis_fold:end:smoketest\\r\\033[0K"
8994

9095
# Run standard test suites.

src/auto/configure

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4758,7 +4758,15 @@ fi
47584758
$as_echo_n "checking if architectures are supported... " >&6; }
47594759
save_cflags="$CFLAGS"
47604760
save_ldflags="$LDFLAGS"
4761-
archflags=`echo "$ARCHS" | sed -e 's/[[:<:]]/-arch /g'`
4761+
4762+
# Apple's sed is supposed to treat [[:<:]] as word beginning, but seems
4763+
# like that broke some time ago and means *any* word character (but
4764+
# [[:>:]] still seems to work as word end).
4765+
# Use a more convoluted regex in order to properly to split the archs by
4766+
# word and prefix each with "-arch" to pass to the compiler.
4767+
#archflags=`echo "$ARCHS" | sed -e 's/[[[:<:]]]/-arch /g'`
4768+
archflags=`echo "$ARCHS" | sed 's/[[:>:]][ ][ ]*[[:<:]]/ -arch /g' | sed 's/^/-arch /g'`
4769+
47624770
CFLAGS="$CFLAGS $archflags"
47634771
LDFLAGS="$LDFLAGS $archflags"
47644772
cat confdefs.h - <<_ACEOF >conftest.$ac_ext

src/configure.ac

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,15 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
273273
AC_MSG_CHECKING(if architectures are supported)
274274
save_cflags="$CFLAGS"
275275
save_ldflags="$LDFLAGS"
276-
archflags=`echo "$ARCHS" | sed -e 's/[[[:<:]]]/-arch /g'`
276+
277+
# Apple's sed is supposed to treat [[:<:]] as word beginning, but seems
278+
# like that broke some time ago and means *any* word character (but
279+
# [[:>:]] still seems to work as word end).
280+
# Use a more convoluted regex in order to properly to split the archs by
281+
# word and prefix each with "-arch" to pass to the compiler.
282+
#archflags=`echo "$ARCHS" | sed -e 's/[[[:<:]]]/-arch /g'`
283+
archflags=`echo "$ARCHS" | sed 's/[[[:>:]]][[ ]][[ ]]*[[[:<:]]]/ -arch /g' | sed 's/^/-arch /g'`
284+
277285
CFLAGS="$CFLAGS $archflags"
278286
LDFLAGS="$LDFLAGS $archflags"
279287
AC_TRY_LINK([ ], [ ],

0 commit comments

Comments
 (0)