Some library function is shown like below after linking.
0x0804842e <+35>:   call   0x80482e0 <printf@plt>
So, I understood the usage of @plt on disassembly.   
However, yesterday, I some some weird code slice.
Below is part of libstdbuf.s, which is inclued in Coreutils:  
.L31:
    .loc 1 142 0
    testl   %edi, %edi
    je  .L32
    .loc 1 143 0
    movl    stdin@GOT(%ebx), %eax   # <========= here
    movl    %edi, %edx
As you can see, code accesses to stdin@GOT.   
Hmm... I've never seen blabla@GOT syntax before..    
Question:
What exactly
stdin@GOT(%ebx), %eaxline do?Is this linker-generated code? If yes, why is it at
GOT, instead ofPLT?- And.. How can I know 
stdin@GOTaddress information?
( unlike general global symbols, the address isn't shown on symbol table. See below) 
.
jiwon@jiwon$ objdump -t -T ./libstdbuf.so | grep stdin
  00000000       O *UND*    00000000              stdin@@GLIBC_2.0
  00000000      DO *UND*    00000000  GLIBC_2.0   stdin