This commit was manufactured by cvs2svn to create branch 'msnyder-

checkpoint-072509-branch'.

Sprout from dje-cgen-play1-branch 2009-06-26 17:19:08 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'dje-cgen-'
Cherrypick from master 2009-07-25 14:58:55 UTC H.J. Lu <hjl.tools@gmail.com> 'bfd/':
    ChangeLog
    config/ChangeLog
    config/tls.m4
    configure
    configure.ac
    djunpack.bat
    include/ChangeLog
    include/demangle.h
    include/dwarf2.h
    include/elf/ChangeLog
    include/elf/common.h
    include/elf/ppc.h
    include/elf/ppc64.h
    include/elf/spu.h
    include/libiberty.h
Delete:
    include/elf/dwarf2.h
This commit is contained in:
cvs2svn 2009-07-25 14:58:56 +00:00
parent 13832ef1ba
commit f7933f61b2
15 changed files with 258 additions and 50 deletions

View File

@ -1,3 +1,9 @@
2009-07-02 Tristan Gingold <gingold@adacore.com>
* configure.ac: Do not exclude gas for i386-*-darwin.
Add a case for x86_64-*-darwin.
* configure: Regenerate.
2009-06-26 Doug Evans <dje@sebabeach.org>
* Makefile.def (host_modules): Add cgen.

View File

@ -1,3 +1,14 @@
2009-07-17 Joseph Myers <joseph@codesourcery.com>
PR other/40784
* tls.m4 (GCC_CHECK_TLS): Add extra quoting around argument to
AC_LINK_IFELSE.
2009-07-16 Joseph Myers <joseph@codesourcery.com>
* tls.m4 (GCC_CHECK_TLS): Also test TLS in a shared library when
cross-compiling.
2009-05-26 Rafael Avila de Espindola <espindola@google.com>
* plugins.m4: New.

View File

@ -1,5 +1,6 @@
dnl Check whether the target supports TLS.
AC_DEFUN([GCC_CHECK_TLS], [
AC_REQUIRE([AC_CANONICAL_HOST])
GCC_ENABLE(tls, yes, [], [Use thread-local storage])
AC_CACHE_CHECK([whether the target supports thread-local storage],
gcc_cv_have_tls, [
@ -66,7 +67,24 @@ AC_DEFUN([GCC_CHECK_TLS], [
[dnl This is the cross-compiling case. Assume libc supports TLS if the
dnl binutils and the compiler do.
AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
[gcc_cv_have_tls=yes], [gcc_cv_have_tls=no])
[chktls_save_LDFLAGS="$LDFLAGS"
dnl Shared library options may depend on the host; this check
dnl is only known to be needed for GNU/Linux.
case $host in
*-*-linux*)
LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
;;
esac
chktls_save_CFLAGS="$CFLAGS"
CFLAGS="-fPIC $CFLAGS"
dnl If -shared works, test if TLS works in a shared library.
AC_LINK_IFELSE([int f() { return 0; }],
[AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }],
[gcc_cv_have_tls=yes],
[gcc_cv_have_tls=no])],
[gcc_cv_have_tls=yes])
CFLAGS="$chktls_save_CFLAGS"
LDFLAGS="$chktls_save_LDFLAGS"], [gcc_cv_have_tls=no])
]
)])
if test "$enable_tls $gcc_cv_have_tls" = "yes yes"; then

8
configure vendored
View File

@ -2,7 +2,7 @@
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59.
#
# Copyright (C) 2003, 2008 Free Software Foundation, Inc.
# Copyright (C) 2003 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
@ -2215,7 +2215,11 @@ case "${target}" in
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
i[3456789]86-*-darwin* | x86_64-*-darwin9*)
i[3456789]86-*-darwin*)
noconfigdirs="$noconfigdirs ld gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
x86_64-*-darwin9*)
noconfigdirs="$noconfigdirs ld gas gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;

View File

@ -450,7 +450,11 @@ case "${target}" in
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
i[[3456789]]86-*-darwin* | x86_64-*-darwin9*)
i[[3456789]]86-*-darwin*)
noconfigdirs="$noconfigdirs ld gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
x86_64-*-darwin9*)
noconfigdirs="$noconfigdirs ld gas gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;

52
djunpack.bat Executable file
View File

