Hello grischka,

I had to revert a small part of your da8c62 commit ("various stuff"):

    tccasm.c:
    - keep forward asm labels static, otherwise they will endup
      in dynsym eventually.

A symbol which stays undefined until the end is implicitely STB_GLOBAL, 
even without a .globl directive.  I've added a testcase to that effect.  
Before just reverting the hunk I've tried to move it somewhere else in 
order not to lose the effect mentioned above.

But in the end I wasn't really successful in constructing a testcase where 
such symbol ends up in dynsym when it shouldn't.  E.g. local labels (the 
numeric ones) are always already constructed as VT_STATIC.  And normal 
labels are also created VT_STATIC, except if they already were associated 
with a .globl directive.  So I don't really see how the problem above 
could have happened.

To recollect, give the following assembler snippet:

jmp 1f
local:
call local
call undefined
call global
.globl global
global:
1: nop

the symbols L..1 and local need to be STB_LOCAL, while undefined and 
global need to be STB_GLOBAL.

So, if you have a testcase or remember the situation that you tried to 
fix, can you tell me which one it was? :)


Ciao,
Michael.

_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to