+2017-12-14 Tom de Vries <tom@codesourcery.com>
+
+ * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
+ Add item for weak_undefined.
+
2017-12-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/67842
@item comdat_group
Target uses comdat groups.
+@item weak_undefined
+Target supports weak undefined symbols.
+
@item word_mode_no_slow_unalign
Target does not have slow unaligned access when doing word size accesses.
@end table
+2017-12-14 Tom de Vries <tom@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_weak_undefined): New
+ proc.
+ * gcc.dg/visibility-22.c: Require effective target weak_undefined.
+
2017-12-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/83326
/* PR target/32219 */
/* { dg-do run } */
/* { dg-require-visibility "" } */
+/* { dg-require-effective-target weak_undefined } */
/* { dg-options "-O2 -fPIC" { target fpic } } */
-/* This test requires support for undefined weak symbols. This support
- is not available on hppa*-*-hpux*. The test is skipped rather than
- xfailed to suppress the warning that would otherwise arise. */
-/* { dg-skip-if "" { "hppa*-*-hpux*" "*-*-aix*" "*-*-darwin*" } } */
extern void foo () __attribute__((weak,visibility("hidden")));
int
}
}
+# return 1 if weak undefined symbols are supported.
+
+proc check_effective_target_weak_undefined { } {
+ return [check_runtime weak_undefined {
+ extern void foo () __attribute__((weak));
+ int main (void) { if (foo) return 1; return 0; }
+ } ""]
+}
+
###############################
# proc check_weak_override_available { }
###############################