Merge pull request #35209 from mnacamura/mbedtls-darwin

mbedtls: change extension .so -> .dylib on Darwin

authored by Jörg Thalheim and committed by GitHub 4a26c9f3 c7b340a1

+41 -11
+28
pkgs/development/libraries/mbedtls/darwin_dylib.patch
···
··· 1 + diff --git a/library/Makefile b/library/Makefile 2 + index 28f9231..ad9cc32 100644 3 + --- a/library/Makefile 4 + +++ b/library/Makefile 5 + @@ -103,9 +103,9 @@ libmbedtls.so: libmbedtls.$(SOEXT_TLS) 6 + echo " LN $@ -> $<" 7 + ln -sf $< $@ 8 + 9 + -libmbedtls.dylib: $(OBJS_TLS) 10 + +libmbedtls.dylib: $(OBJS_TLS) libmbedx509.dylib 11 + echo " LD $@" 12 + - $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS) 13 + + $(CC) -dynamiclib -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS) 14 + 15 + libmbedtls.dll: $(OBJS_TLS) libmbedx509.dll 16 + echo " LD $@" 17 + @@ -126,9 +126,9 @@ libmbedx509.so: libmbedx509.$(SOEXT_X509) 18 + echo " LN $@ -> $<" 19 + ln -sf $< $@ 20 + 21 + -libmbedx509.dylib: $(OBJS_X509) 22 + +libmbedx509.dylib: $(OBJS_X509) libmbedcrypto.dylib 23 + echo " LD $@" 24 + - $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509) 25 + + $(CC) -dynamiclib -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509) 26 + 27 + libmbedx509.dll: $(OBJS_X509) libmbedcrypto.dll 28 + echo " LD $@"
+13 -11
pkgs/development/libraries/mbedtls/default.nix
··· 12 13 nativeBuildInputs = [ perl ]; 14 15 - patchPhase = stdenv.lib.optionalString stdenv.isDarwin '' 16 substituteInPlace library/Makefile --replace "-soname" "-install_name" 17 substituteInPlace tests/scripts/run-test-suites.pl --replace "LD_LIBRARY_PATH" "DYLD_LIBRARY_PATH" 18 # Necessary for install_name_tool below 19 echo "LOCAL_LDFLAGS += -headerpad_max_install_names" >> programs/Makefile 20 ''; 21 22 - postPatch = '' 23 - patchShebangs . 24 - ''; 25 - 26 makeFlags = [ 27 "SHARED=1" 28 ]; 29 30 installFlags = [ ··· 32 ]; 33 34 postInstall = stdenv.lib.optionalString stdenv.isDarwin '' 35 - install_name_tool -change libmbedcrypto.so.0 $out/lib/libmbedcrypto.so.0 $out/lib/libmbedtls.so.10 36 - install_name_tool -change libmbedcrypto.so.0 $out/lib/libmbedcrypto.so.0 $out/lib/libmbedx509.so.0 37 - install_name_tool -change libmbedx509.so.0 $out/lib/libmbedx509.so.0 $out/lib/libmbedtls.so.10 38 39 for exe in $out/bin/*; do 40 - install_name_tool -change libmbedtls.so.10 $out/lib/libmbedtls.so.10 $exe 41 - install_name_tool -change libmbedx509.so.0 $out/lib/libmbedx509.so.0 $exe 42 - install_name_tool -change libmbedcrypto.so.0 $out/lib/libmbedcrypto.so.0 $exe 43 done 44 ''; 45
··· 12 13 nativeBuildInputs = [ perl ]; 14 15 + patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin_dylib.patch ]; 16 + 17 + postPatch = '' 18 + patchShebangs . 19 + '' + stdenv.lib.optionalString stdenv.isDarwin '' 20 substituteInPlace library/Makefile --replace "-soname" "-install_name" 21 substituteInPlace tests/scripts/run-test-suites.pl --replace "LD_LIBRARY_PATH" "DYLD_LIBRARY_PATH" 22 # Necessary for install_name_tool below 23 echo "LOCAL_LDFLAGS += -headerpad_max_install_names" >> programs/Makefile 24 ''; 25 26 makeFlags = [ 27 "SHARED=1" 28 + ] ++ stdenv.lib.optionals stdenv.isDarwin [ 29 + "DLEXT=dylib" 30 ]; 31 32 installFlags = [ ··· 34 ]; 35 36 postInstall = stdenv.lib.optionalString stdenv.isDarwin '' 37 + install_name_tool -change libmbedcrypto.dylib $out/lib/libmbedcrypto.dylib $out/lib/libmbedtls.dylib 38 + install_name_tool -change libmbedcrypto.dylib $out/lib/libmbedcrypto.dylib $out/lib/libmbedx509.dylib 39 + install_name_tool -change libmbedx509.dylib $out/lib/libmbedx509.dylib $out/lib/libmbedtls.dylib 40 41 for exe in $out/bin/*; do 42 + install_name_tool -change libmbedtls.dylib $out/lib/libmbedtls.dylib $exe 43 + install_name_tool -change libmbedx509.dylib $out/lib/libmbedx509.dylib $exe 44 + install_name_tool -change libmbedcrypto.dylib $out/lib/libmbedcrypto.dylib $exe 45 done 46 ''; 47