https://sourceware.org/bugzilla/show_bug.cgi?id=21805
Bug ID: 21805 Summary: MIPS: Dynamic symbol --no-export-dynamic rules not respected for SVR4 executables Product: binutils Version: 2.30 (HEAD) Status: NEW Severity: normal Priority: P2 Component: ld Assignee: ma...@linux-mips.org Reporter: ma...@linux-mips.org Target Milestone: --- Target: mips*-*-linux-gnu As discussed: <https://sourceware.org/ml/binutils/2017-07/msg00181.html> and observed in regression testing: FAIL: Run indirect5 1 FAIL: Run indirect5 2 FAIL: indirect5a dynsym FAIL: indirect5b dynsym FAIL: Run indirect5 3 FAIL: Run indirect5 4 FAIL: Run indirect6 3 FAIL: Run indirect6 4 FAIL: indirect5c dynsym FAIL: indirect5d dynsym FAIL: indirect6c dynsym FAIL: indirect6d dynsym when making a SVR4 (-mno-plt) executable the MIPS BFD linker backend does not respect our dynamic symbol export rules and always makes all global and weak symbols dynamic, regardless of the --no-export-dynamic command-line option, be it implied or specified. When making a PLT (-mplt) executable the backend does follow the rules though, and both --export-dynamic and --no-export-dynamic command-line options work as documented. According to the ELF gABI: "An implementation may restrict the set of global and weak symbols that are externally visible.", so we are allowed to treat symbols like this. This affects symbol preemption and therefore is a user-visible peculiarity that is also contrary to our documentation. So it will make sense if we make MIPS SVR4 executables consistent in this respect with MIPS PLT executables, as well as other targets. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils