diff --git a/libctf/Makefile.am b/libctf/Makefile.am
index 6e136220497..46b8a6e1ed4 100644
--- a/libctf/Makefile.am
+++ b/libctf/Makefile.am
@@ -55,9 +55,9 @@ libctf_nobfd_la_LIBADD = @CTF_LIBADD@ $(ZLIB)
libctf_ldflags_nover = -version-info 0:0:0 @SHARED_LDFLAGS@
libctf_nobfd_la_LDFLAGS = $(libctf_ldflags_nover) @VERSION_FLAGS_NOBFD@
libctf_nobfd_la_CPPFLAGS = $(AM_CPPFLAGS) -DNOBFD=1
-libctf_nobfd_la_SOURCES = ctf-archive.c ctf-dump.c ctf-create.c ctf-decl.c ctf-error.c \
+libctf_nobfd_la_SOURCES = ctf-api.c ctf-archive.c ctf-dump.c ctf-create.c ctf-decl.c ctf-error.c \
ctf-hash.c ctf-labels.c ctf-dedup.c ctf-link.c ctf-lookup.c \
- ctf-open.c ctf-serialize.c ctf-sha1.c ctf-string.c ctf-subr.c \
+ ctf-open.c ctf-port.c ctf-serialize.c ctf-sha1.c ctf-string.c \
ctf-types.c ctf-util.c
if NEED_CTF_QSORT_R
libctf_nobfd_la_SOURCES += ctf-qsort_r.c
diff --git a/libctf/Makefile.in b/libctf/Makefile.in
index 5d9587766dc..e17a87cca5b 100644
--- a/libctf/Makefile.in
+++ b/libctf/Makefile.in
@@ -197,22 +197,22 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(infodir)" \
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
am__DEPENDENCIES_1 =
libctf_nobfd_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__libctf_nobfd_la_SOURCES_DIST = ctf-archive.c ctf-dump.c \
+am__libctf_nobfd_la_SOURCES_DIST = ctf-api.c ctf-archive.c ctf-dump.c \
ctf-create.c ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c \
- ctf-dedup.c ctf-link.c ctf-lookup.c ctf-open.c ctf-serialize.c \
- ctf-sha1.c ctf-string.c ctf-subr.c ctf-types.c ctf-util.c \
+ ctf-dedup.c ctf-link.c ctf-lookup.c ctf-open.c ctf-port.c \
+ ctf-serialize.c ctf-sha1.c ctf-string.c ctf-types.c ctf-util.c \
ctf-qsort_r.c
@NEED_CTF_QSORT_R_TRUE@am__objects_1 = libctf_nobfd_la-ctf-qsort_r.lo
-am_libctf_nobfd_la_OBJECTS = libctf_nobfd_la-ctf-archive.lo \
- libctf_nobfd_la-ctf-dump.lo libctf_nobfd_la-ctf-create.lo \
- libctf_nobfd_la-ctf-decl.lo libctf_nobfd_la-ctf-error.lo \
- libctf_nobfd_la-ctf-hash.lo libctf_nobfd_la-ctf-labels.lo \
- libctf_nobfd_la-ctf-dedup.lo libctf_nobfd_la-ctf-link.lo \
- libctf_nobfd_la-ctf-lookup.lo libctf_nobfd_la-ctf-open.lo \
+am_libctf_nobfd_la_OBJECTS = libctf_nobfd_la-ctf-api.lo \
+ libctf_nobfd_la-ctf-archive.lo libctf_nobfd_la-ctf-dump.lo \
+ libctf_nobfd_la-ctf-create.lo libctf_nobfd_la-ctf-decl.lo \
+ libctf_nobfd_la-ctf-error.lo libctf_nobfd_la-ctf-hash.lo \
+ libctf_nobfd_la-ctf-labels.lo libctf_nobfd_la-ctf-dedup.lo \
+ libctf_nobfd_la-ctf-link.lo libctf_nobfd_la-ctf-lookup.lo \
+ libctf_nobfd_la-ctf-open.lo libctf_nobfd_la-ctf-port.lo \
libctf_nobfd_la-ctf-serialize.lo libctf_nobfd_la-ctf-sha1.lo \
- libctf_nobfd_la-ctf-string.lo libctf_nobfd_la-ctf-subr.lo \
- libctf_nobfd_la-ctf-types.lo libctf_nobfd_la-ctf-util.lo \
- $(am__objects_1)
+ libctf_nobfd_la-ctf-string.lo libctf_nobfd_la-ctf-types.lo \
+ libctf_nobfd_la-ctf-util.lo $(am__objects_1)
libctf_nobfd_la_OBJECTS = $(am_libctf_nobfd_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -226,21 +226,21 @@ libctf_nobfd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@INSTALL_LIBBFD_TRUE@am_libctf_nobfd_la_rpath = -rpath $(libdir)
am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
libctf_la_DEPENDENCIES = ../bfd/libbfd.la $(am__DEPENDENCIES_2)
-am__libctf_la_SOURCES_DIST = ctf-archive.c ctf-dump.c ctf-create.c \
- ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c ctf-dedup.c \
- ctf-link.c ctf-lookup.c ctf-open.c ctf-serialize.c ctf-sha1.c \
- ctf-string.c ctf-subr.c ctf-types.c ctf-util.c ctf-qsort_r.c \
- ctf-open-bfd.c
+am__libctf_la_SOURCES_DIST = ctf-api.c ctf-archive.c ctf-dump.c \
+ ctf-create.c ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c \
+ ctf-dedup.c ctf-link.c ctf-lookup.c ctf-open.c ctf-port.c \
+ ctf-serialize.c ctf-sha1.c ctf-string.c ctf-types.c ctf-util.c \
+ ctf-qsort_r.c ctf-open-bfd.c
@NEED_CTF_QSORT_R_TRUE@am__objects_2 = libctf_la-ctf-qsort_r.lo
-am__objects_3 = libctf_la-ctf-archive.lo libctf_la-ctf-dump.lo \
- libctf_la-ctf-create.lo libctf_la-ctf-decl.lo \
- libctf_la-ctf-error.lo libctf_la-ctf-hash.lo \
- libctf_la-ctf-labels.lo libctf_la-ctf-dedup.lo \
- libctf_la-ctf-link.lo libctf_la-ctf-lookup.lo \
- libctf_la-ctf-open.lo libctf_la-ctf-serialize.lo \
+am__objects_3 = libctf_la-ctf-api.lo libctf_la-ctf-archive.lo \
+ libctf_la-ctf-dump.lo libctf_la-ctf-create.lo \
+ libctf_la-ctf-decl.lo libctf_la-ctf-error.lo \
+ libctf_la-ctf-hash.lo libctf_la-ctf-labels.lo \
+ libctf_la-ctf-dedup.lo libctf_la-ctf-link.lo \
+ libctf_la-ctf-lookup.lo libctf_la-ctf-open.lo \
+ libctf_la-ctf-port.lo libctf_la-ctf-serialize.lo \
libctf_la-ctf-sha1.lo libctf_la-ctf-string.lo \
- libctf_la-ctf-subr.lo libctf_la-ctf-types.lo \
- libctf_la-ctf-util.lo $(am__objects_2)
+ libctf_la-ctf-types.lo libctf_la-ctf-util.lo $(am__objects_2)
am_libctf_la_OBJECTS = $(am__objects_3) libctf_la-ctf-open-bfd.lo
libctf_la_OBJECTS = $(am_libctf_la_OBJECTS)
libctf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -607,10 +607,11 @@ libctf_nobfd_la_LIBADD = @CTF_LIBADD@ $(ZLIB)
libctf_ldflags_nover = -version-info 0:0:0 @SHARED_LDFLAGS@
libctf_nobfd_la_LDFLAGS = $(libctf_ldflags_nover) @VERSION_FLAGS_NOBFD@
libctf_nobfd_la_CPPFLAGS = $(AM_CPPFLAGS) -DNOBFD=1
-libctf_nobfd_la_SOURCES = ctf-archive.c ctf-dump.c ctf-create.c \
- ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c ctf-dedup.c \
- ctf-link.c ctf-lookup.c ctf-open.c ctf-serialize.c ctf-sha1.c \
- ctf-string.c ctf-subr.c ctf-types.c ctf-util.c $(am__append_1)
+libctf_nobfd_la_SOURCES = ctf-api.c ctf-archive.c ctf-dump.c \
+ ctf-create.c ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c \
+ ctf-dedup.c ctf-link.c ctf-lookup.c ctf-open.c ctf-port.c \
+ ctf-serialize.c ctf-sha1.c ctf-string.c ctf-types.c ctf-util.c \
+ $(am__append_1)
# @CTF_LIBADD@ appears here twice: once, to force libiberty to get searched before
# install-time libbfd adds a -L to the install dir (possibly pointing at an
@@ -755,6 +756,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-api.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-archive.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-create.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-decl.Plo@am__quote@
@@ -767,13 +769,14 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-lookup.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-open-bfd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-open.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-port.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-qsort_r.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-serialize.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-sha1.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-string.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-subr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-types.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_la-ctf-util.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-api.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-archive.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-create.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-decl.Plo@am__quote@
@@ -785,11 +788,11 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-link.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-lookup.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-open.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-port.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-qsort_r.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-serialize.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-sha1.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-string.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-subr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-types.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctf_nobfd_la-ctf-util.Plo@am__quote@
@@ -814,6 +817,13 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+libctf_nobfd_la-ctf-api.lo: ctf-api.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_nobfd_la-ctf-api.lo -MD -MP -MF $(DEPDIR)/libctf_nobfd_la-ctf-api.Tpo -c -o libctf_nobfd_la-ctf-api.lo `test -f 'ctf-api.c' || echo '$(srcdir)/'`ctf-api.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_nobfd_la-ctf-api.Tpo $(DEPDIR)/libctf_nobfd_la-ctf-api.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ctf-api.c' object='libctf_nobfd_la-ctf-api.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_nobfd_la-ctf-api.lo `test -f 'ctf-api.c' || echo '$(srcdir)/'`ctf-api.c
+
libctf_nobfd_la-ctf-archive.lo: ctf-archive.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_nobfd_la-ctf-archive.lo -MD -MP -MF $(DEPDIR)/libctf_nobfd_la-ctf-archive.Tpo -c -o libctf_nobfd_la-ctf-archive.lo `test -f 'ctf-archive.c' || echo '$(srcdir)/'`ctf-archive.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_nobfd_la-ctf-archive.Tpo $(DEPDIR)/libctf_nobfd_la-ctf-archive.Plo
@@ -891,6 +901,13 @@ libctf_nobfd_la-ctf-open.lo: ctf-open.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_nobfd_la-ctf-open.lo `test -f 'ctf-open.c' || echo '$(srcdir)/'`ctf-open.c
+libctf_nobfd_la-ctf-port.lo: ctf-port.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_nobfd_la-ctf-port.lo -MD -MP -MF $(DEPDIR)/libctf_nobfd_la-ctf-port.Tpo -c -o libctf_nobfd_la-ctf-port.lo `test -f 'ctf-port.c' || echo '$(srcdir)/'`ctf-port.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_nobfd_la-ctf-port.Tpo $(DEPDIR)/libctf_nobfd_la-ctf-port.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ctf-port.c' object='libctf_nobfd_la-ctf-port.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_nobfd_la-ctf-port.lo `test -f 'ctf-port.c' || echo '$(srcdir)/'`ctf-port.c
+
libctf_nobfd_la-ctf-serialize.lo: ctf-serialize.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_nobfd_la-ctf-serialize.lo -MD -MP -MF $(DEPDIR)/libctf_nobfd_la-ctf-serialize.Tpo -c -o libctf_nobfd_la-ctf-serialize.lo `test -f 'ctf-serialize.c' || echo '$(srcdir)/'`ctf-serialize.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_nobfd_la-ctf-serialize.Tpo $(DEPDIR)/libctf_nobfd_la-ctf-serialize.Plo
@@ -912,13 +929,6 @@ libctf_nobfd_la-ctf-string.lo: ctf-string.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_nobfd_la-ctf-string.lo `test -f 'ctf-string.c' || echo '$(srcdir)/'`ctf-string.c
-libctf_nobfd_la-ctf-subr.lo: ctf-subr.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_nobfd_la-ctf-subr.lo -MD -MP -MF $(DEPDIR)/libctf_nobfd_la-ctf-subr.Tpo -c -o libctf_nobfd_la-ctf-subr.lo `test -f 'ctf-subr.c' || echo '$(srcdir)/'`ctf-subr.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_nobfd_la-ctf-subr.Tpo $(DEPDIR)/libctf_nobfd_la-ctf-subr.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ctf-subr.c' object='libctf_nobfd_la-ctf-subr.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_nobfd_la-ctf-subr.lo `test -f 'ctf-subr.c' || echo '$(srcdir)/'`ctf-subr.c
-
libctf_nobfd_la-ctf-types.lo: ctf-types.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_nobfd_la-ctf-types.lo -MD -MP -MF $(DEPDIR)/libctf_nobfd_la-ctf-types.Tpo -c -o libctf_nobfd_la-ctf-types.lo `test -f 'ctf-types.c' || echo '$(srcdir)/'`ctf-types.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_nobfd_la-ctf-types.Tpo $(DEPDIR)/libctf_nobfd_la-ctf-types.Plo
@@ -940,6 +950,13 @@ libctf_nobfd_la-ctf-qsort_r.lo: ctf-qsort_r.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_nobfd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_nobfd_la-ctf-qsort_r.lo `test -f 'ctf-qsort_r.c' || echo '$(srcdir)/'`ctf-qsort_r.c
+libctf_la-ctf-api.lo: ctf-api.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_la-ctf-api.lo -MD -MP -MF $(DEPDIR)/libctf_la-ctf-api.Tpo -c -o libctf_la-ctf-api.lo `test -f 'ctf-api.c' || echo '$(srcdir)/'`ctf-api.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_la-ctf-api.Tpo $(DEPDIR)/libctf_la-ctf-api.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ctf-api.c' object='libctf_la-ctf-api.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_la-ctf-api.lo `test -f 'ctf-api.c' || echo '$(srcdir)/'`ctf-api.c
+
libctf_la-ctf-archive.lo: ctf-archive.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_la-ctf-archive.lo -MD -MP -MF $(DEPDIR)/libctf_la-ctf-archive.Tpo -c -o libctf_la-ctf-archive.lo `test -f 'ctf-archive.c' || echo '$(srcdir)/'`ctf-archive.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_la-ctf-archive.Tpo $(DEPDIR)/libctf_la-ctf-archive.Plo
@@ -1017,6 +1034,13 @@ libctf_la-ctf-open.lo: ctf-open.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_la-ctf-open.lo `test -f 'ctf-open.c' || echo '$(srcdir)/'`ctf-open.c
+libctf_la-ctf-port.lo: ctf-port.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_la-ctf-port.lo -MD -MP -MF $(DEPDIR)/libctf_la-ctf-port.Tpo -c -o libctf_la-ctf-port.lo `test -f 'ctf-port.c' || echo '$(srcdir)/'`ctf-port.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_la-ctf-port.Tpo $(DEPDIR)/libctf_la-ctf-port.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ctf-port.c' object='libctf_la-ctf-port.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_la-ctf-port.lo `test -f 'ctf-port.c' || echo '$(srcdir)/'`ctf-port.c
+
libctf_la-ctf-serialize.lo: ctf-serialize.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_la-ctf-serialize.lo -MD -MP -MF $(DEPDIR)/libctf_la-ctf-serialize.Tpo -c -o libctf_la-ctf-serialize.lo `test -f 'ctf-serialize.c' || echo '$(srcdir)/'`ctf-serialize.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_la-ctf-serialize.Tpo $(DEPDIR)/libctf_la-ctf-serialize.Plo
@@ -1038,13 +1062,6 @@ libctf_la-ctf-string.lo: ctf-string.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_la-ctf-string.lo `test -f 'ctf-string.c' || echo '$(srcdir)/'`ctf-string.c
-libctf_la-ctf-subr.lo: ctf-subr.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_la-ctf-subr.lo -MD -MP -MF $(DEPDIR)/libctf_la-ctf-subr.Tpo -c -o libctf_la-ctf-subr.lo `test -f 'ctf-subr.c' || echo '$(srcdir)/'`ctf-subr.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_la-ctf-subr.Tpo $(DEPDIR)/libctf_la-ctf-subr.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ctf-subr.c' object='libctf_la-ctf-subr.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libctf_la-ctf-subr.lo `test -f 'ctf-subr.c' || echo '$(srcdir)/'`ctf-subr.c
-
libctf_la-ctf-types.lo: ctf-types.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libctf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libctf_la-ctf-types.lo -MD -MP -MF $(DEPDIR)/libctf_la-ctf-types.Tpo -c -o libctf_la-ctf-types.lo `test -f 'ctf-types.c' || echo '$(srcdir)/'`ctf-types.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libctf_la-ctf-types.Tpo $(DEPDIR)/libctf_la-ctf-types.Plo
diff --git a/libctf/ctf-subr.c b/libctf/ctf-api.c
similarity index 81%
rename from libctf/ctf-subr.c
rename to libctf/ctf-api.c
index 12f8469b44c..b3064887814 100644
--- a/libctf/ctf-subr.c
+++ b/libctf/ctf-api.c
@@ -1,4 +1,4 @@
-/* Simple subrs.
+/* Miscellaneous dict-and library-wide API functions.
Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of libctf.
@@ -18,9 +18,6 @@
. */
#include
-#ifdef HAVE_MMAP
-#include
-#endif
#include
#include
#include
@@ -33,99 +30,6 @@
int _libctf_version = CTF_VERSION; /* Library client version. */
int _libctf_debug = 0; /* Debugging messages enabled. */
-/* Private, read-only mmap from a file, with fallback to copying.
-
- No handling of page-offset issues at all: the caller must allow for that. */
-
-_libctf_malloc_ void *
-ctf_mmap (size_t length, size_t offset, int fd)
-{
- void *data;
-
-#ifdef HAVE_MMAP
- data = mmap (NULL, length, PROT_READ, MAP_PRIVATE, fd, offset);
- if (data == MAP_FAILED)
- data = NULL;
-#else
- if ((data = malloc (length)) != NULL)
- {
- if (ctf_pread (fd, data, length, offset) <= 0)
- {
- free (data);
- data = NULL;
- }
- }
-#endif
- return data;
-}
-
-void
-ctf_munmap (void *buf, size_t length _libctf_unused_)
-{
-#ifdef HAVE_MMAP
- (void) munmap (buf, length);
-#else
- free (buf);
-#endif
-}
-
-ssize_t
-ctf_pread (int fd, void *buf, ssize_t count, off_t offset)
-{
- ssize_t len;
- size_t acc = 0;
- char *data = (char *) buf;
-
-#ifdef HAVE_PREAD
- while (count > 0)
- {
- errno = 0;
- if (((len = pread (fd, data, count, offset)) < 0) &&
- errno != EINTR)
- return len;
- if (errno == EINTR)
- continue;
-
- acc += len;
- if (len == 0) /* EOF. */
- return acc;
-
- count -= len;
- offset += len;
- data += len;
- }
- return acc;
-#else
- off_t orig_off;
-
- if ((orig_off = lseek (fd, 0, SEEK_CUR)) < 0)
- return -1;
- if ((lseek (fd, offset, SEEK_SET)) < 0)
- return -1;
-
- while (count > 0)
- {
- errno = 0;
- if (((len = read (fd, data, count)) < 0) &&
- errno != EINTR)
- return len;
- if (errno == EINTR)
- continue;
-
- acc += len;
- if (len == 0) /* EOF. */
- break;
-
- count -= len;
- data += len;
- }
- if ((lseek (fd, orig_off, SEEK_SET)) < 0)
- return -1; /* offset is smashed. */
-#endif
-
- return acc;
-}
-
/* Set the CTF library client version to the specified version. If version is
zero, we just return the default library version number. */
int
@@ -152,6 +56,17 @@ ctf_version (int version)
return _libctf_version;
}
+/* Store the specified error code into errp if it is non-NULL, and then
+ return NULL for the benefit of the caller. */
+
+void *
+ctf_set_open_errno (int *errp, int error)
+{
+ if (errp != NULL)
+ *errp = error;
+ return NULL;
+}
+
/* Get and set CTF dict-wide flags. We are fairly strict about returning
errors here, to make it easier to determine programmatically which flags are
valid. */
diff --git a/libctf/ctf-port.c b/libctf/ctf-port.c
new file mode 100644
index 00000000000..2f2cf1e6103
--- /dev/null
+++ b/libctf/ctf-port.c
@@ -0,0 +1,122 @@
+/* Portability and helper wrappers.
+ Copyright (C) 2019-2024 Free Software Foundation, Inc.
+
+ This file is part of libctf.
+
+ libctf 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 3, or (at your option) any later
+ version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY 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 this program; see the file COPYING. If not see
+ . */
+
+#include
+#ifdef HAVE_MMAP
+#include
+#endif
+#include
+#include
+#include
+#include
+
+/* Private, read-only mmap from a file, with fallback to copying.
+
+ No handling of page-offset issues at all: the caller must allow for that. */
+
+_libctf_malloc_ void *
+ctf_mmap (size_t length, size_t offset, int fd)
+{
+ void *data;
+
+#ifdef HAVE_MMAP
+ data = mmap (NULL, length, PROT_READ, MAP_PRIVATE, fd, offset);
+ if (data == MAP_FAILED)
+ data = NULL;
+#else
+ if ((data = malloc (length)) != NULL)
+ {
+ if (ctf_pread (fd, data, length, offset) <= 0)
+ {
+ free (data);
+ data = NULL;
+ }
+ }
+#endif
+ return data;
+}
+
+void
+ctf_munmap (void *buf, size_t length _libctf_unused_)
+{
+#ifdef HAVE_MMAP
+ (void) munmap (buf, length);
+#else
+ free (buf);
+#endif
+}
+
+/* pread() implementation, retrying on short reads. */
+
+ssize_t
+ctf_pread (int fd, void *buf, ssize_t count, off_t offset)
+{
+ ssize_t len;
+ size_t acc = 0;
+ char *data = (char *) buf;
+
+#ifdef HAVE_PREAD
+ while (count > 0)
+ {
+ errno = 0;
+ if (((len = pread (fd, data, count, offset)) < 0) &&
+ errno != EINTR)
+ return len;
+ if (errno == EINTR)
+ continue;
+
+ acc += len;
+ if (len == 0) /* EOF. */
+ return acc;
+
+ count -= len;
+ offset += len;
+ data += len;
+ }
+ return acc;
+#else
+ off_t orig_off;
+
+ if ((orig_off = lseek (fd, 0, SEEK_CUR)) < 0)
+ return -1;
+ if ((lseek (fd, offset, SEEK_SET)) < 0)
+ return -1;
+
+ while (count > 0)
+ {
+ errno = 0;
+ if (((len = read (fd, data, count)) < 0) &&
+ errno != EINTR)
+ return len;
+ if (errno == EINTR)
+ continue;
+
+ acc += len;
+ if (len == 0) /* EOF. */
+ break;
+
+ count -= len;
+ data += len;
+ }
+ if ((lseek (fd, orig_off, SEEK_SET)) < 0)
+ return -1; /* offset is smashed. */
+#endif
+
+ return acc;
+}
diff --git a/libctf/ctf-util.c b/libctf/ctf-util.c
index b1bb4309e2c..9dad4b93c05 100644
--- a/libctf/ctf-util.c
+++ b/libctf/ctf-util.c
@@ -231,17 +231,6 @@ ctf_str_append_noerr (char *s, const char *append)
return new_s;
}
-/* Store the specified error code into errp if it is non-NULL, and then
- return NULL for the benefit of the caller. */
-
-void *
-ctf_set_open_errno (int *errp, int error)
-{
- if (errp != NULL)
- *errp = error;
- return NULL;
-}
-
/* Create a ctf_next_t. */
ctf_next_t *