Removed generation of the PT_GNU_PROPERTY segment
[external/binutils.git] / gas / symbols.c
index 9786795..918028f 100644 (file)
@@ -1097,19 +1097,6 @@ use_complex_relocs_for (symbolS * symp)
     case O_constant:
       return 0;
 
-    case O_symbol:
-    case O_symbol_rva:
-    case O_uminus:
-    case O_bit_not:
-    case O_logical_not:
-      if (  (S_IS_COMMON (symp->sy_value.X_add_symbol)
-          || S_IS_LOCAL (symp->sy_value.X_add_symbol))
-         &&
-             (S_IS_DEFINED (symp->sy_value.X_add_symbol)
-          && S_GET_SEGMENT (symp->sy_value.X_add_symbol) != expr_section))
-       return 0;
-      break;
-
     case O_multiply:
     case O_divide:
     case O_modulus:
@@ -1129,18 +1116,22 @@ use_complex_relocs_for (symbolS * symp)
     case O_gt:
     case O_logical_and:
     case O_logical_or:
-
-      if (  (S_IS_COMMON (symp->sy_value.X_add_symbol)
-          || S_IS_LOCAL (symp->sy_value.X_add_symbol))
-         &&
-           (S_IS_COMMON (symp->sy_value.X_op_symbol)
+      if ((S_IS_COMMON (symp->sy_value.X_op_symbol)
           || S_IS_LOCAL (symp->sy_value.X_op_symbol))
-
-         && S_IS_DEFINED (symp->sy_value.X_add_symbol)
          && S_IS_DEFINED (symp->sy_value.X_op_symbol)
-         && S_GET_SEGMENT (symp->sy_value.X_add_symbol) != expr_section
          && S_GET_SEGMENT (symp->sy_value.X_op_symbol) != expr_section)
-       return 0;
+       {
+       case O_symbol:
+       case O_symbol_rva:
+       case O_uminus:
+       case O_bit_not:
+       case O_logical_not:
+         if ((S_IS_COMMON (symp->sy_value.X_add_symbol)
+              || S_IS_LOCAL (symp->sy_value.X_add_symbol))
+             && S_IS_DEFINED (symp->sy_value.X_add_symbol)
+             && S_GET_SEGMENT (symp->sy_value.X_add_symbol) != expr_section)
+           return 0;
+       }
       break;
 
     default:
@@ -3288,7 +3279,7 @@ symbol_relc_make_sym (symbolS * sym)
      is defined as an expression or a plain value.  */
   if (   S_GET_SEGMENT (sym) == expr_section
       || S_GET_SEGMENT (sym) == absolute_section)
-    return symbol_relc_make_expr (& sym->sy_value);
+    return symbol_relc_make_expr (symbol_get_value_expression (sym));
 
   /* This may be a "fake symbol", referring to ".".
      Write out a special null symbol to refer to this position.  */