Print this page
remove support for non-ANSI compilation

Split Close
Expand all
Collapse all
          --- old/usr/src/head/link.h
          +++ new/usr/src/head/link.h
↓ open down ↓ 11 lines elided ↑ open up ↑
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
       22 + * Copyright 2014 Garrett D'Amore <garrett@damore.org>
  22   23   * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  23   24   */
  24   25  
  25   26  #ifndef _LINK_H
  26   27  #define _LINK_H
  27   28  
  28   29  #include <sys/link.h>
  29   30  
  30   31  #ifndef _ASM
  31   32  #include <elf.h>
↓ open down ↓ 7 lines elided ↑ open up ↑
  39   40  
  40   41  #ifndef _ASM
  41   42  /*
  42   43   * ld support library calls.
  43   44   *
  44   45   * These cannot be used in a 32bit large file capable environment because
  45   46   * libelf is not large-file safe.  Only define these interfaces if we are not
  46   47   * 32bit, or not in the large file environment.
  47   48   */
  48   49  #if !defined(_ILP32) || _FILE_OFFSET_BITS != 64
  49      -#ifdef __STDC__
  50   50  #include <libelf.h>
  51   51  extern uint_t   ld_version(uint_t);
  52   52  extern void     ld_input_done(uint_t *);
  53   53  
  54   54  extern void     ld_start(const char *, const Elf32_Half, const char *);
  55   55  extern void     ld_atexit(int);
  56   56  extern void     ld_open(const char **, const char **, int *, int, Elf **,
  57   57                          Elf *, size_t, const Elf_Kind);
  58   58  extern void     ld_file(const char *, const Elf_Kind, int, Elf *);
  59   59  extern void     ld_input_section(const char *, Elf32_Shdr **, Elf32_Word,
↓ open down ↓ 6 lines elided ↑ open up ↑
  66   66  extern void     ld_atexit64(int);
  67   67  extern void     ld_open64(const char **, const char **, int *, int, Elf **,
  68   68                          Elf *, size_t, const Elf_Kind);
  69   69  extern void     ld_file64(const char *, const Elf_Kind, int, Elf *);
  70   70  extern void     ld_input_section64(const char *, Elf64_Shdr **, Elf64_Word,
  71   71                          Elf_Data *, Elf *, uint_t *);
  72   72  extern void     ld_section64(const char *, Elf64_Shdr *, Elf64_Word,
  73   73                          Elf_Data *, Elf *);
  74   74  
  75   75  #endif /* (defined(_LP64) || defined(_LONGLONG_TYPE) */
  76      -#else
  77      -extern void     ld_version();
  78      -extern void     ld_input_done();
  79      -
  80      -extern void     ld_start();
  81      -extern void     ld_atexit();
  82      -extern void     ld_open();
  83      -extern void     ld_file();
  84      -extern void     ld_input_section();
  85      -extern void     ld_section();
  86      -
  87      -#if defined(_LP64) || defined(_LONGLONG_TYPE)
  88      -extern void     ld_start64();
  89      -extern void     ld_atexit64();
  90      -extern void     ld_open64();
  91      -extern void     ld_file64();
  92      -extern void     ld_input_section64();
  93      -extern void     ld_section64();
  94      -
  95      -#endif /* (defined(_LP64) || defined(_LONGLONG_TYPE) */
  96      -#endif /* __STDC__ */
  97   76  #endif /* !defined(_ILP32) || _FILE_OFFSET_BITS != 64 */
  98   77  
  99   78  /*
 100   79   * ld_version() version values.
 101   80   */
 102   81  #define LD_SUP_VNONE    0
 103   82  #define LD_SUP_VERSION1 1
 104   83  #define LD_SUP_VERSION2 2
 105   84  #define LD_SUP_VERSION3 3
 106   85  #define LD_SUP_VCURRENT LD_SUP_VERSION3
↓ open down ↓ 110 lines elided ↑ open up ↑
 217  196  
 218  197  #if     !defined(_SYS_INT_TYPES_H)
 219  198  #if     defined(_LP64) || defined(_I32LPx)
 220  199  typedef unsigned long           uintptr_t;
 221  200  #else
 222  201  typedef unsigned int            uintptr_t;
 223  202  #endif
 224  203  #endif
 225  204  
 226  205  
 227      -#ifdef  __STDC__
 228  206  extern uint_t           la_version(uint_t);
 229  207  extern void             la_activity(uintptr_t *, uint_t);
 230  208  extern void             la_preinit(uintptr_t *);
 231  209  extern char             *la_objsearch(const char *, uintptr_t *, uint_t);
 232  210  extern uint_t           la_objopen(Link_map *, Lmid_t, uintptr_t *);
 233  211  extern uint_t           la_objclose(uintptr_t *);
 234  212  extern int              la_objfilter(uintptr_t *, const char *, uintptr_t *,
 235  213                                  uint_t);
 236  214  #if     defined(_LP64)
 237  215  extern uintptr_t        la_amd64_pltenter(Elf64_Sym *, uint_t, uintptr_t *,
↓ open down ↓ 9 lines elided ↑ open up ↑
 247  225  #else  /* !defined(_LP64) */
 248  226  extern uintptr_t        la_symbind32(Elf32_Sym *, uint_t, uintptr_t *,
 249  227                                  uintptr_t *, uint_t *);
 250  228  extern uintptr_t        la_sparcv8_pltenter(Elf32_Sym *, uint_t, uintptr_t *,
 251  229                                  uintptr_t *, La_sparcv8_regs *, uint_t *);
 252  230  extern uintptr_t        la_i86_pltenter(Elf32_Sym *, uint_t, uintptr_t *,
 253  231                                  uintptr_t *, La_i86_regs *, uint_t *);
 254  232  extern uintptr_t        la_pltexit(Elf32_Sym *, uint_t, uintptr_t *,
 255  233                                  uintptr_t *, uintptr_t);
 256  234  #endif /* _LP64 */
 257      -#else  /* __STDC__ */
 258      -extern uint_t           la_version();
 259      -extern void             la_preinit();
 260      -extern uint_t           la_objopen();
 261      -extern uint_t           la_objclose();
 262      -extern int              la_objfilter();
 263      -#if     defined(_LP64)
 264      -extern uintptr_t        la_sparcv9_pltenter();
 265      -extern uintptr_t        la_pltexit64();
 266      -extern uintptr_t        la_symbind64();
 267      -#else  /* _ILP32 */
 268      -extern uintptr_t        la_sparcv8_pltenter();
 269      -extern uintptr_t        la_i86_pltenter();
 270      -extern uintptr_t        la_pltexit();
 271      -extern uintptr_t        la_symbind32();
 272      -#endif /* _LP64 */
 273      -#endif /* __STDC__ */
 274  235  
 275      -#ifdef  __STDC__
 276  236  /*
 277  237   * The ElfW() macro is a GNU/Linux feature, provided as support for
 278  238   * the dl_phdr_info structure used by dl_phdr_iterate(), which also
 279  239   * originated under Linux. Given an ELF data type, without the ElfXX_
 280  240   * prefix, it supplies the appropriate prefix (Elf32_ or Elf64_) for
 281  241   * the ELFCLASS of the code being compiled.
 282  242   *
 283  243   * Note that ElfW() is not suitable in situations in which the ELFCLASS
 284  244   * of the code being compiled does not match that of the objects that
 285  245   * code is intended to operate on (e.g. a 32-bit link-editor building
↓ open down ↓ 33 lines elided ↑ open up ↑
 319  279           */
 320  280  
 321  281          /* Incremented when a new object is mapped into the process */
 322  282          u_longlong_t            dlpi_adds;
 323  283          /* Incremented when an object is unmapped from the process */
 324  284          u_longlong_t            dlpi_subs;
 325  285  };
 326  286  
 327  287  extern  int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *),
 328  288              void *);
 329      -#endif /* __STDC__ */
 330  289  
 331  290  #endif  /* _ASM */
 332  291  #endif /* _KERNEL */
 333  292  
 334  293  
 335  294  #ifdef __cplusplus
 336  295  }
 337  296  #endif
 338  297  
 339  298  #endif  /* _LINK_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX