]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Allow inferring tmp_prefix from the dll name from a def file
authorMartin Storsj? <martin@martin.st>
Sat, 22 Jan 2022 14:32:35 +0000 (14:32 +0000)
committerNick Clifton <nickc@redhat.com>
Sat, 22 Jan 2022 14:32:35 +0000 (14:32 +0000)
binutils/ChangeLog
binutils/dlltool.c
libbacktrace/allocfail.sh [deleted file]

index d8f370dfd65e881bf751f7162d7bf887125ce0aa..09f392091e82c809e68bd258a07a29f5d2ef87ef 100644 (file)
@@ -1,3 +1,8 @@
+2022-01-22  Martin Storsjö  <martin@martin.st>
+
+       * dlltool.c (main): Allow inferring tmp_prefix from the dll name
+       from a def file.
+
 2022-01-22  Nick Clifton  <nickc@redhat.com>
 
        * configure: Regenerate.
index a1e2b484328ad69e302e55947e6cb45c896649ce..d95bf3f5470b999fa3b30bc887791859f48d81d1 100644 (file)
@@ -3930,23 +3930,6 @@ main (int ac, char **av)
        }
     }
 
-  if (tmp_prefix == NULL)
-    {
-      /* If possible use a deterministic prefix.  */
-      if (dll_name)
-        {
-          tmp_prefix = xmalloc (strlen (dll_name) + 2);
-          sprintf (tmp_prefix, "%s_", dll_name);
-          for (i = 0; tmp_prefix[i]; i++)
-            if (!ISALNUM (tmp_prefix[i]))
-              tmp_prefix[i] = '_';
-        }
-      else
-        {
-          tmp_prefix = prefix_encode ("d", getpid ());
-        }
-    }
-
   for (i = 0; mtable[i].type; i++)
     if (strcmp (mtable[i].type, mname) == 0)
       break;
@@ -4006,6 +3989,23 @@ main (int ac, char **av)
       optind++;
     }
 
+  if (tmp_prefix == NULL)
+    {
+      /* If possible use a deterministic prefix.  */
+      if (dll_name)
+        {
+          tmp_prefix = xmalloc (strlen (dll_name) + 2);
+          sprintf (tmp_prefix, "%s_", dll_name);
+          for (i = 0; tmp_prefix[i]; i++)
+            if (!ISALNUM (tmp_prefix[i]))
+              tmp_prefix[i] = '_';
+        }
+      else
+        {
+          tmp_prefix = prefix_encode ("d", getpid ());
+        }
+    }
+
   mangle_defs ();
 
   if (exp_name)
diff --git a/libbacktrace/allocfail.sh b/libbacktrace/allocfail.sh
deleted file mode 100755 (executable)
index 1f9894f..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/sh
-
-# allocfail.sh -- Test for libbacktrace library.
-# Copyright (C) 2018-2021 Free Software Foundation, Inc.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-
-#     (1) Redistributions of source code must retain the above copyright
-#     notice, this list of conditions and the following disclaimer.
-
-#     (2) Redistributions in binary form must reproduce the above copyright
-#     notice, this list of conditions and the following disclaimer in
-#     the documentation and/or other materials provided with the
-#     distribution.
-
-#     (3) The name of the author may not be used to
-#     endorse or promote products derived from this software without
-#     specific prior written permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-set -e
-
-if [ ! -f ./allocfail ]; then
-    # Hard failure.
-    exit 99
-fi
-
-allocs=$(./allocfail 2>&1)
-if [ "$allocs" = "" ]; then
-    # Hard failure.
-    exit 99
-fi
-
-# This generates the following output:
-# ...
-# $ allocfail.sh
-# allocs: 80495
-# Status changed to 0 at 1
-# Status changed to 1 at 3
-# Status changed to 0 at 11
-# Status changed to 1 at 12
-# Status changed to 0 at 845
-# ...
-#
-# We have status 0 for an allocation failure at:
-# - 1 because backtrace_create_state handles failure robustly
-# - 2 because the fail switches backtrace_full to !can_alloc mode.
-# - 11 because failure of elf_open_debugfile_by_buildid does not generate an
-#   error callback beyond the one for the allocation failure itself.
-
-echo "allocs: $allocs"
-
-step=1
-i=1
-passes=0
-prev_status=-1
-while [ $i -le $allocs ]; do
-    if ./allocfail $i >/dev/null 2>&1; status=$?; then
-       true
-    fi
-    if [ $status -gt 1 ]; then
-       echo "Unallowed fail found: $i"
-       # Failure.
-       exit 1
-    fi
-
-    # The test-case would run too long if we would excercise all allocs.
-    # So, run with step 1 initially, and increase the step once we have 10
-    # subsequent passes, and drop back to step 1 once we encounter another
-    # failure.  This takes ~2.6 seconds on an i7-6600U CPU @ 2.60GHz.
-    if [ $status -eq 0 ]; then
-       passes=$(($passes + 1))
-       if [ $passes -ge 10 ]; then
-           step=$((step * 10))
-           passes=0
-       fi
-    elif [ $status -eq 1 ]; then
-       passes=0
-       step=1
-    fi
-
-    if [ $status -ne $prev_status ]; then
-       echo "Status changed to $status at $i"
-    fi
-    prev_status=$status
-
-    i=$(($i + $step))
-done
-
-# Success.
-exit 0