From: Nick Alcock Date: Mon, 13 Jan 2025 11:29:26 +0000 (+0000) Subject: libctf: split up ctf-subr.c X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4a7870a831cbcba4dad6f896d174a28b79d7318c;p=thirdparty%2Fbinutils-gdb.git libctf: split up ctf-subr.c This file is a bit of a grab-bag of dict-wide API functions like ctf_set_open_errno or ctf_errwarning_next and portabilty functions and wrappers like ctf_mmap or ctf_pread. Split the latter out, and move other dict-wide functions that got stuck in ctf-util.c (because it was so hard to tell the two files apart) into ctf-api.c where they belong. --- 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 *