@ -0,0 +1,52 @@
@echo off
Rem
Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line
Rem format, or else stock DOS/Windows shells will refuse to run it.
Rem
Rem This batch file unpacks the GDB distribution while simultaneously
Rem renaming some of the files whose names are invalid on DOS or conflict
Rem with other file names after truncation to DOS 8+3 namespace.
Rem
Rem Invoke like this:
Rem
Rem djunpack gdb-XYZ.tar
Rem
Rem where XYZ is the version number. If the argument includes leading
Rem directories, it MUST use backslashes, not forward slashes.
Rem
Rem The following 2 lines need to be changed with each new GDB release, to
Rem be identical to the name of the top-level directory where the GDB
Rem distribution unpacks itself.
set GDBVER=gdb-5.0
if "%GDBVER%"=="gdb-5.0" GoTo EnvOk
Rem If their environment space is too small, re-exec with a larger one
command.com /e:4096 /c %0 %1
GoTo End
:EnvOk
if not exist %1 GoTo NoArchive
djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp
Rem The following uses a feature of COPY whereby it does not copy
Rem empty files. We need that because the previous line will create
Rem an empty fnchange.tmp even if the command failed for some reason.
copy fnchange.tmp junk.tmp > nul
if not exist junk.tmp GoTo NoDjTar
del junk.tmp
sed -e "s,@V@,%GDBVER%,g" < fnchange.tmp > fnchange.lst
Rem See the comment above about the reason for using COPY.
copy fnchange.lst junk.tmp > nul
if not exist junk.tmp GoTo NoSed
del junk.tmp
djtar -x -n fnchange.lst %1
GoTo End
:NoSed
echo FAIL: Sed is not available.
GoTo End
:NoDjTar
echo FAIL: DJTAR is not available or no fnchange.lst file in %1.
GoTo End
:NoArchive
echo FAIL: the file %1 does not seem to exist.
echo Remember that %1 cannot use forward slashes, only backslashes.
GoTo End
:End
set GDBVER=

View File

@ -1,3 +1,41 @@
2009-07-24 Ian Lance Taylor <iant@google.com>
* libiberty.h (crc32): Declare.
2009-07-20 Cary Coutant <ccoutant@google.com>
Doug Evans <dje@google.com>
Add some dwarf4 values.
* dwarf2.h (enum dwarf_tag): Add DW_TAG_type_unit.
(enum dwarf_form): Add DW_FORM_sec_offset, DW_FORM_exprloc,
DW_FORM_flag_present, DW_FORM_sig8.
(enum dwarf_attribute): Add DW_AT_signature.
2009-07-17 Jan Kratochvil <jan.kratochvil@redhat.com>
* demangle.h
(enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>)
(enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS>):
New.
2009-07-10 Tom Tromey <tromey@redhat.com>
* dwarf2.h: New file, moved from elf/.
2009-07-09 Jakub Jelinek <jakub@redhat.com>
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
and DW_OP_stack_value.
2009-07-09 Tom Tromey <tromey@redhat.com>
* elf/dwarf2.h: Remove, renaming to...
* dwarf2.h: ... this.
2009-06-29 Tom Tromey <tromey@redhat.com>
* elf/dwarf2.h: New file. Merged with gdb.
2009-06-18 Nick Clifton <nickc@redhat.com>
* dis-asm.h (USER_SPECIFIED_MACHINE_TYPE): New value for the flags

View File

@ -377,6 +377,10 @@ enum demangle_component_type
DEMANGLE_COMPONENT_CHARACTER,
/* A decltype type. */
DEMANGLE_COMPONENT_DECLTYPE,
/* Global constructors keyed to name. */
DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS,
/* Global destructors keyed to name. */
DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS,
/* A pack expansion. */
DEMANGLE_COMPONENT_PACK_EXPANSION
};

View File

