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

« back to all changes in this revision

Viewing changes to .pc/any/submitted-ldsodefs_rtld_debug.diff/sysdeps/generic/ldsodefs.h

  • 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:
41
41
 
42
42
__BEGIN_DECLS
43
43
 
 
44
#define VERSYMIDX(sym)  (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
 
45
#define VALIDX(tag)     (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
 
46
                         + DT_EXTRANUM + DT_VALTAGIDX (tag))
 
47
#define ADDRIDX(tag)    (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
 
48
                         + DT_EXTRANUM + DT_VALNUM + DT_ADDRTAGIDX (tag))
 
49
 
44
50
/* We use this macro to refer to ELF types independent of the native wordsize.
45
51
   `ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'.  */
46
52
#define ELFW(type)      _ElfW (ELF, __ELF_NATIVE_CLASS, type)
182
188
  };
183
189
 
184
190
 
185
 
/* Type for list of auditing interfaces.  */
186
 
struct La_i86_regs;
187
 
struct La_i86_retval;
188
 
struct La_x86_64_regs;
189
 
struct La_x86_64_retval;
190
 
struct La_x32_regs;
191
 
struct La_x32_retval;
192
 
struct La_ppc32_regs;
193
 
struct La_ppc32_retval;
194
 
struct La_ppc64_regs;
195
 
struct La_ppc64_retval;
196
 
struct La_sh_regs;
197
 
struct La_sh_retval;
198
 
struct La_s390_32_regs;
199
 
struct La_s390_32_retval;
200
 
struct La_s390_64_regs;
201
 
struct La_s390_64_retval;
202
 
struct La_sparc32_regs;
203
 
struct La_sparc32_retval;
204
 
struct La_sparc64_regs;
205
 
struct La_sparc64_retval;
206
 
 
207
191
struct audit_ifaces
208
192
{
209
193
  void (*activity) (uintptr_t *, unsigned int);
219
203
  };
220
204
  union
221
205
  {
222
 
    Elf32_Addr (*i86_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
223
 
                                    uintptr_t *, struct La_i86_regs *,
224
 
                                    unsigned int *, const char *name,
225
 
                                    long int *framesizep);
226
 
    Elf64_Addr (*x86_64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
227
 
                                       uintptr_t *, struct La_x86_64_regs *,
228
 
                                       unsigned int *, const char *name,
229
 
                                       long int *framesizep);
230
 
    Elf32_Addr (*x32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
231
 
                                    uintptr_t *, struct La_x32_regs *,
232
 
                                    unsigned int *, const char *name,
233
 
                                    long int *framesizep);
234
 
    Elf32_Addr (*ppc32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
235
 
                                      uintptr_t *, struct La_ppc32_regs *,
236
 
                                      unsigned int *, const char *name,
237
 
                                      long int *framesizep);
238
 
    Elf64_Addr (*ppc64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
239
 
                                      uintptr_t *, struct La_ppc64_regs *,
240
 
                                      unsigned int *, const char *name,
241
 
                                      long int *framesizep);
242
 
    uintptr_t (*sh_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
243
 
                                  uintptr_t *, const struct La_sh_regs *,
244
 
                                  unsigned int *, const char *name,
245
 
                                  long int *framesizep);
246
 
    Elf32_Addr (*s390_32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
247
 
                                        uintptr_t *, struct La_s390_32_regs *,
248
 
                                        unsigned int *, const char *name,
249
 
                                        long int *framesizep);
250
 
    Elf64_Addr (*s390_64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
251
 
                                        uintptr_t *, struct La_s390_64_regs *,
252
 
                                        unsigned int *, const char *name,
253
 
                                        long int *framesizep);
254
 
    Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int,
255
 
                                        uintptr_t *, uintptr_t *,
256
 
                                        const struct La_sparc32_regs *,
257
 
                                        unsigned int *, const char *name,
258
 
                                        long int *framesizep);
259
 
    Elf64_Addr (*sparc64_gnu_pltenter) (Elf64_Sym *, unsigned int,
260
 
                                        uintptr_t *, uintptr_t *,
261
 
                                        const struct La_sparc64_regs *,
262
 
                                        unsigned int *, const char *name,
263
 
                                        long int *framesizep);
264
206
#ifdef ARCH_PLTENTER_MEMBERS
265
207
    ARCH_PLTENTER_MEMBERS;
266
208
#endif
267
209
  };
268
210
  union
269
211
  {
270
 
    unsigned int (*i86_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
271
 
                                     uintptr_t *, const struct La_i86_regs *,
272
 
                                     struct La_i86_retval *, const char *);
273
 
    unsigned int (*x86_64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
274
 
                                        uintptr_t *,
275
 
                                        const struct La_x86_64_regs *,
276
 
                                        struct La_x86_64_retval *,
277
 
                                        const char *);
278
 
    unsigned int (*x32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
279
 
                                     uintptr_t *,
280
 
                                     const struct La_x32_regs *,
281
 
                                     struct La_x86_64_retval *,
282
 
                                     const char *);
283
 
    unsigned int (*ppc32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
284
 
                                       uintptr_t *,
285
 
                                       const struct La_ppc32_regs *,
286
 
                                       struct La_ppc32_retval *, const char *);
287
 
    unsigned int (*ppc64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
288
 
                                       uintptr_t *,
289
 
                                       const struct La_ppc64_regs *,
290
 
                                       struct La_ppc64_retval *, const char *);
291
 
    unsigned int (*sh_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
292
 
                                    uintptr_t *, const struct La_sh_regs *,
293
 
                                    struct La_sh_retval *, const char *);
294
 
    unsigned int (*s390_32_gnu_pltexit) (Elf32_Sym *, unsigned int,
295
 
                                         uintptr_t *, uintptr_t *,
296
 
                                         const struct La_s390_32_regs *,
297
 
                                         struct La_s390_32_retval *,
298
 
                                         const char *);
299
 
    unsigned int (*s390_64_gnu_pltexit) (Elf64_Sym *, unsigned int,
300
 
                                         uintptr_t *, uintptr_t *,
301
 
                                         const struct La_s390_64_regs *,
302
 
                                         struct La_s390_64_retval *,
303
 
                                         const char *);
304
 
    unsigned int (*sparc32_gnu_pltexit) (Elf32_Sym *, unsigned int,
305
 
                                         uintptr_t *, uintptr_t *,
306
 
                                         const struct La_sparc32_regs *,
307
 
                                         struct La_sparc32_retval *,
308
 
                                         const char *);
309
 
    unsigned int (*sparc64_gnu_pltexit) (Elf64_Sym *, unsigned int,
310
 
                                         uintptr_t *, uintptr_t *,
311
 
                                         const struct La_sparc32_regs *,
312
 
                                         struct La_sparc32_retval *,
313
 
                                         const char *);
314
212
#ifdef ARCH_PLTEXIT_MEMBERS
315
213
    ARCH_PLTEXIT_MEMBERS;
316
214
#endif
380
278
    /* Search table for unique objects.  */
381
279
    struct unique_sym_table
382
280
    {
383
 
      __rtld_lock_recursive_t lock;
 
281
      __rtld_lock_define_recursive (, lock)
384
282
      struct unique_sym
385
283
      {
386
284
        uint32_t hashval;