Set the default DLL chracteristics to 0 for Cygwin based targets.
authorJeremy Drake <cygwin@jdrake.com>
Wed, 17 Nov 2021 16:24:53 +0000 (16:24 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 17 Nov 2021 16:24:53 +0000 (16:24 +0000)
* emultempl/pep.em (DEFAULT_DLL_CHARACTERISTICS): Set to 0 for
Cygwin targets.
* emultempl/pep.em (DEFAULT_DLL_CHARACTERISTICS): Likewise.

ld/ChangeLog
ld/emultempl/pe.em
ld/emultempl/pep.em

index d68b8203c0b091eec1fe15933f54acd92cf9aebc..cd732301887d7c986e708440d63641ac715b8b04 100644 (file)
@@ -1,3 +1,9 @@
+2021-11-17  Jeremy Drake  <cygwin@jdrake.com>
+
+       * emultempl/pep.em (DEFAULT_DLL_CHARACTERISTICS): Set to 0 for
+       Cygwin targets.
+       * emultempl/pep.em (DEFAULT_DLL_CHARACTERISTICS): Likewise.
+
 2021-11-17  Nick Clifton  <nickc@redhat.com>
 
        PR 28452
index c5aed5f126a95b98c7dba1609b7bab1690689aee..728ad046917c4d225c0b0fec43f991233d6577ff 100644 (file)
@@ -5,6 +5,16 @@ if [ -z "$MACHINE" ]; then
 else
   OUTPUT_ARCH=${ARCH}:${MACHINE}
 fi
+
+case ${target} in
+  *-*-cygwin*)
+    cygwin_behavior=1
+    ;;
+  *)
+    cygwin_behavior=0;
+    ;;
+esac
+
 rm -f e${EMULATION_NAME}.c
 (echo;echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-)
 fragment <<EOF
@@ -104,7 +114,8 @@ fragment <<EOF
 #define DEFAULT_PSEUDO_RELOC_VERSION 1
 #endif
 
-#define DEFAULT_DLL_CHARACTERISTICS    (IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
+#define DEFAULT_DLL_CHARACTERISTICS    (${cygwin_behavior} ? 0 : \
+                                          IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
                                         | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)
 
 #if defined(TARGET_IS_i386pe) || ! defined(DLL_SUPPORT)
index c6fd8b8f8d942abac0b085fa0c55fc2207100bdc..430351b648153ac4f63e4c7de3eadfe59a7bfca0 100644 (file)
@@ -9,9 +9,11 @@ fi
 case ${target} in
   *-*-cygwin*)
     move_default_addr_high=1
+    cygwin_behavior=1
     ;;
   *)
     move_default_addr_high=0;
+    cygwin_behavior=0;
     ;;
 esac
 
@@ -99,9 +101,10 @@ fragment <<EOF
 #define DLL_SUPPORT
 #endif
 
-#define DEFAULT_DLL_CHARACTERISTICS    (IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
+#define DEFAULT_DLL_CHARACTERISTICS    (${cygwin_behavior} ? 0 : \
+                                          IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
                                         | IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA \
-                                        | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)
+                                        | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)
 
 #if defined(TARGET_IS_i386pep) || ! defined(DLL_SUPPORT)
 #define        PE_DEF_SUBSYSTEM                3