@ -1,7 +1,7 @@
/* Declarations and definitions of codes relating to the DWARF2 and
DWARF3 symbolic debugging information formats.
Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
Office (AJPO), Florida State University and Silicon Graphics Inc.
@ -14,7 +14,7 @@
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
Software Foundation; either version 3, or (at your option) any later
version.
GCC is distributed in the hope that it will be useful, but WITHOUT
@ -22,10 +22,14 @@
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
/* This file is derived from the DWARF specification (a public document)
Revision 2.0.0 (July 27, 1993) developed by the UNIX International
@ -190,6 +194,12 @@ enum dwarf_tag
DW_TAG_imported_unit = 0x3d,
DW_TAG_condition = 0x3f,
DW_TAG_shared_type = 0x40,
/* DWARF 4. */
DW_TAG_type_unit = 0x41,
DW_TAG_lo_user = 0x4080,
DW_TAG_hi_user = 0xffff,
/* SGI/MIPS Extensions. */
DW_TAG_MIPS_loop = 0x4081,
/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
@ -209,9 +219,6 @@ enum dwarf_tag
DW_TAG_PGI_interface_block = 0xA020
};
#define DW_TAG_lo_user 0x4080
#define DW_TAG_hi_user 0xffff
/* Flag that tells whether entry has a child or not. */
#define DW_children_no 0
#define DW_children_yes 1
@ -239,7 +246,12 @@ enum dwarf_form
DW_FORM_ref4 = 0x13,
DW_FORM_ref8 = 0x14,
DW_FORM_ref_udata = 0x15,
DW_FORM_indirect = 0x16
DW_FORM_indirect = 0x16,
/* DWARF 4. */
DW_FORM_sec_offset = 0x17,
DW_FORM_exprloc = 0x18,
DW_FORM_flag_present = 0x19,
DW_FORM_sig8 = 0x20
};
/* Attribute names and codes. */
@ -312,7 +324,7 @@ enum dwarf_attribute
DW_AT_allocated = 0x4e,
DW_AT_associated = 0x4f,
DW_AT_data_location = 0x50,
DW_AT_byte_stride = 0x51,
DW_AT_byte_stride = 0x51,
#define DW_AT_stride DW_AT_byte_stride /* Note: The use of DW_AT_stride is deprecated. */
DW_AT_entry_pc = 0x52,
DW_AT_use_UTF8 = 0x53,
@ -337,6 +349,12 @@ enum dwarf_attribute
DW_AT_elemental = 0x66,
DW_AT_pure = 0x67,
DW_AT_recursive = 0x68,
/* DWARF 4. */
DW_AT_signature = 0x69,
DW_AT_lo_user = 0x2000, /* Implementation-defined range start. */
DW_AT_hi_user = 0x3ff0, /* Implementation-defined range end. */
/* SGI/MIPS extensions. */
DW_AT_MIPS_fde = 0x2001,
DW_AT_MIPS_loop_begin = 0x2002,
@ -382,9 +400,6 @@ enum dwarf_attribute
DW_AT_PGI_lstride = 0x3a02
};
#define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */
#define DW_AT_hi_user 0x3fff /* Implementation-defined range end. */
/* Location atom names and codes. */
enum dwarf_location_atom
{
@ -541,8 +556,17 @@ enum dwarf_location_atom
DW_OP_form_tls_address = 0x9b,
DW_OP_call_frame_cfa = 0x9c,
DW_OP_bit_piece = 0x9d,
/* DWARF 4 extensions. */
DW_OP_implicit_value = 0x9e,
DW_OP_stack_value = 0x9f,
DW_OP_lo_user = 0xe0, /* Implementation-defined range start. */
DW_OP_hi_user = 0xff, /* Implementation-defined range end. */
/* GNU extensions. */
DW_OP_GNU_push_tls_address = 0xe0,
/* The following is for marking variables that are uninitialized. */
DW_OP_GNU_uninit = 0xf0,
DW_OP_GNU_encoded_addr = 0xf1,
/* HP extensions. */
@ -557,9 +581,6 @@ enum dwarf_location_atom
DW_OP_PGI_omp_thread_num = 0xf8
};
#define DW_OP_lo_user 0xe0 /* Implementation-defined range start. */
#define DW_OP_hi_user 0xff /* Implementation-defined range end. */
/* Type encodings. */
enum dwarf_type
{
@ -580,6 +601,10 @@ enum dwarf_type
DW_ATE_signed_fixed = 0xd,
DW_ATE_unsigned_fixed = 0xe,
DW_ATE_decimal_float = 0xf,
DW_ATE_lo_user = 0x80,
DW_ATE_hi_user = 0xff,
/* HP extensions. */
DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */
DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */
@ -590,9 +615,6 @@ enum dwarf_type
DW_ATE_HP_imaginary_float128 = 0x86
};
#define DW_ATE_lo_user 0x80
#define DW_ATE_hi_user 0xff
/* Decimal sign encodings. */
enum dwarf_decimal_sign_encoding
{
@ -610,11 +632,11 @@ enum dwarf_endianity_encoding
/* DWARF 3. */
DW_END_default = 0x00,
DW_END_big = 0x01,
DW_END_little = 0x02
};
DW_END_little = 0x02,
#define DW_END_lo_user 0x40
#define DW_END_hi_user 0xff
DW_END_lo_user = 0x40,
DW_END_hi_user = 0xff
};
/* Array ordering names and codes. */
enum dwarf_array_dim_ordering
@ -662,12 +684,13 @@ enum dwarf_calling_convention
DW_CC_normal = 0x1,
DW_CC_program = 0x2,
DW_CC_nocall = 0x3,
DW_CC_lo_user = 0x40,
DW_CC_hi_user = 0xff,
DW_CC_GNU_renesas_sh = 0x40
};
#define DW_CC_lo_user 0x40
#define DW_CC_hi_user 0xff
/* Inline attribute. */
enum dwarf_inline_attribute
{
@ -720,11 +743,11 @@ enum dwarf_line_number_x_ops
DW_LNE_HP_negate_post_semantics = 0x17,
DW_LNE_HP_negate_function_exit = 0x18,
DW_LNE_HP_negate_front_end_logical = 0x19,
DW_LNE_HP_define_proc = 0x20
};
DW_LNE_HP_define_proc = 0x20,
#define DW_LNE_lo_user 0x80
#define DW_LNE_hi_user 0xff
DW_LNE_lo_user = 0x80,
DW_LNE_hi_user = 0xff
};
/* Call frame information. */
enum dwarf_call_frame_info
@ -756,6 +779,10 @@ enum dwarf_call_frame_info
DW_CFA_val_offset = 0x14,
DW_CFA_val_offset_sf = 0x15,
DW_CFA_val_expression = 0x16,
DW_CFA_lo_user = 0x1c,
DW_CFA_hi_user = 0x3f,
/* SGI/MIPS specific. */
DW_CFA_MIPS_advance_loc8 = 0x1d,
/* GNU extensions. */
@ -765,11 +792,10 @@ enum dwarf_call_frame_info
};
#define DW_CIE_ID 0xffffffff
#define DW64_CIE_ID 0xffffffffffffffffULL
#define DW_CIE_VERSION 1
#define DW_CFA_extended 0
#define DW_CFA_lo_user 0x1c
#define DW_CFA_hi_user 0x3f
#define DW_CHILDREN_no 0x00
#define DW_CHILDREN_yes 0x01
@ -799,15 +825,16 @@ enum dwarf_source_language
DW_LANG_ObjC_plus_plus = 0x0011,
DW_LANG_UPC = 0x0012,
DW_LANG_D = 0x0013,
DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */
DW_LANG_hi_user = 0xffff, /* Implementation-defined range start. */
/* MIPS. */
DW_LANG_Mips_Assembler = 0x8001,
/* UPC. */
DW_LANG_Upc = 0x8765
};
#define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */
#define DW_LANG_hi_user 0xffff /* Implementation-defined range start. */
/* Names and codes for macro information. */
enum dwarf_macinfo_record_type
{

View File

@ -1,3 +1,36 @@
2009-07-25 H.J. Lu <hongjiu.lu@intel.com>
* common.h (EM_L1OM): New.
2009-07-24 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
Alan Modra <amodra@bigpond.net.au>
* spu.h (R_SPU_ADD_PIC): New.
2009-07-23 Ulrich Drepper <drepper@redhat.com>
* common.h (STB_GNU_UNIQUE): Define.
2009-07-10 Tom Tromey <tromey@redhat.com>
* dwarf2.h: Move to `..'.
2009-07-10 H.J. Lu <hongjiu.lu@intel.com>
* dwarf2.h: Just include ../dwarf2.h.
2009-07-10 Alan Modra <amodra@bigpond.net.au>
* ppc.h (R_PPC_IRELATIVE): Add.
(R_PPC_RELAX32, R_PPC_RELAX32PC,
R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Renumber.
* ppc64.h (R_PPC64_IRELATIVE): Add.
2009-07-03 Jakub Jelinek <jakub@redhat.com>
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
and DW_OP_stack_value.
2009-06-22 Alan Modra <amodra@bigpond.net.au>
* ppc.h (R_PPC_RELAX*): Define as enum.

View File

@ -1,6 +1,6 @@
/* ELF support for BFD.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support, from information published
@ -238,7 +238,7 @@
#define EM_CR16 177 /* National Semiconductor CompactRISC 16-bit processor */
#define EM_ETPU 178 /* Freescale Extended Time Processing Unit */
#define EM_SLE9X 179 /* Infineon Technologies SLE9X core */
#define EM_INTEL180 180 /* Reserved by Intel */
#define EM_L1OM 180 /* Intel L1OM */
#define EM_INTEL181 181 /* Reserved by Intel */
#define EM_INTEL182 182 /* Reserved by Intel */
@ -555,6 +555,7 @@
#define STB_GLOBAL 1 /* Symbol visible outside obj */
#define STB_WEAK 2 /* Like globals, lower precedence */
#define STB_LOOS 10 /* OS-specific semantics */
#define STB_GNU_UNIQUE 10 /* Symbol is unique in namespace */
#define STB_HIOS 12 /* OS-specific semantics */
#define STB_LOPROC 13 /* Processor-specific semantics */
#define STB_HIPROC 15 /* Processor-specific semantics */

View File

@ -71,6 +71,14 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
RELOC_NUMBER (R_PPC_ADDR30, 37)
#ifndef RELOC_MACROS_GEN_FUNC
/* Fake relocations for branch stubs, only used internally by ld. */
RELOC_NUMBER (R_PPC_RELAX32, 48)
RELOC_NUMBER (R_PPC_RELAX32PC, 49)
RELOC_NUMBER (R_PPC_RELAX32_PLT, 50)
RELOC_NUMBER (R_PPC_RELAX32PC_PLT, 51)
#endif
/* Relocs added to support TLS. */
RELOC_NUMBER (R_PPC_TLS, 67)
RELOC_NUMBER (R_PPC_DTPMOD32, 68)
@ -122,13 +130,8 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115)
RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
#ifndef RELOC_MACROS_GEN_FUNC
/* Fake relocations for branch stubs, only used internally by ld. */
RELOC_NUMBER (R_PPC_RELAX32, 245)
RELOC_NUMBER (R_PPC_RELAX32PC, 246)
RELOC_NUMBER (R_PPC_RELAX32_PLT, 247)
RELOC_NUMBER (R_PPC_RELAX32PC_PLT, 248)
#endif
/* Support STT_GNU_IFUNC plt calls. */
RELOC_NUMBER (R_PPC_IRELATIVE, 248)
/* These are GNU extensions used in PIC code sequences. */
RELOC_NUMBER (R_PPC_REL16, 249)

View File

@ -139,6 +139,9 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type)
RELOC_NUMBER (R_PPC64_TLSGD, 107)
RELOC_NUMBER (R_PPC64_TLSLD, 108)
/* Support STT_GNU_IFUNC plt calls. */
RELOC_NUMBER (R_PPC64_IRELATIVE, 248)
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253)
RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254)

View File

@ -42,6 +42,7 @@ START_RELOC_NUMBERS (elf_spu_reloc_type)
RELOC_NUMBER (R_SPU_ADDR16X, 14)
RELOC_NUMBER (R_SPU_PPU32, 15)
RELOC_NUMBER (R_SPU_PPU64, 16)
RELOC_NUMBER (R_SPU_ADD_PIC, 17)
END_RELOC_NUMBERS (R_SPU_max)
/* Program header extensions */

View File

@ -1,6 +1,7 @@
/* Function declarations for libiberty.
Copyright 2001, 2002, 2005, 2007 Free Software Foundation, Inc.
Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Note - certain prototypes declared in this header file are for
functions whoes implementation copyright does not belong to the
@ -311,6 +312,8 @@ extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC;
extern double physmem_total (void);
extern double physmem_available (void);
/* Compute the 32-bit CRC of a block of memory. */
extern unsigned int xcrc32 (const unsigned char *, int, unsigned int);
/* These macros provide a K&R/C89/C++-friendly way of allocating structures
with nice encapsulation. The XDELETE*() macros are technically