@@ -414,6 +414,15 @@ beforedepend:: utils/config_main.mli utils/config_boot.mli
414
414
$(addprefix compilerlibs/ocamlcommon., cma cmxa) : \
415
415
OC_COMMON_LINKFLAGS += -linkall
416
416
417
+ COMPRESSED_MARSHALING_FLAGS =-cclib -lcomprmarsh \
418
+ $(patsubst % , -ccopt % , $(filter-out -l% ,$(ZSTD_LIBS ) ) ) \
419
+ $(patsubst % , -cclib % , $(filter -l% ,$(ZSTD_LIBS ) ) ) \
420
+
421
+ compilerlibs/ocamlcommon.cmxa : \
422
+ OC_NATIVE_LINKFLAGS += $(COMPRESSED_MARSHALING_FLAGS )
423
+
424
+ compilerlibs/ocamlcommon.cmxa : stdlib/libcomprmarsh.$(A )
425
+
417
426
partialclean ::
418
427
rm -f compilerlibs/ocamlcommon.cma
419
428
@@ -927,8 +936,6 @@ ocamlc_SOURCES = driver/main.mli driver/main.ml
927
936
928
937
ocamlc$(EXE ) : OC_BYTECODE_LINKFLAGS += -compat-32 -g
929
938
930
- ocamlc.opt$(EXE ) : OC_NATIVE_LINKFLAGS += $(addprefix -cclib ,$(BYTECCLIBS ) )
931
-
932
939
partialclean ::
933
940
rm -f ocamlc ocamlc.exe ocamlc.opt ocamlc.opt.exe
934
941
@@ -1133,15 +1140,15 @@ runtime_COMMON_C_SOURCES = \
1133
1140
sys \
1134
1141
$(TSAN_NATIVE_RUNTIME_C_SOURCES ) \
1135
1142
$(UNIX_OR_WIN32 ) \
1136
- weak \
1137
- zstd
1143
+ weak
1138
1144
1139
1145
runtime_BYTECODE_ONLY_C_SOURCES = \
1140
1146
backtrace_byt \
1141
1147
fail_byt \
1142
1148
fix_code \
1143
1149
interp \
1144
- startup_byt
1150
+ startup_byt \
1151
+ zstd
1145
1152
runtime_BYTECODE_C_SOURCES = \
1146
1153
$(runtime_COMMON_C_SOURCES:%=runtime/%.c ) \
1147
1154
$(runtime_BYTECODE_ONLY_C_SOURCES:%=runtime/%.c )
@@ -1172,7 +1179,8 @@ runtime_PROGRAMS = runtime/ocamlrun$(EXE)
1172
1179
runtime_BYTECODE_STATIC_LIBRARIES = $(addprefix runtime/, \
1173
1180
ld.conf libcamlrun.$(A ) )
1174
1181
runtime_BYTECODE_SHARED_LIBRARIES =
1175
- runtime_NATIVE_STATIC_LIBRARIES = runtime/libasmrun.$(A )
1182
+ runtime_NATIVE_STATIC_LIBRARIES = \
1183
+ runtime/libasmrun.$(A ) runtime/libcomprmarsh.$(A )
1176
1184
runtime_NATIVE_SHARED_LIBRARIES =
1177
1185
1178
1186
ifeq "$(RUNTIMED ) " "true"
@@ -1223,6 +1231,8 @@ libasmruni_OBJECTS = \
1223
1231
libasmrunpic_OBJECTS = $(runtime_NATIVE_C_SOURCES:.c=.npic.$(O ) ) \
1224
1232
$(runtime_ASM_OBJECTS:.$(O ) =_libasmrunpic.$(O ) )
1225
1233
1234
+ libcomprmarsh_OBJECTS = runtime/zstd.n.o
1235
+
1226
1236
# # General (non target-specific) assembler and compiler flags
1227
1237
1228
1238
runtime_CPPFLAGS = -DCAMLDLLIMPORT= -DIN_CAML_RUNTIME
@@ -1339,6 +1349,9 @@ runtime/libasmrun_pic.$(A): $(libasmrunpic_OBJECTS)
1339
1349
runtime/libasmrun_shared.$(SO ) : $(libasmrunpic_OBJECTS )
1340
1350
$(V_MKDLL )$(MKDLL ) -o $@ $^ $(NATIVECCLIBS )
1341
1351
1352
+ runtime/libcomprmarsh.$(A ) : $(libcomprmarsh_OBJECTS )
1353
+ $(V_MKLIB )$(call MKLIB,$@ , $^ )
1354
+
1342
1355
# # Runtime target-specific preprocessor and compiler flags
1343
1356
1344
1357
runtime/% .$(O ) : OC_CPPFLAGS += $(runtime_CPPFLAGS )
@@ -1495,9 +1508,12 @@ runtimeopt: stdlib/libasmrun.$(A)
1495
1508
makeruntimeopt : runtime-allopt
1496
1509
stdlib/libasmrun.$(A ) : runtime-allopt
1497
1510
cd stdlib; $(LN ) ../runtime/libasmrun.$(A ) .
1511
+ stdlib/libcomprmarsh.$(A ) : runtime/libcomprmarsh.$(A )
1512
+ cd stdlib; $(LN ) ../runtime/libcomprmarsh.$(A ) .
1498
1513
1499
1514
clean ::
1500
1515
rm -f stdlib/libasmrun.a stdlib/libasmrun.lib
1516
+ rm -f stdlib/libcomprmarsh.a stdlib/libcomprmarsh.lib
1501
1517
1502
1518
# Dependencies
1503
1519
0 commit comments