# List of files which containing translatable strings.
# Copyright (C) 2000-2010 Red Hat, Inc.

# Files from the compatibility library
lib/xmalloc.c
#lib/xstrdup.c
lib/xstrndup.c

# Library sources
libasm/asm_error.c
libdw/dwarf_error.c
libdwfl/argp-std.c
libdwfl/libdwflP.h
libebl/eblbackendname.c
libebl/eblcorenotetypename.c
libebl/ebldynamictagname.c
libebl/eblobjecttypename.c
libebl/eblobjnote.c
libebl/eblobjnotetypename.c
libebl/eblosabiname.c
libebl/eblsectionname.c
libebl/eblsectiontypename.c
libebl/eblsegmenttypename.c
libebl/eblsymbolbindingname.c
libebl/eblsymboltypename.c
libelf/elf_error.c

# Program sources
src/addr2line.c
src/ar.c
src/arlib.c
src/elfcmp.c
src/elflint.c
src/findtextrel.c
src/i386_ld.c
src/ld.c
src/ldgeneric.c
src/ldscript.y
src/nm.c
src/objdump.c
src/ranlib.c
src/readelf.c
src/size.c
src/strings.c
src/strip.c
src/unstrip.c
