~ubuntu-branches/ubuntu/utopic/eglibc/utopic

« back to all changes in this revision

Viewing changes to ports/sysdeps/mips/mips32/crti.S

  • Committer: Package Import Robot
  • Author(s): Adam Conrad
  • Date: 2012-10-26 05:14:58 UTC
  • mfrom: (1.5.1) (4.4.22 experimental)
  • Revision ID: package-import@ubuntu.com-20121026051458-oryotr4i03ob5pab
Tags: 2.16-0ubuntu1
* Merge with unreleased 2.16 in Debian experimental, remaining changes:
  - Drop the Breaks line from libc6, which refers to a Debian transition
  - Remove the libc6 recommends on libc6-i686, which we don't build
  - Enable libc6{,-dev}-armel on armhf and libc6{-dev}-armhf on armel
  - Ship update-locale and validlocale in /usr/sbin in libc-bin
  - Don't build locales or locales-all in Ubuntu, we rely on langpacks
  - Heavily mangle the way we do service restarting on major upgrades
  - Use different MIN_KERNEL_SUPPORTED versions than Debian, due to
    buildd needs.  This should be universally bumped to 3.2.0 once all
    our buildds (including the PPA guests) are running precise kernels
  - Build i386 variants as -march=i686, build amd64 with -O3, and build
    ppc64 variants (both 64-bit and 32-bit) with -O3 -fno-tree-vectorize
  - Re-enable unsubmitted-ldconfig-cache-abi.diff and rebuild the cache
    on upgrades from previous versions that used a different constant
  - debian/patches/any/local-CVE-2012-3406.diff: switch to malloc when
    array grows too large to handle via alloca extension (CVE-2012-3406)
  - Build generic i386/i686 flavour with -mno-tls-direct-seg-refs
* Changes added/dropped with this merge while reducing our delta:
  - Stop building glibc docs from the eglibc source, and instead make
    the glibc-docs stub have a hard dependency on glibc-doc-reference
  - Remove outdated conflicts against ancient versions of ia32-libs
  - Drop the tzdata dependency from libc6, it's in required and minimal
  - Use gcc-4.7/g++-4.7 by default on all our supported architectures
  - Save our historical changelog as changelog.ubuntu in the source
  - Drop nscd's libaudit build-dep for now, as libaudit is in universe
  - Drop the unnecessary Breaks from libc6 to locales and locales-all
  - Ship xen's ld.so.conf.d snippet as /etc/ld.so.conf.d/libc6-xen.conf
* Disable hard failures on the test suite for the first upload to raring

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Special .init and .fini section support for MIPS (o32).
 
2
   Copyright (C) 1995-2012 Free Software Foundation, Inc.
 
3
   This file is part of the GNU C Library.
 
4
 
 
5
   The GNU C Library is free software; you can redistribute it and/or
 
6
   modify it under the terms of the GNU Lesser General Public
 
7
   License as published by the Free Software Foundation; either
 
8
   version 2.1 of the License, or (at your option) any later version.
 
9
 
 
10
   In addition to the permissions in the GNU Lesser General Public
 
11
   License, the Free Software Foundation gives you unlimited
 
12
   permission to link the compiled version of this file with other
 
13
   programs, and to distribute those programs without any restriction
 
14
   coming from the use of this file. (The GNU Lesser General Public
 
15
   License restrictions do apply in other respects; for example, they
 
16
   cover modification of the file, and distribution when not linked
 
17
   into another program.)
 
18
 
 
19
   Note that people who make modified versions of this file are not
 
20
   obligated to grant this special exception for their modified
 
21
   versions; it is their choice whether to do so. The GNU Lesser
 
22
   General Public License gives permission to release a modified
 
23
   version without this exception; this exception also makes it
 
24
   possible to release a modified version which carries forward this
 
25
   exception.
 
26
 
 
27
   The GNU C Library is distributed in the hope that it will be useful,
 
28
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
29
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
30
   Lesser General Public License for more details.
 
31
 
 
32
   You should have received a copy of the GNU Lesser General Public
 
33
   License along with the GNU C Library.  If not, see
 
34
   <http://www.gnu.org/licenses/>.  */
 
35
 
 
36
/* crti.S puts a function prologue at the beginning of the .init and
 
37
   .fini sections and defines global symbols for those addresses, so
 
38
   they can be called as functions.  The symbols _init and _fini are
 
39
   magic and cause the linker to emit DT_INIT and DT_FINI.  */
 
40
 
 
41
#include <libc-symbols.h>
 
42
 
 
43
#ifndef PREINIT_FUNCTION
 
44
# define PREINIT_FUNCTION __gmon_start__
 
45
#endif
 
46
 
 
47
#ifndef PREINIT_FUNCTION_WEAK
 
48
# define PREINIT_FUNCTION_WEAK 1
 
49
#endif
 
50
 
 
51
#if PREINIT_FUNCTION_WEAK
 
52
        weak_extern (PREINIT_FUNCTION)
 
53
#else
 
54
        .hidden PREINIT_FUNCTION
 
55
#endif
 
56
 
 
57
        .section .init,"ax",@progbits
 
58
        .p2align 2
 
59
        .globl _init
 
60
        .type _init, @function
 
61
_init:
 
62
        .set noreorder
 
63
        .cpload $25
 
64
        .set reorder
 
65
        addiu $sp,$sp,-32
 
66
        .cprestore 16
 
67
        sw $31,28($sp)
 
68
#if PREINIT_FUNCTION_WEAK
 
69
        lw $2,%got(PREINIT_FUNCTION)($28)
 
70
        beq $2,$0,.Lno_weak_fn
 
71
        lw $25,%call16(PREINIT_FUNCTION)($28)
 
72
        .reloc 1f,R_MIPS_JALR,PREINIT_FUNCTION
 
73
1:      jalr $25
 
74
.Lno_weak_fn:
 
75
#else
 
76
        lw $25,%got(PREINIT_FUNCTION)($28)
 
77
        .reloc 1f,R_MIPS_JALR,PREINIT_FUNCTION
 
78
1:      jalr $25
 
79
#endif
 
80
 
 
81
        .section .fini,"ax",@progbits
 
82
        .p2align 2
 
83
        .globl _fini
 
84
        .type _fini, @function
 
85
_fini:
 
86
        .set noreorder
 
87
        .cpload $25
 
88
        .set reorder
 
89
        addiu $sp,$sp,-32
 
90
        .cprestore 16
 
91
        sw $31,28($sp)