From 2469b3c58447e98e073ffe7ab6c9627dbbd1aa81 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Wed, 22 Nov 2017 11:20:48 -0800 Subject: Riscv ld-elf/stab failure and fake label cleanup. * as.c: Include write.h. (common_emul_init): Use FAKE_LABEL_NAME. * ecoff.c (add_file, ecoff_directive_end, ecoff_directive_loc): Likewise. (ecoff_build_symbols): Use FAKE_LABEL_CHAR. * expr.c (get_symbol_name): Use FAKE_LABEL_CHAR. Accept only if input_from_string is TRUE. * read.c (input_from_string): New. (read_symbol_name): Use FAKE_LABEL_CHAR. Accept only if input_from_string is TRUE. (temp_ilp): Set input_from_string to TRUE. (restore_ilp): Set input_from_string to FALSE. * read.h (input_from_string): Declare. * symbols.c: Include write.h (S_IS_LOCAL): Check for FAKE_LABEL_CHAR. (symbol_relc_make_sym): Fix comment refering to default fake label string. * write.h (FAKE_LABEL_CHAR): New. * config/tc-riscv.h (FAKE_LABEL_CHAR): Define. * testsuite/gas/all/err-fakelabel.s: New. --- gas/write.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gas/write.h') diff --git a/gas/write.h b/gas/write.h index a238320..4157bc9 100644 --- a/gas/write.h +++ b/gas/write.h @@ -27,6 +27,12 @@ #define FAKE_LABEL_NAME "L0\001" #endif +/* This is the special character used to indicate a fake symbol. Must be + present in FAKE_LABEL_NAME. */ +#ifndef FAKE_LABEL_CHAR +#define FAKE_LABEL_CHAR '\001' +#endif + #include "bit_fix.h" /* -- cgit v1.1