Add release dates to NEWS
[openssl.git] / fips / fipsld
index 6184e2064e409f73bfa2541c7b4f8378ac9aaef1..50f20752b1cac1df9452b769dfff351d71da3719 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh -e
 #
-# Copyright (c) 2005-2007 The OpenSSL Project.
+# Copyright (c) 2005-2011 The OpenSSL Project.
 #
 # Depending on output file name, the script either embeds fingerprint
 # into libcrypto.so or static application. "Static" refers to static
@@ -71,7 +71,7 @@ PREMAIN_C=`dirname "${CANISTER_O}"`/fips_premain.c
 
 HMAC_KEY="etaonrishdlcupfm"
 
-case "`(uname -s) 2>/dev/null`" in
+case "${CROSS_COMPILE:-`(uname -s) 2>/dev/null`}" in
 OSF1|IRIX*)    _WL_PREMAIN="-Wl,-init,FINGERPRINT_premain"     ;;
 HP-UX)         _WL_PREMAIN="-Wl,+init,FINGERPRINT_premain"     ;;
 AIX)           _WL_PREMAIN="-Wl,-binitfini:FINGERPRINT_premain,-bnoobjreorder";;
@@ -113,10 +113,10 @@ lib*|*.dll)       # must be linking a shared lib...
        # Temporarily remove fipscanister.o from libcrypto.a!
        # We are required to use the standalone copy...
        if [ -n  "${FIPSLD_LIBCRYPTO}" ]; then
-           if ar d "${FIPSLD_LIBCRYPTO}" fipscanister.o; then
-               (ranlib "${FIPSLD_LIBCRYPTO}") 2>/dev/null || :
-               trap    'ar r "${FIPSLD_LIBCRYPTO}" "${CANISTER_O}";
-                        (ranlib "${FIPSLD_LIBCRYPTO}") 2>/dev/null || :;
+           if ${CROSS_COMPILE}ar d "${FIPSLD_LIBCRYPTO}" fipscanister.o; then
+               (${CROSS_COMPILE}ranlib "${FIPSLD_LIBCRYPTO}") 2>/dev/null || :
+               trap    '${CROSS_COMPILE}ar r "${FIPSLD_LIBCRYPTO}" "${CANISTER_O}";
+                        (${CROSS_COMPILE}ranlib "${FIPSLD_LIBCRYPTO}") 2>/dev/null || :;
                         sleep 1;
                         touch -c "${TARGET}"' 0
            fi
@@ -127,12 +127,15 @@ lib*|*.dll)       # must be linking a shared lib...
                "${PREMAIN_C}" \
                ${_WL_PREMAIN} "$@"
 
-       # generate signature...
-       if [ -z "${FIPS_SIG}" ]; then
-               SIG=`"${PREMAIN_DSO}" "${TARGET}"`
-       else
-               SIG=`"${FIPS_SIG}" -dso "${TARGET}"`
+       if [ "x${FIPS_SIG}" != "x" ]; then
+               # embed signature
+               "${FIPS_SIG}" "${TARGET}"
+               [ $? -ne 42 ] && exit $?
        fi
+
+       # generate signature...
+       SIG=`"${PREMAIN_DSO}" "${TARGET}"`
+
        /bin/rm -f "${TARGET}"
        if [ -z "${SIG}" ]; then
           echo "unable to collect signature"; exit 1
@@ -172,12 +175,15 @@ lib*|*.dll)       # must be linking a shared lib...
                "${PREMAIN_C}" \
                ${_WL_PREMAIN} "$@"
 
-       # generate signature...
-       if [ -z "${FIPS_SIG}" ]; then
-               SIG=`"${TARGET}"`
-       else
-               SIG=`"${FIPS_SIG}" -exe "${TARGET}"`
+       if [ "x${FIPS_SIG}" != "x" ]; then
+               # embed signature
+               "${FIPS_SIG}" "${TARGET}"
+               [ $? -ne 42 ] && exit $?
        fi
+
+       # generate signature...
+       SIG=`"${TARGET}"`
+
        /bin/rm -f "${TARGET}"
        if [ -z "${SIG}" ]; then
           echo "unable to collect signature"; exit 1