shithub: sl

Download patch

ref: 0ca6dfe46ca4541cf5892908381f0c763bfcc5b2
parent: ce3af9e03b554081f6689a541438f32cdd2c44c5
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Thu Jan 16 13:12:29 EST 2025

mac builds: fix in a different way

Meson is choosing to enable PIC for static libraries by default,
which is the cause everything was broken on m68k builds.
Revert back to using static libraries but with disabled PIC.

--- a/meson.build
+++ b/meson.build
@@ -119,6 +119,15 @@
 	extras = []
 endif
 
+common = static_library(
+	'common',
+	sources: src_common,
+	include_directories: include_directories(
+		platform,
+	),
+	pic: false,
+)
+
 src_flisp = [
 	'3rd/fn.c',
 	'3rd/mt19937-64.c',
@@ -179,62 +188,82 @@
 	],
 )
 
-src_brieflz = [
-	'3rd/brieflz/brieflz.c',
-	'3rd/brieflz/depacks.c',
-]
+brieflz = static_library(
+	'brieflz',
+	sources: [
+		'3rd/brieflz/brieflz.c',
+		'3rd/brieflz/depacks.c',
+	],
+	include_directories: include_directories(
+		'3rd/brieflz',
+		platform,
+	),
+	pic: false,
+)
 
-src_mp = [
-	'3rd/mp/mpadd.c',
-	'3rd/mp/mpaux.c',
-	'3rd/mp/mpcmp.c',
-	'3rd/mp/mpdigdiv.c',
-	'3rd/mp/mpdiv.c',
-	'3rd/mp/mpexp.c',
-	'3rd/mp/mpextendedgcd.c',
-	'3rd/mp/mpfmt.c',
-	'3rd/mp/mpinvert.c',
-	'3rd/mp/mpleft.c',
-	'3rd/mp/mplogic.c',
-	'3rd/mp/mpmod.c',
-	'3rd/mp/mpmodop.c',
-	'3rd/mp/mpmul.c',
-	'3rd/mp/mprand.c',
-	'3rd/mp/mpright.c',
-	'3rd/mp/mpsub.c',
-	'3rd/mp/mptobe.c',
-	'3rd/mp/mptober.c',
-	'3rd/mp/mptod.c',
-	'3rd/mp/mptoi.c',
-	'3rd/mp/mptoui.c',
-	'3rd/mp/mptouv.c',
-	'3rd/mp/mptov.c',
-	'3rd/mp/mpvecadd.c',
-	'3rd/mp/mpveccmp.c',
-	'3rd/mp/mpvecdigmuladd.c',
-	'3rd/mp/mpvecsub.c',
-	'3rd/mp/mpvectscmp.c',
-	'3rd/mp/strtomp.c',
-	'3rd/mp/u16.c',
-]
+mp = static_library(
+	'mp',
+	sources: [
+		'3rd/mp/mpadd.c',
+		'3rd/mp/mpaux.c',
+		'3rd/mp/mpcmp.c',
+		'3rd/mp/mpdigdiv.c',
+		'3rd/mp/mpdiv.c',
+		'3rd/mp/mpexp.c',
+		'3rd/mp/mpextendedgcd.c',
+		'3rd/mp/mpfmt.c',
+		'3rd/mp/mpinvert.c',
+		'3rd/mp/mpleft.c',
+		'3rd/mp/mplogic.c',
+		'3rd/mp/mpmod.c',
+		'3rd/mp/mpmodop.c',
+		'3rd/mp/mpmul.c',
+		'3rd/mp/mprand.c',
+		'3rd/mp/mpright.c',
+		'3rd/mp/mpsub.c',
+		'3rd/mp/mptobe.c',
+		'3rd/mp/mptober.c',
+		'3rd/mp/mptod.c',
+		'3rd/mp/mptoi.c',
+		'3rd/mp/mptoui.c',
+		'3rd/mp/mptouv.c',
+		'3rd/mp/mptov.c',
+		'3rd/mp/mpvecadd.c',
+		'3rd/mp/mpveccmp.c',
+		'3rd/mp/mpvecdigmuladd.c',
+		'3rd/mp/mpvecsub.c',
+		'3rd/mp/mpvectscmp.c',
+		'3rd/mp/strtomp.c',
+		'3rd/mp/u16.c',
+	],
+	include_directories: include_directories(
+		'3rd/mp',
+		platform,
+	),
+	pic: false,
+)
 
-src_utf = [
-	'3rd/utf/rune.c',
-	'3rd/utf/runeistype.c',
-	'3rd/utf/runetotype.c',
-	'3rd/utf/utfnlen.c',
-]
+utf = static_library(
+	'utf',
+	sources: [
+		'3rd/utf/rune.c',
+		'3rd/utf/runeistype.c',
+		'3rd/utf/runetotype.c',
+		'3rd/utf/utfnlen.c',
+	],
+	include_directories: include_directories(
+		'3rd/utf',
+		platform,
+	),
+	pic: false,
+)
 
 flisp = executable(
 	flisp_exe_name,
 	sources: [
+		src_flisp,
 		boot,
 		builtins,
-		src_brieflz,
-		src_common,
-		src_flisp,
-		src_mp,
-		src_utf,
 	],
 	dependencies: [
 		math,
@@ -246,6 +275,12 @@
 		'3rd/utf',
 		platform,
 	),
+	link_with: [
+		brieflz,
+		common,
+		mp,
+		utf,
+	]
 )
 
 if platform == 'macos'
@@ -308,12 +343,14 @@
 		'mptest',
 		sources: [
 			'3rd/mp/test.c',
-			src_common,
-			src_mp,
 		],
 		include_directories: include_directories(
 			platform,
 		),
+		link_with: [
+			common,
+			mp,
+		],
 	)
 	test('mp', mptest)
 	mptest2 = executable(
@@ -323,8 +360,6 @@
 			'3rd/mp/test/gen.tab.c',
 			'3rd/mp/test/ld.c',
 			'3rd/mp/test/main.c',
-			src_common,
-			src_mp,
 		],
 		include_directories: include_directories(
 			'3rd/mp',
@@ -331,6 +366,10 @@
 			'3rd/mp/test',
 			platform,
 		),
+		link_with: [
+			common,
+			mp,
+		],
 	)
 	test('mp2', mptest2, timeout: -1)
 endif