Skip to content

R uses private function in libc (PR#9107)

1 message · Brian Ripley

#
On Fri, 28 Jul 2006, Thomas Lumley wrote, quoting someone else:
I don't see this: my FC3 AMD64 *g*libc 2.3.6 system gives

  2148: 00000000     4 OBJECT  GLOBAL DEFAULT  UND 
__libc_stack_end at GLIBC_2.1 (22)
  9516: 00000000     4 OBJECT  GLOBAL DEFAULT  UND 
__libc_stack_end@@GLIBC_2

so the claim is not a general property of glibc 2.3.6.  Indeed, it seems 
rather to be a question of visibility: the symbol has NOT `gone away 
completely' but been hidden in the .so (it is visible in libc.a in vanilla 
glibc 2.4).

It had already been said that many systems using glibc 2.3.6 or 2.4 do 
export the symbol, as evidenced by the RPMs that exist for FC3 (at 2.3.6) 
and FC5 (at 2.4), the runs on the Debian test farm, and the absence of 
reported problems from anywhere else on any Linux system.  (Not only that, 
the code detects C stack overflows at the intended stack size limit, so 
the symbol linked to has the expected value.)

I had checked the glibc Changelogs and found nothing relevant, and it 
seems this is an undocumented change that the major distros have reverted 
and hence not much of a problem.
I've added a test for the symbol in R-devel.  I did originally expect to 
need one for non-glibc Linuxen (e.g. using Intel and PG compilers) but 
they do find the symbol.  Hopefully this will continue to be the case for 
the major distros.