diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ldlang.c | 3 | ||||
-rw-r--r-- | ld/ldmain.c | 4 | ||||
-rw-r--r-- | ld/ldmisc.c | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d | 45 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d | 14 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d | 2 |
6 files changed, 64 insertions, 14 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c index 0bb9e17..97fdb91 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -5062,7 +5062,8 @@ print_input_section (asection *i, bool is_discarded) } print_spaces (SECTION_NAME_MAP_LENGTH - len); - if (i->output_section != NULL + if ((i->flags & SEC_EXCLUDE) == 0 + && i->output_section != NULL && i->output_section->owner == link_info.output_bfd) addr = i->output_section->vma + i->output_offset; else diff --git a/ld/ldmain.c b/ld/ldmain.c index 716272b..67c60c3 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -563,8 +563,8 @@ report_phases (FILE * file, time_t * start, char ** argv) COLUMN_ENTRY (pd->duration, "ld", 1); #if defined (HAVE_GETRUSAGE) COLUMN_ENTRY (pd->use.ru_maxrss, "ld", 2); - COLUMN_ENTRY (pd->use.ru_utime.tv_sec, "ld", 3); - COLUMN_ENTRY (pd->use.ru_stime.tv_sec, "ld", 4); + COLUMN_ENTRY ((int64_t) pd->use.ru_utime.tv_sec, PRId64, 3); + COLUMN_ENTRY ((int64_t) pd->use.ru_stime.tv_sec, PRId64, 4); #endif fprintf (file, "\n"); } diff --git a/ld/ldmisc.c b/ld/ldmisc.c index 9ee0781..3f305fa 100644 --- a/ld/ldmisc.c +++ b/ld/ldmisc.c @@ -42,7 +42,6 @@ %C clever filename:linenumber with function %D like %C, but no function name %E current bfd error or errno - %F error is fatal %G like %D, but only function name %H like %C but in addition emit section+offset %P print program name @@ -70,7 +69,6 @@ void vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning) { - bool isfatal = false; const char *scan; int arg_type; unsigned int arg_count = 0; @@ -280,11 +278,6 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning) } break; - case 'F': - /* Error is fatal. */ - isfatal = true; - break; - case 'P': /* Print program name. */ fprintf (fp, "%s", program_name); @@ -586,9 +579,6 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning) if (is_warning && config.fatal_warnings) config.make_executable = false; - - if (isfatal) - xexit (1); } /* Format info message and print on stdout. */ diff --git a/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d new file mode 100644 index 0000000..f8b1c21 --- /dev/null +++ b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d @@ -0,0 +1,45 @@ +#name: No '-z force-bti' with '-z memory-seal' with feature properties (BTI) forces the generation of BTI PLT (shared) +#source: bti-plt-1.s +#source: bti-plt-2.s +#target: [check_shared_lib_support] +#as: -mabi=lp64 -defsym __property_bti__=1 +#ld: -shared -z memory-seal -T bti-plt.ld -L./tmpdir -lbti-plt-so +#objdump: -dr -j .plt + +[^:]*: *file format elf64-.*aarch64 + +Disassembly of section \.plt: + +[0-9]+ <\.plt>: +.*: d503245f bti c +.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9400e11 ldr x17, \[x16, #24\] +.*: 91006210 add x16, x16, #0x18 +.*: d61f0220 br x17 +.*: d503201f nop +.*: d503201f nop + +[0-9]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401211 ldr x17, \[x16, #32\] +.*: 91008210 add x16, x16, #0x20 +.*: d61f0220 br x17 + +[0-9]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401611 ldr x17, \[x16, #40\] +.*: 9100a210 add x16, x16, #0x28 +.*: d61f0220 br x17 + +[0-9]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401a11 ldr x17, \[x16, #48\] +.*: 9100c210 add x16, x16, #0x30 +.*: d61f0220 br x17 + +[0-9]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401e11 ldr x17, \[x16, #56\] +.*: 9100e210 add x16, x16, #0x38 +.*: d61f0220 br x17 diff --git a/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d new file mode 100644 index 0000000..0dadcc9 --- /dev/null +++ b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d @@ -0,0 +1,14 @@ +#name: No '-z force-bti' with '-z memory-seal' all input objects have BTI emits BTI feature (shared) +#source: bti-plt-1.s +#source: bti-plt-2.s +#target: [check_shared_lib_support] +#as: -mabi=lp64 -defsym __property_bti__=1 +#ld: -z memory-seal -shared -T bti-plt.ld +#readelf: -n + +Displaying notes found in: .note.gnu.property +[ ]+Owner[ ]+Data size[ ]+Description + GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 + Properties: memory seal\s +\s+AArch64 feature: BTI +#pass diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d index 1bf956c..4b0e424 100644 --- a/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d +++ b/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d @@ -2,7 +2,7 @@ #source: bti-plt-1.s #target: [check_shared_lib_support] #as: -mabi=lp64 -defsym __property_bti__=1 -#ld: -shared -z force-bti -T bti-plt.ld -L./tmpdir -lbti-plt-so +#ld: -shared -T bti-plt.ld -L./tmpdir -lbti-plt-so #objdump: -dr -j .plt [^:]*: *file format elf64-.*aarch64 |