What kinds of symbols will the linker put into an executable ELF?

view full story

http://stackoverflow.com – Consider the following command: g++ -Wl,--start-group main.o liba.a -Wl,--end-group -o a.out Is it possible that in a.out there are some symbols defined in liba.a but not used by main.o? If yes, in what cases? Are there some tricks in writing the source code or invoking the compiler or linker to make this possible? According to my knowledge, this should not happen, but I did encounter a case like that recently. (HowTos)