Back to index

glibc  2.9
symbol-hacks.h
Go to the documentation of this file.
00001 /* Hacks needed for symbol manipulation.
00002    Copyright (C) 2004 Free Software Foundation, Inc.
00003    This file is part of the GNU C Library.
00004 
00005    The GNU C Library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009 
00010    The GNU C Library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014 
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with the GNU C Library; if not, write to the Free
00017    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018    02111-1307 USA.  */
00019 
00020 /* A very dirty trick: gcc emits references to __divdi3, __udivdi3,
00021    __moddi3, and __umoddi3.  These functions are exported and
00022    therefore we get PLTs.  Unnecessarily so.  Changing gcc is a big
00023    task which might not be worth it so we play tricks with the
00024    assembler.  */
00025 #if !defined __ASSEMBLER__ && !defined in_divdi3_c && !defined NOT_IN_libc && defined SHARED
00026 asm ("__divdi3 = __divdi3_internal");
00027 asm ("__udivdi3 = __udivdi3_internal");
00028 asm ("__moddi3 = __moddi3_internal");
00029 asm ("__umoddi3 = __umoddi3_internal");
00030 #endif