~ubuntu-branches/ubuntu/trusty/eglibc/trusty

« back to all changes in this revision

Viewing changes to ports/sysdeps/mips/init-first.c

  • Committer: Package Import Robot
  • Author(s): Adam Conrad
  • Date: 2013-01-10 18:39:35 UTC
  • mfrom: (1.5.2) (4.4.24 experimental)
  • Revision ID: package-import@ubuntu.com-20130110183935-afsgfxkmg7wk5eaj
Tags: 2.17-0ubuntu1
* Merge with Debian, bringing in a new upstream and many small fixes:
  - patches/any/cvs-malloc-deadlock.diff: Dropped, merged upstream.
  - patches/ubuntu/lddebug-scopes.diff: Rebase for upstream changes.
  - patches/ubuntu/local-CVE-2012-3406.diff: Rebased against upstream.
  - patches/ubuntu/no-asm-mtune-i686.diff: Fixed in recent binutils.
* This upstream merge fixes a nasty hang in pulseaudio (LP: #1085342)
* Bump MIN_KERNEL_SUPPORTED to 2.6.32 on ARM, now that we no longer
  have to support shonky 2.6.31 kernels on imx51 babbage builders.
* Drop patches/ubuntu/local-disable-nscd-host-caching.diff, as these
  issues were apparently resolved upstream a while ago (LP: #613662)
* Fix the compiled-in bug URL to point to launchpad.net, not Debian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Initialization code run first thing by the ELF startup code.  For mips/Unix.
2
 
   Copyright (C) 1996, 1997, 2010 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
 
   The GNU C Library is distributed in the hope that it will be useful,
11
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
 
   Lesser General Public License for more details.
14
 
 
15
 
   You should have received a copy of the GNU Lesser General Public
16
 
   License along with the GNU C Library.  If not, see
17
 
   <http://www.gnu.org/licenses/>.  */
18
 
 
19
 
#include <unistd.h>
20
 
 
21
 
extern void __libc_init (int, char **, char **);
22
 
extern void __libc_global_ctors (void);
23
 
 
24
 
 
25
 
static void
26
 
init (int *data)
27
 
{
28
 
  int argc = *data;
29
 
  char **argv = (void *) (data + 1);
30
 
  char **envp = &argv[argc + 1];
31
 
 
32
 
  __environ = envp;
33
 
  __libc_init (argc, argv, envp);
34
 
}
35
 
 
36
 
#ifdef SHARED
37
 
/* This function is called to initialize the shared C library.
38
 
   It is called just before the user _start code from mips/elf/start.S,
39
 
   with the stack set up as that code gets it.  */
40
 
 
41
 
/* NOTE!  The linker notices the magical name `_init' and sets the DT_INIT
42
 
   pointer in the dynamic section based solely on that.  It is convention
43
 
   for this function to be in the `.init' section, but the symbol name is
44
 
   the only thing that really matters!!  */
45
 
/*void _init (int argc, ...) __attribute__ ((unused, section (".init")));*/
46
 
 
47
 
void
48
 
_init (int argc, ...)
49
 
{
50
 
  init (&argc);
51
 
 
52
 
#ifndef NO_CTORS_DTORS_SECTIONS
53
 
  __libc_global_ctors ();
54
 
#endif
55
 
}
56
 
#endif
57
 
 
58
 
 
59
 
void
60
 
__libc_init_first (int argc __attribute__ ((unused)), ...)
61
 
{
62
 
#ifndef SHARED
63
 
  init (&argc);
64
 
#endif
65
 
}