binutils: Add AC_FUNC_MMAP to configure.ac
[binutils-gdb.git] / binutils / objcopy.c
index 9af3c1eb1b3cd377417a9c560385d5ce5966ec86..1d29059b8df90eebab2dc9ec99ff1796f7ff2a3b 100644 (file)
@@ -4753,6 +4753,8 @@ copy_main (int argc, char *argv[])
   bfd_boolean show_version = FALSE;
   bfd_boolean change_warn = TRUE;
   bfd_boolean formats_info = FALSE;
+  bfd_boolean use_globalize = FALSE;
+  bfd_boolean use_keep_global = FALSE;
   int c;
   struct stat statbuf;
   const bfd_arch_info_type *input_arch = NULL;
@@ -4871,10 +4873,12 @@ copy_main (int argc, char *argv[])
          break;
 
        case OPTION_GLOBALIZE_SYMBOL:
+         use_globalize = TRUE;
          add_specific_symbol (optarg, globalize_specific_htab);
          break;
 
        case 'G':
+         use_keep_global = TRUE;
          add_specific_symbol (optarg, keepglobal_specific_htab);
          break;
 
@@ -5306,11 +5310,13 @@ copy_main (int argc, char *argv[])
          break;
 
        case OPTION_GLOBALIZE_SYMBOLS:
+         use_globalize = TRUE;
          add_specific_symbols (optarg, globalize_specific_htab,
                                &globalize_specific_buffer);
          break;
 
        case OPTION_KEEPGLOBAL_SYMBOLS:
+         use_keep_global = TRUE;
          add_specific_symbols (optarg, keepglobal_specific_htab,
                                &keepglobal_specific_buffer);
          break;
@@ -5446,6 +5452,9 @@ copy_main (int argc, char *argv[])
        }
     }
 
+  if (use_globalize && use_keep_global)
+    fatal(_("--globalize-symbol(s) is incompatible with -G/--keep-global-symbol(s)"));
+
   if (formats_info)
     {
       display_info ();
@@ -5650,7 +5659,8 @@ main (int argc, char *argv[])
   strip_symbols = STRIP_UNDEF;
   discard_locals = LOCALS_UNDEF;
 
-  bfd_init ();
+  if (bfd_init () != BFD_INIT_MAGIC)
+    fatal (_("fatal error: libbfd ABI mismatch"));
   set_default_bfd_target ();
 
   if (is_strip < 0)