reiser4progs-1.0.7.orig/0000777000175000017500000000000011134133450012725 5ustar fzfzreiser4progs-1.0.7.orig/libaux/0000777000175000017500000000000011134133444014214 5ustar fzfzreiser4progs-1.0.7.orig/libaux/aux.c0000644000175000017500000001131711131470543015155 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. aux.c -- miscellaneous code. */ #include /* This implements binary search for "needle" among "count" elements. Return values: 1 - key on *pos found exact key on *pos position; 0 - exact key has not been found. key of *pos < then wanted. */ int aux_bin_search( void *array, /* pointer to array for search in */ uint32_t count, /* array length */ void *needle, /* array item to be found */ aux_comp_func_t comp_func, /* function for comparing items */ void *data, /* user-specified data */ uint32_t *pos) /* pointer result will be saved in */ { int res = 0; int left, right, i; if (count == 0) { *pos = 0; return 0; } left = 0; right = count - 1; for (i = (right + left) / 2; left <= right; i = (right + left) / 2) { res = comp_func(array, i, needle, data); if (res == -1) { left = i + 1; continue; } else if (res == 1) { right = i - 1; continue; } else { *pos = i; return 1; } } *pos = left; return 0; } #ifndef ENABLE_MINIMAL #define MAX_PATH 1024 #else #define MAX_PATH 256 #endif /* Parse standard unix path. It uses two callback functions for notifying user what stage of parse is going on. */ errno_t aux_parse_path(char *path, aux_pre_entry_t pre_func, aux_post_entry_t post_func, void *data) { char local[MAX_PATH]; char *pointer = NULL; char *entry = NULL; errno_t res; aal_memset(local, 0, sizeof(local)); /* Initializing local variable path is stored in. */ aal_strncpy(local, path, sizeof(local)); if (local[0] == '/') { if ((res = post_func(NULL, NULL, data))) return res; pointer = &local[1]; } else { pointer = local; } /* Loop until local is finished parse. */ while (1) { if ((res = pre_func(path, entry, data))) return res; /* Using strsep() for parsing path with delimiting char "/". This probably may be improved with bias do not use hardcoded "/" and use some macro instead. */ while (1) { if (!(entry = aal_strsep(&pointer, "/"))) return 0; if (aal_strlen(entry)) break; if (!pointer || !aal_strlen(pointer)) return 0; else continue; } if ((res = post_func(path, entry, data))) return res; } return 0; } /* Packing string into uint64_t value. This is used by key40 plugin for creating entry keys. */ uint64_t aux_pack_string(char *buff, uint32_t start) { unsigned i; uint64_t value = 0; for (i = 0; (i < sizeof(value) - start) && buff[i]; ++i) { value <<= 8; value |= (unsigned char)buff[i]; } return (value <<= (sizeof(value) - i - start) << 3); } /* Extracts the part of string from the 64bits value it was packed to. This function is needed in direntry40 plugin for unpacking keys of short entries. */ char *aux_unpack_string(uint64_t value, char *buff) { do { *buff = value >> (64 - 8); if (*buff) buff++; value <<= 8; } while (value != 0); *buff = '\0'; return buff; } /* Calculates the adler32 checksum for the data pointed by "buff" of the length "n". This function was originally taken from zlib, version 1.1.3, July 9th, 1998. Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu The above comment is applyed to the only aal_alder32 function. */ #define ADLER_NMAX (5552) #define ADLER_BASE (65521l) unsigned int aux_adler32(unsigned int adler, char *buff, unsigned int n) { unsigned char *t = (unsigned char *)buff; unsigned int s1 = 1, s2 = 0; int k; adler = (adler) ? : 1; s1 = adler & 0xffff; s2 = adler >> 16; while (n > 0) { k = n < ADLER_NMAX ? n : ADLER_NMAX; n -= k; while (k--) { s1 += *t++; s2 += s1; } s1 %= ADLER_BASE; s2 %= ADLER_BASE; } return (s2 << 16) | s1; } reiser4progs-1.0.7.orig/libaux/Makefile.in0000644000175000017500000004477011134132270016265 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libaux DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libaux_minimal_la_LIBADD = am__libaux_minimal_la_SOURCES_DIST = aux.c gauge.c @ENABLE_MINIMAL_TRUE@am_libaux_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ libaux_minimal_la-aux.lo \ @ENABLE_MINIMAL_TRUE@ libaux_minimal_la-gauge.lo libaux_minimal_la_OBJECTS = $(am_libaux_minimal_la_OBJECTS) libaux_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libaux_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ @ENABLE_MINIMAL_TRUE@am_libaux_minimal_la_rpath = libaux_static_la_LIBADD = am_libaux_static_la_OBJECTS = libaux_static_la-aux.lo \ libaux_static_la-gauge.lo libaux_static_la_OBJECTS = $(am_libaux_static_la_OBJECTS) libaux_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libaux_static_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libaux_minimal_la_SOURCES) $(libaux_static_la_SOURCES) DIST_SOURCES = $(am__libaux_minimal_la_SOURCES_DIST) \ $(libaux_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ auxincludedir = -I$(top_srcdir)/include @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libaux-minimal.la noinst_LTLIBRARIES = libaux-static.la $(MINIMAL_LIBS) libaux_static_la_SOURCES = aux.c gauge.c libaux_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_TRUE@libaux_minimal_la_SOURCES = aux.c gauge.c @ENABLE_MINIMAL_TRUE@libaux_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(auxincludedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libaux/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu libaux/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libaux-minimal.la: $(libaux_minimal_la_OBJECTS) $(libaux_minimal_la_DEPENDENCIES) $(libaux_minimal_la_LINK) $(am_libaux_minimal_la_rpath) $(libaux_minimal_la_OBJECTS) $(libaux_minimal_la_LIBADD) $(LIBS) libaux-static.la: $(libaux_static_la_OBJECTS) $(libaux_static_la_DEPENDENCIES) $(libaux_static_la_LINK) $(libaux_static_la_OBJECTS) $(libaux_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaux_minimal_la-aux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaux_minimal_la-gauge.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaux_static_la-aux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaux_static_la-gauge.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libaux_minimal_la-aux.lo: aux.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaux_minimal_la_CFLAGS) $(CFLAGS) -MT libaux_minimal_la-aux.lo -MD -MP -MF $(DEPDIR)/libaux_minimal_la-aux.Tpo -c -o libaux_minimal_la-aux.lo `test -f 'aux.c' || echo '$(srcdir)/'`aux.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libaux_minimal_la-aux.Tpo $(DEPDIR)/libaux_minimal_la-aux.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='aux.c' object='libaux_minimal_la-aux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaux_minimal_la_CFLAGS) $(CFLAGS) -c -o libaux_minimal_la-aux.lo `test -f 'aux.c' || echo '$(srcdir)/'`aux.c libaux_minimal_la-gauge.lo: gauge.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaux_minimal_la_CFLAGS) $(CFLAGS) -MT libaux_minimal_la-gauge.lo -MD -MP -MF $(DEPDIR)/libaux_minimal_la-gauge.Tpo -c -o libaux_minimal_la-gauge.lo `test -f 'gauge.c' || echo '$(srcdir)/'`gauge.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libaux_minimal_la-gauge.Tpo $(DEPDIR)/libaux_minimal_la-gauge.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gauge.c' object='libaux_minimal_la-gauge.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaux_minimal_la_CFLAGS) $(CFLAGS) -c -o libaux_minimal_la-gauge.lo `test -f 'gauge.c' || echo '$(srcdir)/'`gauge.c libaux_static_la-aux.lo: aux.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaux_static_la_CFLAGS) $(CFLAGS) -MT libaux_static_la-aux.lo -MD -MP -MF $(DEPDIR)/libaux_static_la-aux.Tpo -c -o libaux_static_la-aux.lo `test -f 'aux.c' || echo '$(srcdir)/'`aux.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libaux_static_la-aux.Tpo $(DEPDIR)/libaux_static_la-aux.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='aux.c' object='libaux_static_la-aux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaux_static_la_CFLAGS) $(CFLAGS) -c -o libaux_static_la-aux.lo `test -f 'aux.c' || echo '$(srcdir)/'`aux.c libaux_static_la-gauge.lo: gauge.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaux_static_la_CFLAGS) $(CFLAGS) -MT libaux_static_la-gauge.lo -MD -MP -MF $(DEPDIR)/libaux_static_la-gauge.Tpo -c -o libaux_static_la-gauge.lo `test -f 'gauge.c' || echo '$(srcdir)/'`gauge.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libaux_static_la-gauge.Tpo $(DEPDIR)/libaux_static_la-gauge.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gauge.c' object='libaux_static_la-gauge.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaux_static_la_CFLAGS) $(CFLAGS) -c -o libaux_static_la-gauge.lo `test -f 'gauge.c' || echo '$(srcdir)/'`gauge.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/libaux/Makefile.am0000644000175000017500000000062411131470543016247 0ustar fzfzauxincludedir = -I$(top_srcdir)/include if ENABLE_MINIMAL MINIMAL_LIBS = libaux-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = libaux-static.la $(MINIMAL_LIBS) libaux_static_la_SOURCES = aux.c gauge.c libaux_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL libaux_minimal_la_SOURCES = aux.c gauge.c libaux_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(auxincludedir) reiser4progs-1.0.7.orig/libaux/gauge.c0000644000175000017500000000111011131470543015436 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. gauge.c -- common for all progs gauge metods. */ #ifndef ENABLE_MINIMAL #include #include aal_gauge_handler_t aux_gauge_handlers[GT_LAST]; void aux_gauge_set_handler(aal_gauge_handler_t handler, aux_gauge_type_t type) { aal_assert("vpf-1685", type < GT_LAST); aux_gauge_handlers[type] = handler; } aal_gauge_handler_t aux_gauge_get_handler(aux_gauge_type_t type) { aal_assert("vpf-1685", type < GT_LAST); return aux_gauge_handlers[type]; } #endif reiser4progs-1.0.7.orig/install-sh0000755000175000017500000002177411131470543014744 0ustar fzfz#!/bin/sh # install - install a program, script, or datafile scriptversion=2004-07-05.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit 0;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit 0;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: reiser4progs-1.0.7.orig/include/0000777000175000017500000000000011134133450014350 5ustar fzfzreiser4progs-1.0.7.orig/include/aux/0000777000175000017500000000000011134133450015145 5ustar fzfzreiser4progs-1.0.7.orig/include/aux/Makefile.in0000644000175000017500000002462611134132270017217 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/aux DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = aux.h gauge.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/aux/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu include/aux/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/include/aux/gauge.h0000644000175000017500000000105711131470543016411 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. gauge.h -- common for all progs gauge declarations. */ #ifndef AUX_GAUGE_H #define AUX_GAUGE_H #ifndef ENABLE_MINIMAL #include typedef enum aux_gauge_type { GT_PROGRESS = 0x0, GT_LAST } aux_gauge_type_t; extern aal_gauge_handler_t aux_gauge_handlers[GT_LAST]; extern aal_gauge_handler_t aux_gauge_get_handler(aux_gauge_type_t type); extern void aux_gauge_set_handler(aal_gauge_handler_t handler, aux_gauge_type_t type); #endif #endif reiser4progs-1.0.7.orig/include/aux/Makefile.am0000644000175000017500000000004011131470543017173 0ustar fzfznoinst_HEADERS = aux.h gauge.h reiser4progs-1.0.7.orig/include/aux/aux.h0000644000175000017500000000160511131470543016115 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. aux.h -- miscellaneous useful code. */ #ifndef AUX_H #define AUX_H #include /* Path parsing stuff */ typedef errno_t (*aux_pre_entry_t) (char *, char *, void *); typedef errno_t (*aux_post_entry_t) (char *, char *, void *); extern errno_t aux_parse_path(char *path, aux_pre_entry_t pre_func, aux_post_entry_t post_func, void *data); /* Binary search stuff */ typedef int (*aux_comp_func_t) (void *, uint32_t, void *, void *); extern int aux_bin_search(void *array, uint32_t count, void *needle, aux_comp_func_t comp_func, void *, uint32_t *pos); extern uint64_t aux_pack_string(char *buff, uint32_t start); extern char *aux_unpack_string(uint64_t value, char *buff); extern unsigned int aux_adler32(unsigned int adler, char *buff, unsigned int n); #endif reiser4progs-1.0.7.orig/include/Makefile.in0000644000175000017500000003433411134132270016417 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = aux misc reiser4 repair all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/include/Makefile.am0000644000175000017500000000004211131470543016400 0ustar fzfzSUBDIRS = aux misc reiser4 repair reiser4progs-1.0.7.orig/include/repair/0000777000175000017500000000000011134133450015632 5ustar fzfzreiser4progs-1.0.7.orig/include/repair/semantic.h0000644000175000017500000000247611131470543017617 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/semantic.h -- the structures and methods needed for semantic pass of fsck. */ #ifndef REPAIR_SEM_H #define REPAIR_SEM_H #include #include #define LOST_PREFIX "lost_name_" /* Statistics gathered during the pass. */ typedef struct repair_semantic_stat { uint64_t reached_files; uint64_t lost_files; uint64_t shared, rm_entries, broken; uint64_t oid; /* Files counted on previous passes. */ uint64_t statdatas; uint64_t files; time_t time; } repair_semantic_stat_t; typedef struct repair_ancestor { reiser4_object_t *object; entry_type_t link; } repair_ancestor_t; /* Data semantic pass works on. */ typedef struct repair_semantic { repair_data_t *repair; reiser4_object_t *root; reiser4_object_t *lost; repair_semantic_stat_t stat; aal_gauge_t *gauge; } repair_semantic_t; extern errno_t repair_semantic(repair_semantic_t *sem); typedef errno_t (*semantic_link_func_t) (reiser4_object_t *object, reiser4_object_t *parent, entry_type_t link, void *data); extern reiser4_object_t *repair_semantic_open_child(reiser4_object_t *parent, entry_hint_t *entry, repair_data_t *repair, semantic_link_func_t func, void *data); #endif reiser4progs-1.0.7.orig/include/repair/add_missing.h0000644000175000017500000000150511131470543020265 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/add_missing.h -- the common structures and methods for insertion leaves and extent item from twigs unconnected from the tree. */ #ifndef ADD_MISSING_H #define ADD_MISSING_H #include #include /* Statistics gathered during the pass. */ typedef struct repair_am_stat { uint64_t read_leaves, by_leaf, by_item_leaves; uint64_t read_twigs, by_twig, by_item_twigs, empty; uint64_t *files; time_t time; } repair_am_stat_t; /* Add missing. */ typedef struct repair_am { repair_data_t *repair; reiser4_bitmap_t *bm_used; reiser4_bitmap_t *bm_twig; reiser4_bitmap_t *bm_leaf; repair_am_stat_t stat; aal_gauge_t *gauge; } repair_am_t; extern errno_t repair_add_missing(repair_am_t *am); #endif reiser4progs-1.0.7.orig/include/repair/pset.h0000644000175000017500000000064711131470543016765 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. pset.h -- repair plugin set (&heir set) method declarations. */ #ifndef REPAIR_PSET_H #define REPAIR_PSET_H #include extern errno_t repair_pset_check_backup(backup_hint_t *hint); extern errno_t repair_pset_root_check(reiser4_fs_t *fs, reiser4_object_t *root, uint8_t mode); #endif reiser4progs-1.0.7.orig/include/repair/tree.h0000644000175000017500000000214111131470543016740 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/tree.h -- reiserfs tree recovery structures and macros. */ #ifndef REPAIR_TREE_H #define REPAIR_TREE_H #include extern errno_t repair_tree_parent_rkey(reiser4_tree_t *tree, reiser4_node_t *node, reiser4_key_t *rd_key); extern errno_t repair_tree_parent_lkey(reiser4_tree_t *tree, reiser4_node_t *node, reiser4_key_t *ld_key); extern reiser4_node_t *repair_tree_load_node(reiser4_tree_t *tree, reiser4_node_t *parent, blk_t blk, uint32_t mkid); extern errno_t repair_tree_dknode_check(reiser4_tree_t *tree, reiser4_node_t *node, uint8_t mode); extern errno_t repair_tree_insert(reiser4_tree_t *tree, reiser4_place_t *place, region_func_t func, void *data); extern errno_t repair_tree_attach_node(reiser4_tree_t *tree, reiser4_node_t *node); extern bool_t repair_tree_data_level(uint8_t level); extern bool_t repair_tree_legal_level(reiser4_item_plug_t *plug, uint8_t level); #endif reiser4progs-1.0.7.orig/include/repair/plugin.h0000644000175000017500000000251211131470543017301 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/plugin.h - reiser4 plugins repair code methods. */ #ifndef REPAIR_PLUGIN_H #define REPAIR_PLUGIN_H #include typedef enum repair_mode { /* Check the consistensy of the fs */ RM_CHECK = 1, /* Fix all fixable corruptions. */ RM_FIX = 2, /* Rebuild the fs from the found wrecks. */ RM_BUILD = 3, /* Rollback changes have been make by the last fsck run. */ RM_BACK = 4, /* No one mode anymore. */ RM_LAST = 5 } repair_mode_t; /* Fixable errors were detected. */ #define RE_FIXABLE ((int64_t)1 << 32) /* Fatal errors were detected. */ #define RE_FATAL ((int64_t)1 << 33) /* For expansibility. */ #define RE_LAST ((int64_t)1 << 34) #define repair_error_fatal(result) ((result < 0) || (result & RE_FATAL)) #define EXCEPTION_TYPE_FSCK EXCEPTION_TYPE_LAST #define fsck_mess(msg, list...) \ aal_exception_throw(EXCEPTION_TYPE_FSCK, \ EXCEPTION_OPT_OK, \ "FSCK: %s: %d: %s: "msg, \ __FILE__, __LINE__, __FUNCTION__, \ ##list) #define MASTER_PACK_SIGN "MSTR" #define STATUS_PACK_SIGN "STAT" #define BACKUP_PACK_SIGN "BCKP" #define FORMAT_PACK_SIGN "FRMT" #define ALLOC_PACK_SIGN "ALLO" #define NODE_PACK_SIGN "NODE" #define BLOCK_PACK_SIGN "BLCK" #define JOURNAL_PACK_SIGN "JRNL" #endif reiser4progs-1.0.7.orig/include/repair/oid.h0000644000175000017500000000060311131470543016555 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. oid.c -- oid allocator repair code. */ #ifndef REPAIR_OID_H #define REPAIR_OID_H #ifndef ENABLE_MINIMAL #include extern void repair_oid_print(reiser4_oid_t *oid, aal_stream_t *stream); extern oid_t repair_oid_lost_objectid(reiser4_oid_t *oid); #endif #endif reiser4progs-1.0.7.orig/include/repair/Makefile.in0000644000175000017500000002772111134132270017703 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/repair DIST_COMMON = $(repairinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(repairincludedir)" repairincludeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(repairinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ repairincludedir = $(includedir)/repair repairinclude_HEADERS = librepair.h repair.h plugin.h filesystem.h object.h \ master.h format.h journal.h node.h place.h item.h \ filter.h disk_scan.h twig_scan.h add_missing.h \ semantic.h lost_found.h cleanup.h tree.h alloc.h \ object.h status.h backup.h oid.h pset.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/repair/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu include/repair/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-repairincludeHEADERS: $(repairinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(repairincludedir)" || $(MKDIR_P) "$(DESTDIR)$(repairincludedir)" @list='$(repairinclude_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(repairincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(repairincludedir)/$$f'"; \ $(repairincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(repairincludedir)/$$f"; \ done uninstall-repairincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(repairinclude_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(repairincludedir)/$$f'"; \ rm -f "$(DESTDIR)$(repairincludedir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(repairincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-repairincludeHEADERS install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-repairincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-repairincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-repairincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/include/repair/item.h0000644000175000017500000000102311131470543016735 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/item.h -- common structures and methods for item recovery. */ #ifndef REPAIR_ITEM_H #define REPAIR_ITEM_H #include extern errno_t repair_item_check_struct(reiser4_place_t *place, uint8_t mode); extern errno_t repair_item_check_layout(reiser4_place_t *place, region_func_t func, void *data, uint8_t mode); extern void repair_item_print(reiser4_place_t *place, aal_stream_t *stream); #endif reiser4progs-1.0.7.orig/include/repair/journal.h0000644000175000017500000000150111131470543017452 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/journal.h -- reiserfs journal recovery structures and macros. */ #ifndef REPAIR_JOURNAL_H #define REPAIR_JOURNAL_H #include extern errno_t repair_journal_open(reiser4_fs_t *fs, aal_device_t *journal_device, uint8_t mode, uint32_t options); extern void repair_journal_invalidate(reiser4_journal_t *journal); extern errno_t repair_journal_replay(reiser4_journal_t *journal, aal_device_t *device); extern void repair_journal_print(reiser4_journal_t *journal, aal_stream_t *stream); extern errno_t repair_journal_pack(reiser4_journal_t *journal, aal_stream_t *stream); extern reiser4_journal_t *repair_journal_unpack(reiser4_fs_t *fs, aal_stream_t *stream); #endif reiser4progs-1.0.7.orig/include/repair/twig_scan.h0000644000175000017500000000150011131470543017755 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/twig_scan.h -- common structures and methods for the second fsck pass. */ #ifndef REPAIR_SCAN_H #define REPAIR_SCAN_H #include #include /* Statistics gathered during the pass. */ typedef struct repair_ts_stat { uint64_t read_twigs, fixed_twigs; uint64_t bad_unfm_ptrs; time_t time; } repair_ts_stat_t; /* Twig scan data. */ typedef struct repair_ts { repair_data_t *repair; reiser4_bitmap_t *bm_used; /* In the tree blocks . */ reiser4_bitmap_t *bm_twig; /* To be scanned blocks. */ reiser4_bitmap_t *bm_met; /* Met blocks, cannot be pointed by extents. */ repair_ts_stat_t stat; } repair_ts_t; extern errno_t repair_twig_scan(repair_ts_t *ts); #endif reiser4progs-1.0.7.orig/include/repair/lost_found.h0000644000175000017500000000135511131470543020163 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/filter.h -- the structures and methods needed for lost&found pass of fsck. */ #ifndef REPAIR_LOST_FOUND_H #define REPAIR_LOST_FOUNS_H #include #include /* Statistics gathered during the pass. */ typedef struct repair_lost_found_stat { time_t time; } repair_lost_found_stat_t; /* Data filter works on. */ typedef struct repair_lost_found { repair_data_t *repair; aal_list_t *path; repair_progress_handler_t *progress_handler; repair_progress_t *progress; reiser4_object_t *lost; repair_lost_found_stat_t stat; } repair_lost_found_t; extern errno_t repair_lost_found(repair_lost_found_t *lf); #endif reiser4progs-1.0.7.orig/include/repair/place.h0000644000175000017500000000103411131470543017065 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/place.h -- common structures and methods for place handling. */ #ifndef REPAIR_COORD_H #define REPAIR_COORD_H #include #define repair_place_get_lpos(place, ppos) \ { \ ppos = place->pos; \ \ if (reiser4_item_units(place) == 1 || place->pos.unit == MAX_UINT32) { \ ppos.unit = MAX_UINT32 - 1; \ ppos.item--; \ } else { \ ppos.unit--; \ } \ } #endif reiser4progs-1.0.7.orig/include/repair/alloc.h0000644000175000017500000000132011131470543017071 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. alloc.h -- repair block allocator functions. */ #ifndef REPAIR_ALLOC_H #define REPAIR_ALLOC_H extern errno_t repair_alloc_check_struct(reiser4_alloc_t *alloc, uint8_t mode); extern errno_t repair_alloc_layout_bad(reiser4_alloc_t *alloc, region_func_t func, void *data); extern errno_t repair_alloc_pack(reiser4_alloc_t *alloc, aal_stream_t *stream); extern reiser4_alloc_t *repair_alloc_unpack(reiser4_fs_t *fs, aal_stream_t *stream); extern void repair_alloc_print(reiser4_alloc_t *alloc, aal_stream_t *stream); extern errno_t repair_alloc_open(reiser4_fs_t *fs, uint8_t mode); #endif reiser4progs-1.0.7.orig/include/repair/master.h0000644000175000017500000000134711131470543017303 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/master.h -- reiserfs master superblock recovery structures and macros. */ #ifndef REPAIR_MASTER_H #define REPAIR_MASTER_H #include extern errno_t repair_master_check_struct(reiser4_fs_t *fs, uint8_t mode, uint32_t options); extern errno_t repair_master_pack(reiser4_master_t *master, aal_stream_t *stream); extern reiser4_master_t *repair_master_unpack(aal_device_t *device, aal_stream_t *stream); extern void repair_master_print(reiser4_master_t *master, aal_stream_t *stream, uuid_unparse_t unparse); extern errno_t repair_master_check_backup(backup_hint_t *hint); #endif reiser4progs-1.0.7.orig/include/repair/backup.h0000644000175000017500000000105211131470543017246 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. backup.h -- repair backup method declaration. */ #ifndef REPAIR_BACKUP_H #define REPAIR_BACKUP_H #include extern errno_t repair_backup_pack(reiser4_fs_t *fs, aal_stream_t *stream); extern errno_t repair_backup_unpack(reiser4_fs_t *fs, aal_stream_t *stream); extern reiser4_backup_t *repair_backup_open(reiser4_fs_t *fs, uint8_t mode); extern reiser4_backup_t *repair_backup_reopen(reiser4_fs_t *fs); #endif reiser4progs-1.0.7.orig/include/repair/cleanup.h0000644000175000017500000000135111131470543017432 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/cleanup.h -- the structures and methods needed for cleaning up the storage trees at the end of filsystem recovery. */ #ifndef REPAIR_CLEANUP_H #define REPAIR_CLEANUP_H #include #include /* Statistics gathered during the pass. */ typedef struct repair_cleanup_stat { uint64_t removed, linked; time_t time; } repair_cleanup_stat_t; /* Data filter works on. */ typedef struct repair_cleanup { repair_data_t *repair; reiser4_place_t neigh; repair_cleanup_stat_t stat; aal_gauge_t *gauge; reiser4_place_t *cur_place; } repair_cleanup_t; extern errno_t repair_cleanup(repair_cleanup_t *cleanup); #endif reiser4progs-1.0.7.orig/include/repair/Makefile.am0000644000175000017500000000051411131470543017666 0ustar fzfzrepairincludedir = $(includedir)/repair repairinclude_HEADERS = librepair.h repair.h plugin.h filesystem.h object.h \ master.h format.h journal.h node.h place.h item.h \ filter.h disk_scan.h twig_scan.h add_missing.h \ semantic.h lost_found.h cleanup.h tree.h alloc.h \ object.h status.h backup.h oid.h pset.h reiser4progs-1.0.7.orig/include/repair/status.h0000644000175000017500000000126111131470543017326 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. status.h -- filesystem status block functions. */ #ifndef REPAIR_STATUS_H #define REPAIR_STATUS_H #include extern errno_t repair_status_pack(reiser4_status_t *status, aal_stream_t *stream); extern void repair_status_state(reiser4_status_t *status, uint64_t state); extern errno_t repair_status_open(reiser4_fs_t *fs, uint8_t mode); extern reiser4_status_t *repair_status_unpack(aal_device_t *device, uint32_t blksize, aal_stream_t *stream); extern void repair_status_print(reiser4_status_t *status, aal_stream_t *stream); #endif reiser4progs-1.0.7.orig/include/repair/disk_scan.h0000644000175000017500000000174711131470543017752 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/disk_scan.h -- the structures and methods needed for the second pass of fsck. */ #ifndef REPAIR_DS_H #define REPAIR_DS_H #include #include /* Statistics gathered during the pass. */ typedef struct repair_ds_stat { uint64_t read_nodes; uint64_t good_nodes, good_leaves, good_twigs; uint64_t fixed_nodes, fixed_leaves, fixed_twigs; uint64_t *files, tmp; time_t time; } repair_ds_stat_t; /* Disk scan data. */ typedef struct repair_ds { repair_data_t *repair; reiser4_bitmap_t *bm_scan; /* Blocks to be scanned on the pass. */ reiser4_bitmap_t *bm_met; /* Blocks met already + all formatted . */ /* Results of the work. */ reiser4_bitmap_t *bm_leaf; /* Found leaves. */ reiser4_bitmap_t *bm_twig; /* Fount twigs. */ repair_ds_stat_t stat; bool_t mkidok; uint32_t mkid; } repair_ds_t; extern errno_t repair_disk_scan(repair_ds_t *ds); #endif reiser4progs-1.0.7.orig/include/repair/librepair.h0000644000175000017500000000345711131470543017765 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/librepair.h -- the central recovery include file. */ #ifndef LIBREPAIR_H #define LIBREPAIR_H #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* ------------------------------------------------- | Common scheem for communication with users. | |-----------------------------------------------| | stream | default | with log | with 'no-log' | |----------|---------|----------|---------------| | warn | stderr | stderr | - | | info | stderr | log | - | | error | stderr | log | - | | fatal | stderr | stderr | stderr | | bug | stderr | stderr | stderr | ------------------------------------------------- info - Information about what is going on. warn - warnings to users about what is going on, which should be viewed on-line. error - Problems. fatal - Fatal problems which are supposed to be viewed on-line. Modifiers: Auto (choose the default answer for all questions) and Verbose (provide some extra information) and Quiet (quiet progress and provide only fatal and bug infotmation to stderr; does not affect the log content though if log presents). */ #ifdef __cplusplus } #endif #endif reiser4progs-1.0.7.orig/include/repair/object.h0000644000175000017500000000276211131470543017260 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/object.h -- common structures and methods for object recovery. */ #ifndef REPAIR_OBJECT_H #define REPAIR_OBJECT_H #include typedef enum repair_object_flag { OF_CHECKED = 0x0, OF_ATTACHED = 0x1, OF_TRAVERSED = 0x2, OF_ATTACHING = 0x3, OF_LAST } repair_object_flag_t; extern errno_t repair_object_check_struct(reiser4_object_t *object, place_func_t place_func, uint8_t mode, void *data); extern reiser4_object_t *repair_object_obtain(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_key_t *key); extern reiser4_object_t *repair_object_open(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_place_t *place); extern errno_t repair_object_check_attach(reiser4_object_t *object, reiser4_object_t *parent, place_func_t place_func, void *data, uint8_t mode); extern reiser4_object_t *repair_object_fake(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_key_t *key, reiser4_plug_t *plug); extern errno_t repair_object_mark(reiser4_object_t *object, uint16_t flag); extern errno_t repair_object_clear(reiser4_object_t *object, uint16_t flag); extern int repair_object_test(reiser4_object_t *object, uint16_t flag); extern errno_t repair_object_refresh(reiser4_object_t *object); extern void repair_object_print(reiser4_object_t *object, aal_stream_t *stream); #endif reiser4progs-1.0.7.orig/include/repair/filesystem.h0000644000175000017500000000210711131470543020167 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/filesystem.h -- reiserfs filesystem recovery structures and macros. */ #ifndef REPAIR_FILESYSTEM_H #define REPAIR_FILESYSTEM_H #include #include extern errno_t repair_fs_open(repair_data_t *repair, aal_device_t *host_device, aal_device_t *journal_device); extern errno_t repair_fs_replay(reiser4_fs_t *fs); extern errno_t repair_fs_pack(reiser4_fs_t *fs, reiser4_bitmap_t *bitmap, aal_stream_t *stream); extern reiser4_fs_t *repair_fs_unpack(aal_device_t *device, reiser4_bitmap_t *bitmap, aal_stream_t *stream); extern errno_t repair_fs_lost_key(reiser4_fs_t *fs, reiser4_key_t *key); extern errno_t repair_fs_check_backup(aal_device_t *device, backup_hint_t *hint); extern errno_t repair_fs_block_pack(aal_block_t *block, aal_stream_t *stream); extern aal_block_t *repair_fs_block_unpack(reiser4_fs_t *fs, aal_stream_t *stream); #endif reiser4progs-1.0.7.orig/include/repair/node.h0000644000175000017500000000155111131470543016732 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/node.h -- reiserfs node recovery structures and macros. */ #ifndef REPAIR_NODE_H #define REPAIR_NODE_H #include extern reiser4_node_t *repair_node_open(reiser4_tree_t *tree, blk_t blk, uint32_t mkid); extern errno_t repair_node_check_level(reiser4_node_t *node, uint8_t mode); extern errno_t repair_node_check_struct(reiser4_node_t *node, place_func_t func, uint8_t mode, void *data); extern errno_t repair_node_clear_flags(reiser4_node_t *node); extern errno_t repair_node_pack(reiser4_node_t *node, aal_stream_t *stream); extern reiser4_node_t *repair_node_unpack(reiser4_tree_t *tree, aal_stream_t *stream); extern void repair_node_print(reiser4_node_t *node, aal_stream_t *stream); #endif reiser4progs-1.0.7.orig/include/repair/filter.h0000644000175000017500000000256211131470543017275 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/filter.h -- the structures and methods needed for fsck pass1. */ #ifndef REPAIR_FILTER_H #define REPAIR_FILTER_H #include #include /* Statistics gathered during the pass. */ typedef struct repair_filter_stat { uint64_t read_nodes; uint64_t good_nodes, good_leaves, good_twigs; uint64_t fixed_nodes, fixed_leaves, fixed_twigs; uint64_t bad_nodes, bad_leaves, bad_twigs; uint64_t bad_dk_nodes, bad_dk_leaves, bad_dk_twigs; uint64_t bad_ptrs; uint64_t *files, tmp; time_t time; } repair_filter_stat_t; /* Data filter works on. */ typedef struct repair_filter { repair_data_t *repair; reiser4_bitmap_t *bm_used; /* FS system area + formatted nodes. */ /* Results of the work. */ reiser4_bitmap_t *bm_leaf; /* Bitmap of found leaves. */ reiser4_bitmap_t *bm_twig; /* Bitmap of found twigs. */ reiser4_bitmap_t *bm_met; /* Bitmap of formatted nodes which does not get to neither other bitmap due to corruption or just an internal one. */ repair_filter_stat_t stat; bool_t mkidok; uint32_t mkid; uint64_t oid; /* Private data. */ reiser4_node_t *cur_node; aal_gauge_t *gauge; uint64_t flags; uint8_t level; } repair_filter_t; extern errno_t repair_filter(repair_filter_t *filter); #endif reiser4progs-1.0.7.orig/include/repair/repair.h0000644000175000017500000000150711131470543017270 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/repair.h -- the common structures and methods for recovery. */ #ifndef REPAIR_H #define REPAIR_H #include #include #include enum { REPAIR_DEBUG = 0x0, REPAIR_WHOLE = 0x1, REPAIR_NO_MKID = 0x2, REPAIR_YES = 0X3, REPAIR_LAST }; typedef struct repair_data { reiser4_fs_t *fs; uint64_t fatal; uint64_t fixable; uint64_t sb_fixable; uint8_t mode; char *bitmap_file; uint32_t flags; } repair_data_t; extern errno_t repair_check(repair_data_t *repair); #define repair_error_count(repair, error) \ ({ \ if (error > 0) { \ if (error & RE_FATAL) \ repair->fatal++; \ else if (error & RE_FIXABLE) \ repair->fixable++; \ } \ }) #endif reiser4progs-1.0.7.orig/include/repair/format.h0000644000175000017500000000176311131470543017302 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/format.h -- reiserfs filesystem recovery structures and macros. */ #ifndef REPAIR_FORMAT_H #define REPAIR_FORMAT_H #include extern errno_t repair_format_check_struct(reiser4_fs_t *fs, uint8_t mode, uint32_t options); extern errno_t repair_format_update(reiser4_format_t *format); extern errno_t repair_format_pack(reiser4_format_t *format, aal_stream_t *stream); extern reiser4_format_t *repair_format_unpack(reiser4_fs_t *fs, aal_stream_t *stream); extern void repair_format_print(reiser4_format_t *format, aal_stream_t *stream); extern errno_t repair_format_check_backup(aal_device_t *device, backup_hint_t *hint); extern count_t repair_format_len_old(aal_device_t *device, uint32_t blksize); extern errno_t repair_format_check_len_old(aal_device_t *device, uint32_t blksize, count_t blocks); #endif reiser4progs-1.0.7.orig/include/reiser4/0000777000175000017500000000000011134133450015725 5ustar fzfzreiser4progs-1.0.7.orig/include/reiser4/semantic.h0000644000175000017500000000104211131470543017676 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. semantic.h -- reiser4 semantic tree functions. */ #ifndef REISER4_SEMANTIC_H #define REISER4_SEMANTIC_H #include extern reiser4_object_t *reiser4_semantic_open(reiser4_tree_t *tree, char *path, reiser4_key_t *from, bool_t follow); extern reiser4_object_t *reiser4_semantic_try_open(reiser4_tree_t *tree, char *path, reiser4_key_t *from, bool_t follow); #endif reiser4progs-1.0.7.orig/include/reiser4/pset.h0000644000175000017500000000160711131470543017055 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. pset.h -- reiser4 plugin set functions. */ #ifndef REISER4_PSET_H #define REISER4_PSET_H #ifndef ENABLE_MINIMAL #define PSET_MAGIC "PsEt" struct reiser4_pset_backup { rid_t id[PSET_STORE_LAST]; }; extern void reiser4_pset_root(object_info_t *info); extern uint64_t reiser4_pset_build_mask(reiser4_tree_t *tree, reiser4_pset_t *pset); extern errno_t reiser4_pset_tree(reiser4_tree_t *tree, int check); extern errno_t reiser4_pset_backup(reiser4_tree_t *tree, backup_hint_t *hint); #else extern errno_t reiser4_pset_tree(reiser4_tree_t *tree); #endif extern void reiser4_pset_complete(reiser4_tree_t *tree, object_info_t *info); extern errno_t reiser4_tset_init(reiser4_tree_t *tree); extern reiser4_plug_t *reiser4_pset_find(rid_t member, rid_t id, int is_pset); #endif reiser4progs-1.0.7.orig/include/reiser4/profile.h0000644000175000017500000000404711131470543017543 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. profile.h -- reiser4 profile functions. */ #ifndef REISER4_PROFILE_H #define REISER4_PROFILE_H #include enum reiser4_profile_index { PROF_OBJ = 0x0, PROF_DIR = 0x1, PROF_REGFILE = 0x2, PROF_DIRFILE = 0x3, PROF_SYMFILE = 0x4, PROF_SPLFILE = 0x5, PROF_CREATE = 0x6, PROF_FORMAT = 0x7, PROF_JOURNAL = 0x8, PROF_OID = 0x9, PROF_ALLOC = 0xa, PROF_KEY = 0xb, PROF_NODE = 0xc, PROF_COMPRESS = 0xd, PROF_CMODE = 0xe, PROF_CRYPTO = 0xf, PROF_DIGEST = 0x10, PROF_CLUSTER = 0x11, PROF_HASH = 0x12, PROF_FIBRE = 0x13, PROF_POLICY = 0x14, PROF_PERM = 0x15, PROF_STAT = 0x16, PROF_DIRITEM = 0x17, #ifndef ENABLE_MINIMAL PROF_NODEPTR = 0x18, PROF_TAIL = 0x19, PROF_EXTENT = 0x1a, PROF_CTAIL = 0x1b, PROF_HEIR_HASH = 0x1c, PROF_HEIR_FIBRE = 0x1d, PROF_HEIR_DIRITEM = 0x1e, #endif PROF_LAST }; typedef struct reiser4_profile { struct { /* The default plugin id and the plugin type of profile slot. */ plug_ident_t id; #ifndef ENABLE_MINIMAL /* The name of the profile slot. */ char *name; /* The description of the profile slot. */ char *desc; /* Hide those slots where are no alternatives. */ uint8_t hidden; /* The maximum legal value. This value is not depends on the format version. This probably should be fixed. For now, if this is a corruption, the object with this value in its pset will not survive, otherwise the object is consistent, smth wrong with the format version -- do not remove the object, if a user takes a new kernel he will access the data. */ rid_t max; #endif } pid[PROF_LAST]; /* Overriden mask. */ uint64_t mask; } reiser4_profile_t; extern reiser4_plug_t *reiser4_profile_plug(rid_t index); #ifndef ENABLE_MINIMAL extern errno_t reiser4_profile_override(const char *plug, const char *name); extern bool_t reiser4_profile_overridden(rid_t id); extern void reiser4_profile_print(aal_stream_t *stream); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/tree.h0000644000175000017500000001365511131470543017047 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tree.h -- reiser4 balanced tree functions. */ #ifndef REISER4_TREE_H #define REISER4_TREE_H #include #define REISER4_TREE_MAX_HEIGHT 10 extern void reiser4_tree_close(reiser4_tree_t *tree); extern errno_t reiser4_tree_adjust(reiser4_tree_t *tree); extern errno_t reiser4_tree_collapse(reiser4_tree_t *tree); extern reiser4_tree_t *reiser4_tree_init(reiser4_fs_t *fs); extern errno_t reiser4_tree_root_key(reiser4_tree_t *tree, reiser4_key_t *key); extern errno_t reiser4_tree_walk_node(reiser4_tree_t *tree, reiser4_node_t *node, #ifndef ENABLE_MINIMAL walk_func_t pre_func, walk_on_func_t on_func, #endif walk_func_t post_func); extern errno_t reiser4_tree_next_place(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_place_t *next); #ifndef ENABLE_MINIMAL extern errno_t reiser4_tree_next_key(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_key_t *key); #endif extern errno_t reiser4_tree_place_key(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_key_t *key); extern errno_t reiser4_tree_mpressure(reiser4_tree_t *tree); extern errno_t reiser4_tree_connect_node(reiser4_tree_t *tree, reiser4_node_t *parent, reiser4_node_t *node); extern errno_t reiser4_tree_disconnect_node(reiser4_tree_t *tree, reiser4_node_t *node); extern reiser4_node_t *reiser4_tree_child_node(reiser4_tree_t *tree, reiser4_place_t *place); #ifndef ENABLE_MINIMAL extern errno_t reiser4_tree_discard_node(reiser4_tree_t *tree, reiser4_node_t *node); extern inline uint32_t reiser4_tree_target_level(reiser4_tree_t *tree, reiser4_plug_t *plug); extern bool_t reiser4_tree_fresh(reiser4_tree_t *tree); extern bool_t reiser4_tree_minimal(reiser4_tree_t *tree); extern bool_t reiser4_tree_singular(reiser4_tree_t *tree); extern errno_t reiser4_tree_sync(reiser4_tree_t *tree); extern errno_t reiser4_tree_growup(reiser4_tree_t *tree); extern errno_t reiser4_tree_dryout(reiser4_tree_t *tree); extern errno_t reiser4_tree_compress(reiser4_tree_t *tree); extern void reiser4_tree_set_root(reiser4_tree_t *tree, blk_t blk); extern void reiser4_tree_set_height(reiser4_tree_t *tree, uint8_t height); extern int64_t reiser4_tree_insert(reiser4_tree_t *tree, reiser4_place_t *place, trans_hint_t *hint, uint8_t level); extern int64_t reiser4_tree_write(reiser4_tree_t *tree, reiser4_place_t *place, trans_hint_t *hint, uint8_t level); extern errno_t reiser4_tree_remove(reiser4_tree_t *tree, reiser4_place_t *place, trans_hint_t *hint); extern errno_t reiser4_tree_shift(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_node_t *neig, uint32_t flags); extern errno_t reiser4_tree_shrink(reiser4_tree_t *tree, reiser4_place_t *place); extern int32_t reiser4_tree_expand(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_place_t *parent, uint32_t ilen, uint32_t ioverh, uint32_t flags); extern errno_t reiser4_tree_trav(reiser4_tree_t *tree, tree_open_func_t open_func, node_func_t before_func, place_func_t update_func, node_func_t after_func, void *data); extern errno_t reiser4_tree_update_keys(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_key_t *key); extern errno_t reiser4_tree_assign_root(reiser4_tree_t *tree, reiser4_node_t *node); extern errno_t reiser4_tree_load_root(reiser4_tree_t *tree); extern reiser4_node_t *reiser4_tree_alloc_node(reiser4_tree_t *tree, uint8_t level); extern errno_t reiser4_tree_unlock_node(reiser4_tree_t *tree, reiser4_node_t *node); extern bool_t reiser4_tree_attached_node(reiser4_tree_t *tree, reiser4_node_t *node); extern errno_t reiser4_tree_attach_node(reiser4_tree_t *tree, reiser4_node_t *node, reiser4_place_t *place, uint32_t flags); extern errno_t reiser4_tree_detach_node(reiser4_tree_t *tree, reiser4_node_t *node, uint32_t flags); extern errno_t reiser4_tree_trav_node(reiser4_tree_t *tree, reiser4_node_t *node, tree_open_func_t open_func, node_func_t before_func, place_func_t update_func, node_func_t after_func, void *data); extern int64_t reiser4_tree_modify(reiser4_tree_t *tree, reiser4_place_t *place, trans_hint_t *hint, uint8_t level, estimate_func_t estimate_func, modify_func_t modify_func); extern errno_t reiser4_tree_copy(reiser4_tree_t *src_tree, reiser4_tree_t *dst_tree); extern errno_t reiser4_tree_resize(reiser4_tree_t *tree, count_t blocks); extern uint8_t reiser4_tree_get_height(reiser4_tree_t *tree); extern errno_t reiser4_tree_rehash_node(reiser4_tree_t *tree, reiser4_node_t *node, blk_t new_blk); #endif extern blk_t reiser4_tree_get_root(reiser4_tree_t *tree); extern uint32_t reiser4_tree_get_blksize(reiser4_tree_t *tree); extern errno_t reiser4_tree_unload_node(reiser4_tree_t *tree, reiser4_node_t *node); extern errno_t reiser4_tree_release_node(reiser4_tree_t *tree, reiser4_node_t *node); extern lookup_t reiser4_tree_collision(reiser4_tree_t *tree, reiser4_place_t *place, coll_hint_t *hint); extern lookup_t reiser4_collision_handler(reiser4_place_t *place, lookup_bias_t bias, lookup_t lookup, void *data); extern reiser4_node_t *reiser4_tree_lookup_node(reiser4_tree_t *tree, blk_t blk); extern reiser4_node_t *reiser4_tree_load_node(reiser4_tree_t *tree, reiser4_node_t *parent, blk_t blk); extern lookup_t reiser4_tree_lookup(reiser4_tree_t *tree, lookup_hint_t *hint, lookup_bias_t bias, reiser4_place_t *place); extern errno_t reiser4_tree_scan(reiser4_tree_t *tree, node_func_t pre_func, place_func_t func, void *data); #endif reiser4progs-1.0.7.orig/include/reiser4/plugin.h0000644000175000017500000015363311131470543017407 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. plugin.h -- reiser4 plugin known types and macros. */ #ifndef REISER4_PLUGIN_H #define REISER4_PLUGIN_H #include /* Leaf and twig levels. */ #define LEAF_LEVEL 1 #define TWIG_LEVEL (LEAF_LEVEL + 1) /* Master related stuff like magic and offset in bytes. These are used by both plugins and library itself. */ #define REISER4_MASTER_MAGIC ("ReIsEr4") #define REISER4_MASTER_OFFSET (65536) #define REISER4_MASTER_BLOCKNR(blksize) (REISER4_MASTER_OFFSET/blksize) /* The same for fs stat block. */ #define REISER4_STATUS_BLOCKNR(blksize) (REISER4_MASTER_BLOCKNR(blksize) + 5) #define REISER4_STATUS_MAGIC ("ReiSeR4StATusBl") /* Where the backup starts. */ #define REISER4_BACKUP_START(blksize) (REISER4_MASTER_BLOCKNR(blksize) + 6) /* Root key locality and objectid. This is actually defined in oid plugin, but hardcoded here to exclude oid plugin from the minimal mode at all, nothing but these oids is needed there. */ #define REISER4_ROOT_LOCALITY (0x29) #define REISER4_ROOT_OBJECTID (0x2a) /* Macros for hole and unallocated extents. Used by both plugins (extent40) and library itself. */ #define EXTENT_HOLE_UNIT (0) #define EXTENT_UNALLOC_UNIT (1) /* Defining the types for disk structures. All types like f32_t are fake ones and needed to avoid gcc-2.95.x bug with size of typedefined aligned types. */ typedef uint8_t f8_t; typedef f8_t d8_t __attribute__((aligned(1))); typedef uint16_t f16_t; typedef f16_t d16_t __attribute__((aligned(2))); typedef uint32_t f32_t; typedef f32_t d32_t __attribute__((aligned(4))); typedef uint64_t f64_t; typedef f64_t d64_t __attribute__((aligned(8))); /* Basic reiser4 types used by both library and plugins. */ typedef uint32_t rid_t; typedef uint64_t oid_t; /* Type for position in node (item and unit component). */ typedef struct pos { uint32_t item; uint32_t unit; } pos_t; #define POS_INIT(p, i, u) \ (p)->item = i, (p)->unit = u /* Lookup return values. */ enum lookup { PRESENT = 1, ABSENT = 0, }; typedef int64_t lookup_t; #define PLUG_MAX_DESC 64 #define PLUG_MAX_LABEL 22 /* Plugin id, type and group. */ typedef struct plug_ident { rid_t id; uint8_t group; uint8_t type; } plug_ident_t; struct reiser4_plug { /* Plugin id. This will be used for looking for a plugin. */ plug_ident_t id; #ifndef ENABLE_MINIMAL /* Plugin label (name). */ const char label[PLUG_MAX_LABEL]; /* Short plugin description. */ const char desc[PLUG_MAX_DESC]; #endif }; /* This should be incremented with each new contributed pair (plugin type, plugin id). NOTE: Make sure there is a reiser4 kernel release with the corresponding version number */ #define PLUGIN_LIBRARY_VERSION 0 /* Known by library plugin types. */ typedef enum reiser4_plug_type { OBJECT_PLUG_TYPE = 0x0, ITEM_PLUG_TYPE = 0x1, NODE_PLUG_TYPE = 0x2, HASH_PLUG_TYPE = 0x3, FIBRE_PLUG_TYPE = 0x4, POLICY_PLUG_TYPE = 0x5, SDEXT_PLUG_TYPE = 0x6, FORMAT_PLUG_TYPE = 0x7, /* These are not plugins in the kernel. */ OID_PLUG_TYPE = 0x8, ALLOC_PLUG_TYPE = 0x9, JOURNAL_PLUG_TYPE = 0xa, KEY_PLUG_TYPE = 0xb, COMPRESS_PLUG_TYPE = 0xc, CMODE_PLUG_TYPE = 0xd, CRYPTO_PLUG_TYPE = 0xf, DIGEST_PLUG_TYPE = 0xe, CLUSTER_PLUG_TYPE = 0x10, /* Not really a plugin, at least in progs, but a value that needs to be checked only. */ PARAM_PLUG_TYPE = 0x12, LAST_PLUG_TYPE } reiser4_plug_type_t; /* Known object plugin ids. */ enum reiser4_object_plug_id { OBJECT_REG40_ID = 0x0, OBJECT_DIR40_ID = 0x1, OBJECT_SYM40_ID = 0x2, OBJECT_SPL40_ID = 0x3, OBJECT_CCREG40_ID = 0x4, OBJECT_LAST_ID }; /* Known object groups. */ enum reiser4_object_group { REG_OBJECT = 0x0, DIR_OBJECT = 0x1, SYM_OBJECT = 0x2, SPL_OBJECT = 0x3, LAST_OBJECT }; /* Known item plugin ids. */ enum reiser4_item_plug_id { ITEM_STAT40_ID = 0x0, ITEM_SDE40_ID = 0x1, ITEM_CDE40_ID = 0x2, ITEM_NODEPTR40_ID = 0x3, ITEM_ACL40_ID = 0x4, ITEM_EXTENT40_ID = 0x5, ITEM_PLAIN40_ID = 0x6, ITEM_CTAIL40_ID = 0x7, ITEM_BLACKBOX40_ID = 0x8, ITEM_LAST_ID }; /* Known item groups. */ enum reiser4_item_group { STAT_ITEM = 0x0, PTR_ITEM = 0x1, DIR_ITEM = 0x2, TAIL_ITEM = 0x3, EXTENT_ITEM = 0x4, SAFE_LINK_ITEM = 0x5, CTAIL_ITEM = 0x6, BLACK_BOX_ITEM = 0x7, LAST_ITEM }; extern const char *reiser4_igname[]; extern const char *reiser4_slink_name[]; /* Known node plugin ids. */ enum reiser4_node_plug_id { NODE_REISER40_ID = 0x0, NODE_LAST_ID }; /* Known hash plugin ids. */ enum reiser4_hash_plug_id { HASH_RUPASOV_ID = 0x0, HASH_R5_ID = 0x1, HASH_TEA_ID = 0x2, HASH_FNV1_ID = 0x3, HASH_DEG_ID = 0x4, HASH_LAST_ID }; /* Know tail policy plugin ids. */ enum reiser4_tail_plug_id { TAIL_NEVER_ID = 0x0, TAIL_ALWAYS_ID = 0x1, TAIL_SMART_ID = 0x2, TAIL_LAST_ID }; /* Known stat data extension plugin ids. */ enum reiser4_sdext_plug_id { SDEXT_LW_ID = 0x0, SDEXT_UNIX_ID = 0x1, SDEXT_LT_ID = 0x2, SDEXT_SYMLINK_ID = 0x3, SDEXT_PSET_ID = 0x4, SDEXT_FLAGS_ID = 0x5, SDEXT_CAPS_ID = 0x6, SDEXT_CRYPTO_ID = 0x7, SDEXT_HSET_ID = 0x8, SDEXT_LAST_ID }; /* Known format plugin ids. */ enum reiser4_format_plug_id { FORMAT_REISER40_ID = 0x0, FORMAT_LAST_ID }; /* Known oid allocator plugin ids. */ enum reiser4_oid_plug_id { OID_REISER40_ID = 0x0, OID_LAST_ID }; /* Known block allocator plugin ids. */ enum reiser4_alloc_plug_id { ALLOC_REISER40_ID = 0x0, ALLOC_LAST_ID }; /* Known journal plugin ids. */ enum reiser4_journal_plug_id { JOURNAL_REISER40_ID = 0x0, JOURNAL_LAST_ID }; /* Known key plugin ids. All these plugins are virtual in the sense they not exist in kernel and needed in reiser4progs because we need them working with both keys policy (large and short) without recompiling. */ enum reiser4_key_plug_id { KEY_SHORT_ID = 0x0, KEY_LARGE_ID = 0x1, KEY_LAST_ID }; typedef struct reiser4_plug reiser4_plug_t; enum reiser4_fibre_plug_id { FIBRE_LEXIC_ID = 0x0, FIBRE_DOT_O_ID = 0x1, FIBRE_EXT_1_ID = 0x2, FIBRE_EXT_3_ID = 0x3, FIBRE_LAST_ID }; /* Known permission plugin ids. */ enum reiser4_perm_plug_id { PERM_RWX_ID = 0x0, PERM_LAST_ID }; enum reiser4_compress_plug_id { COMPRESS_LZO1_ID = 0x0, COMPRESS_GZIP1_ID = 0x1, COMPRESS_LAST_ID }; #define reiser4_compressed(id) (((id) / 2 * 2 == (id))) enum reiser4_crypto_id { CRYPTO_NONE_ID = 0x0, CRYPTO_LAST_ID }; enum reiser4_compress_mode_id { CMODE_NONE_ID = 0x0, CMODE_LATTD_ID = 0x1, CMODE_ULTIM_ID = 0x2, CMODE_FORCE_ID = 0x3, CMODE_CONVX_ID = 0x4, CMODE_LAST_ID }; enum reiser4_cluster_id { CLUSTER_64K_ID = 0x0, CLUSTER_32K_ID = 0x1, CLUSTER_16K_ID = 0x2, CLUSTER_8K_ID = 0x3, CLUSTER_4K_ID = 0x4, CLUSTER_LAST_ID }; enum reiser4_digest_id { DIGEST_NONE_ID = 0x0, DIGEST_LAST_ID }; #define INVAL_PTR ((void *)-1) #define INVAL_PID ((rid_t)~0) typedef struct reiser4_key reiser4_key_t; /* Known key types. */ typedef enum key_type { KEY_FILENAME_TYPE = 0x0, KEY_STATDATA_TYPE = 0x1, KEY_ATTRNAME_TYPE = 0x2, KEY_ATTRBODY_TYPE = 0x3, KEY_FILEBODY_TYPE = 0x4, KEY_LAST_TYPE } key_type_t; /* Tree Plugin SET index. */ enum reiser4_tset_id { TSET_REGFILE = 0x0, TSET_DIRFILE = 0x1, TSET_SYMFILE = 0x2, TSET_SPLFILE = 0x3, TSET_KEY = 0x4, #ifndef ENABLE_MINIMAL TSET_NODE = 0x5, TSET_NODEPTR = 0x6, #endif TSET_LAST }; /* Object Plugin SET index. */ enum reiser4_pset_id { PSET_OBJ = 0x0, PSET_DIR = 0x1, PSET_PERM = 0x2, PSET_POLICY = 0x3, PSET_HASH = 0x4, PSET_FIBRE = 0x5, PSET_STAT = 0x6, PSET_DIRITEM = 0x7, PSET_CRYPTO = 0x8, PSET_DIGEST = 0x9, PSET_COMPRESS = 0xa, PSET_CMODE = 0xb, PSET_CLUSTER = 0xc, PSET_CREATE = 0xd, PSET_STORE_LAST, /* These are not stored on disk in the current implementation. */ #ifndef ENABLE_MINIMAL PSET_TAIL = PSET_STORE_LAST, PSET_EXTENT = PSET_STORE_LAST + 1, PSET_CTAIL = PSET_STORE_LAST + 2, #endif PSET_LAST }; #define reiser4_psobj(obj) \ ((reiser4_object_plug_t *)(obj)->info.pset.plug[PSET_OBJ]) #define reiser4_pspolicy(obj) \ ((reiser4_policy_plug_t *)(obj)->info.pset.plug[PSET_POLICY]) #define reiser4_pshash(obj) \ ((reiser4_hash_plug_t *)(obj)->info.pset.plug[PSET_HASH]) #define reiser4_psfibre(obj) \ ((reiser4_fibre_plug_t *)(obj)->info.pset.plug[PSET_FIBRE]) #define reiser4_psstat(obj) \ ((reiser4_item_plug_t *)(obj)->info.pset.plug[PSET_STAT]) #define reiser4_psdiren(obj) \ ((reiser4_item_plug_t *)(obj)->info.pset.plug[PSET_DIRITEM]) #define reiser4_pscrypto(obj) \ ((rid_t)(obj)->info.pset.plug[PSET_CRYPTO]) #define reiser4_pscompress(obj) \ ((reiser4_plug_t *)(obj)->info.pset.plug[PSET_COMPRESS]) #define reiser4_pscmode(obj) \ ((reiser4_plug_t *)(obj)->info.pset.plug[PSET_CMODE]) #define reiser4_pscluster(obj) \ ((reiser4_cluster_plug_t *)(obj)->info.pset.plug[PSET_CLUSTER]) #define reiser4_pstail(obj) \ ((reiser4_item_plug_t *)(obj)->info.pset.plug[PSET_TAIL]) #define reiser4_psextent(obj) \ ((reiser4_item_plug_t *)(obj)->info.pset.plug[PSET_EXTENT]) #define reiser4_psctail(obj) \ ((reiser4_item_plug_t *)(obj)->info.pset.plug[PSET_CTAIL]) /* Known print options for key. */ enum print_options { PO_DEFAULT = 0x0, PO_INODE = 0x1, PO_UNIT_OFFSETS = 0x2 }; #ifndef ENABLE_MINIMAL enum reiser4_plugin_flag { PF_CRC = 0x0, PF_LAST }; #endif typedef struct tree_entity { /* Plugin SET. Set of plugins needed for the reiser4progs work. Consists of tree-specific plugins and object-specific plugins. */ reiser4_plug_t *tset[TSET_LAST]; reiser4_plug_t *pset[PSET_LAST]; uint64_t param_mask; } tree_entity_t; typedef struct reiser4_node reiser4_node_t; typedef struct reiser4_place reiser4_place_t; typedef struct reiser4_key_plug reiser4_key_plug_t; typedef struct reiser4_item_plug reiser4_item_plug_t; typedef struct reiser4_node_plug reiser4_node_plug_t; typedef struct reiser4_hash_plug reiser4_hash_plug_t; typedef struct reiser4_fibre_plug reiser4_fibre_plug_t; typedef struct reiser4_sdext_plug reiser4_sdext_plug_t; typedef struct reiser4_format_plug reiser4_format_plug_t; typedef struct reiser4_oid_plug reiser4_oid_plug_t; typedef struct reiser4_alloc_plug reiser4_alloc_plug_t; typedef struct reiser4_journal_plug reiser4_journal_plug_t; /* Opaque types describing reiser4 objects, like format, block allocator, etc created by plugins themselves, within the library. */ #define DEFINE_ENT(TYPE) \ typedef struct reiser4_ ## TYPE ## _ent { \ reiser4_ ## TYPE ## _plug_t *plug; \ } reiser4_ ## TYPE ## _ent_t; DEFINE_ENT(format); DEFINE_ENT(journal); DEFINE_ENT(oid); DEFINE_ENT(alloc); #define place_blknr(place) ((place)->node->block->nr) #define place_item_pos(place) ((place)->pos.item) #define place_blksize(place) ((place)->node->block->size) /* Type for key which is used both by library and plugins. */ struct reiser4_key { reiser4_key_plug_t *plug; d64_t body[4]; #ifndef ENABLE_MINIMAL uint32_t adjust; #endif }; /* Tree coord struct. */ struct reiser4_place { /* Item/unit pos and node it lies in. These fields should be always initialized in a @place instance. */ pos_t pos; reiser4_node_t *node; /* Item header stuff. There are item body pointer, length, flags, key and plugin used in item at @pos. These fields are initialized in node method fetch() and stored here to make work with them simpler. */ void *body; uint32_t len; /* First unit offset within the item. Used by item internal code only. Useful to minimize the code (e.g. tail, ctail). */ uint32_t off; reiser4_key_t key; reiser4_item_plug_t *plug; }; enum node_flags { NF_HEARD_BANSHEE = 1 << 0, NF_LAST }; /* Reiser4 in-memory node structure. */ struct reiser4_node { /* Node plugin. */ reiser4_node_plug_t *plug; /* Block node lies in. */ aal_block_t *block; /* Reference to tree if node is attached to tree. Sometimes node needs access tree and tree functions. */ tree_entity_t *tree; /* Place in parent node. */ reiser4_place_t p; /* Reference to left neighbour. It is used for establishing silbing links among nodes in memory tree cache. */ reiser4_node_t *left; /* Reference to right neighbour. It is used for establishing silbing links among nodes in memory tree cache. */ reiser4_node_t *right; /* Usage counter to prevent releasing used nodes. */ signed int counter; /* Key plugin. */ reiser4_key_plug_t *kplug; /* Key policy. Optimisation to not call key->bodysize all the time. */ uint8_t keypol; /* Node state flags. */ uint32_t state; #ifndef ENABLE_MINIMAL /* Different node flags. */ uint32_t flags; /* Applications using this library sometimes need to embed information into the objects of our library for their own use. */ void *data; #endif }; /* This is an info that sdext plugins need. E.g. digest is needed to sdext_crc plugin to proceed. */ typedef struct stat_info { uint16_t mode; #ifndef ENABLE_MINIMAL reiser4_plug_t *digest; #endif } stat_info_t; /* Stat data extension entity. */ typedef struct stat_entity { reiser4_sdext_plug_t *plug; reiser4_place_t *place; uint32_t offset; stat_info_t info; } stat_entity_t; #define stat_body(stat) ((char *)(stat)->place->body + (stat)->offset) /* Shift flags control shift process */ enum shift_flags { /* Allows to try to make shift from the passed node to left neighbour node. */ SF_ALLOW_LEFT = 1 << 0, /* Allows to try to make shift from the passed node to right neighbour node. */ SF_ALLOW_RIGHT = 1 << 1, /* Allows to move insert point to one of neighbour nodes during shift. */ SF_MOVE_POINT = 1 << 2, /* Care about the insert point, shift only till this point. If not given, as much data as fit the destination node will be shifted. */ SF_UPDATE_POINT = 1 << 3, /* Controls if shift allowed to merge border items or only whole items may be shifted. Needed for repair code in order to disable merge of checked item and not checked one. */ SF_ALLOW_MERGE = 1 << 4, /* Controls if shift allowed to allocate new nodes during making space. This is needed sometimes if there is not enough of free space in existent nodes (one insert point points to and its neighbours)*/ SF_ALLOW_ALLOC = 1 << 5, SF_ALLOW_PACK = 1 << 6, /* Hold (do not leave) the current position (pointed by place->pos). */ SF_HOLD_POS = 1 << 7 }; #define SF_DEFAULT \ (SF_ALLOW_LEFT | SF_ALLOW_RIGHT | SF_ALLOW_ALLOC | \ SF_ALLOW_MERGE | SF_MOVE_POINT | SF_ALLOW_PACK) typedef struct shift_hint { /* Flag which shows that we need create an item before we will move units into it. That is because node does not contain any items at all or border items are not mergeable. Set and used by shift code. */ int create; /* Shows, that one of neighbour nodes has changed its leftmost key and internal tree should be updated. */ int update; /* Item count and unit count which will be moved. */ uint32_t items_number; uint32_t units_number; /* Used for internal shift purposes. */ uint32_t items_bytes; uint32_t units_bytes; /* Shift control flags (left shift, move insert point, merge, etc) and shift result flags. The result flags are needed for determining for example was insert point moved to the corresponding neighbour or not. Of course we might use control flags for that, but it would led us to write a lot of useless stuff for saving control flags before modifying it. */ uint32_t control; uint32_t result; /* Insert point. It will be modified during shift. */ pos_t pos; } shift_hint_t; /* Different hints used for getting data to/from corresponding objects. */ typedef struct ptr_hint { uint64_t start; uint64_t width; } ptr_hint_t; typedef struct ctail_hint { uint8_t shift; } ctail_hint_t; typedef struct sdhint_unix { uint32_t uid; uint32_t gid; uint32_t atime; uint32_t mtime; uint32_t ctime; uint32_t rdev; uint64_t bytes; } sdhint_unix_t; typedef struct sdhint_lw { uint16_t mode; uint32_t nlink; uint64_t size; } sdhint_lw_t; typedef struct sdhint_lt { uint32_t atime; uint32_t mtime; uint32_t ctime; } sdhint_lt_t; typedef struct sdhint_flags { uint32_t flags; } sdhint_flags_t; typedef struct reiser4_pset { /* Set of initialized fields. */ uint64_t plug_mask; reiser4_plug_t *plug[PSET_LAST]; } reiser4_pset_t; typedef reiser4_pset_t sdhint_plug_t; #ifndef ENABLE_MINIMAL typedef struct sdhint_crypto { uint16_t keylen; uint16_t signlen; uint8_t sign[128]; } sdhint_crypto_t; #endif /* These fields should be changed to what proper description of needed extensions. */ typedef struct stat_hint { /* Extensions mask */ uint64_t extmask; /* Stat data extensions */ void *ext[SDEXT_LAST_ID]; } stat_hint_t; typedef enum entry_type { ET_NAME = 0, ET_SPCL = 1, ET_LAST } entry_type_t; /* Object info struct contains the main information about a reiser4 object. These are: its key, parent key and coord of first item. */ typedef struct object_info { reiser4_pset_t pset; reiser4_pset_t hset; tree_entity_t *tree; reiser4_place_t start; reiser4_key_t object; reiser4_key_t parent; } object_info_t; /* Object hint. It is used to bring all about object information to object plugin to create appropriate object by it. */ typedef struct object_hint { /* Additional mode to be masked to stat data mode. This is needed for special files, but mat be used somewhere else. */ uint32_t mode; /* rdev field for special file. Nevertheless, it is stored inside special file stat data field, we put it to @body definition, because it is the special file essence. */ uint64_t rdev; /* SymLink name or CRC key. */ char *str; } object_hint_t; /* Reiser4 file structure (regular file, directory, symlinks, etc) */ typedef struct reiser4_object { /* Info about the object, stat data place, object and parent keys and pointer to the instance of internal libreiser4 tree for modiying purposes. It is passed by reiser4 library during initialization of the file instance. */ object_info_t info; /* Current body item coord stored here */ reiser4_place_t body; /* Current position in the reg file */ reiser4_key_t position; #ifndef ENABLE_MINIMAL /* File body plugin is use. */ reiser4_item_plug_t *body_plug; #endif } reiser4_object_t; /* Bits for entity state field. For now here is only "dirty" bit, but possible and other ones. */ enum entity_state { ENTITY_DIRTY = 0 }; /* Type for region enumerating callback functions. */ typedef errno_t (*region_func_t) (uint64_t, uint64_t, void *); /* Type for on-place functions. */ typedef errno_t (*place_func_t) (reiser4_place_t *, void *); /* Type for on-node functions. */ typedef errno_t (*node_func_t) (reiser4_node_t *, void *); /* Function definitions for enumeration item metadata and data. */ typedef errno_t (*layout_func_t) (void *, region_func_t, void *); #define REISER4_MIN_BLKSIZE (512) #define REISER4_MAX_BLKSIZE (8192) typedef struct entry_hint { /* Entry metadata size. Filled by rem_entry and add_entry. */ uint16_t len; /* Tree coord entry lies at. Filled by dir plugin's lookup. */ reiser4_place_t place; /* Entry key within the current directory */ reiser4_key_t offset; /* The stat data key of the object entry points to */ reiser4_key_t object; /* Entry type (name or special), filled by readdir */ uint8_t type; /* Name of entry */ char name[REISER4_MAX_BLKSIZE]; #ifndef ENABLE_MINIMAL /* Hook called onto each create item during write flow. */ place_func_t place_func; /* Related opaque data. May be used for passing something to region_func() and place_func(). */ void *data; #endif } entry_hint_t; #ifndef ENABLE_MINIMAL typedef enum slink_type { SL_UNLINK, /* safe-link for unlink */ SL_TRUNCATE, /* safe-link for truncate */ SL_E2T, /* safe-link for extent->tail conversion */ SL_T2E, /* safe-link for tail->extent conversion */ SL_LAST } slink_type_t; typedef struct slink_hint { /* Key of StatData the link points to. */ reiser4_key_t key; /* The size to be truncated. */ uint64_t size; slink_type_t type; } slink_hint_t; #endif /* This structure contains fields which describe an item or unit to be inserted into the tree. This is used for all tree modification purposes like insertitem, or write some file data. */ typedef struct trans_hint { /* Overhead of data to be inserted. This is needed for the case when we insert directory item and tree should know how much space should be prepared in the tree (ohd + len), but we don't need overhead for updating stat data bytes field. Set by estimate. */ uint32_t overhead; /* Length of the data to be inserted/removed. Set by prep methods. */ int32_t len; /* Value needed for updating bytes field in stat data. Set by estimate. */ uint64_t bytes; /* This is opaque pointer to item type specific information. */ void *specific; /* Count of items/units to be inserted into the tree. */ uint64_t count; /* The key of item/unit to be inserted. */ reiser4_key_t offset; /* Max real key. Set by estimate and needed for file body items. */ reiser4_key_t maxkey; /* Flags specific for the insert (raw for now), set at prepare stage. */ uint16_t insert_flags; /* Shift flags for shift operation. */ uint32_t shift_flags; /* Count of handled blocks in the first and the last extent unit. */ uint64_t head, tail; /* Hash table unformatted blocks lie in. Needed for extent code. */ aal_hash_table_t *blocks; /* Plugin to be used for working with item. */ reiser4_item_plug_t *plug; /* Hook, which lets know, that passed block region is removed. Used for releasing unformatted blocks during tail converion, or for merging extents, etc. */ region_func_t region_func; /* Hook called onto each create item during write flow. */ place_func_t place_func; /* Related opaque data. May be used for passing something to region_func() and place_func(). */ void *data; } trans_hint_t; /* This structure contains related to tail conversion. */ typedef struct conv_hint { /* New bytes value */ uint64_t bytes; /* Bytes to be converted. */ uint64_t count; /* File will be converted starting from this key. */ reiser4_key_t offset; /* Plugin item will be converted to. */ reiser4_item_plug_t *plug; /* Callback function caled onto each new created item during tail conversion. */ place_func_t place_func; /* The flag if the hole should be inserted if there is nothing to read. Could be useful for recovery when there could be a gap between 2 items. */ bool_t ins_hole; } conv_hint_t; typedef struct coll_hint { uint8_t type; void *specific; } coll_hint_t; /* Lookup bias. */ typedef enum lookup_bias { /* Find for read, the match should be exact. */ FIND_EXACT = 1, /* Find for insert, the match should not be exaact. */ FIND_CONV = 2 } lookup_bias_t; typedef lookup_t (*coll_func_t) (tree_entity_t *, reiser4_place_t *, coll_hint_t *); /* Hint to be used when looking for data in tree. */ typedef struct lookup_hint { /* Key to be found. */ reiser4_key_t *key; /* Tree level lookup should stop on. */ uint8_t level; #ifndef ENABLE_MINIMAL /* Function for modifying position during lookup in some way needed by caller. Key collisions may be handler though this. */ coll_func_t collision; /* Data needed by @lookup_func. */ coll_hint_t *hint; #endif } lookup_hint_t; #ifndef ENABLE_MINIMAL typedef struct repair_hint { int64_t len; uint8_t mode; } repair_hint_t; enum reiser4_backuper { BK_MASTER = 0x0, BK_FORMAT = 0x1, BK_PSET = 0x2, BK_LAST = 0x3 }; typedef struct backup_hint { aal_block_t block; uint16_t off[BK_LAST + 1]; /* Fields below are used by check_backup. */ /* Block count. */ uint64_t blocks; /* Matched block count. */ uint64_t count; uint64_t total; uint32_t version; } backup_hint_t; #endif enum format_hint_mask { PM_POLICY = 0x0, PM_KEY = 0x1 }; typedef struct format_hint { uint64_t blocks; uint32_t blksize; rid_t policy; rid_t key; /* For repair purposes. Set plugin types that are overridden in the profile here, they must be set in the format plugin check_struct. If bit is not set, plugins given with the above hints are merely hints. */ uint64_t mask; } format_hint_t; struct reiser4_key_plug { reiser4_plug_t p; /* Function for dermining is key contains direntry name hashed or not? */ int (*hashed) (reiser4_key_t *); /* Returns minimal key for this key-format */ reiser4_key_t *(*minimal) (void); /* Returns maximal key for this key-format */ reiser4_key_t *(*maximal) (void); /* Returns key size for particular key-format */ uint32_t (*bodysize) (void); /* Compares two keys by comparing its all components. This function accepts not key entities, but key bodies. This is needed in order to avoid memory copying in some cases. For instance when we look into node and try to find position by key, we prefer to pass to comraw() pointers to key bodies, than to copy tjem to new created key entities. */ int (*compraw) (void *, void *); /* Compares two keys by comparing its all components. */ int (*compfull) (reiser4_key_t *, reiser4_key_t *); /* Compares two keys by comparing locality and objectid. */ int (*compshort) (reiser4_key_t *, reiser4_key_t *); /* Builds generic key (statdata, file body, etc). That is build key by all its components. */ errno_t (*build_generic) (reiser4_key_t *, key_type_t, uint64_t, uint64_t, uint64_t, uint64_t); /* Builds key used for directory entries access. It uses name and hash plugin to build hash and put it to key offset component. */ void (*build_hashed) (reiser4_key_t *, reiser4_hash_plug_t *, reiser4_fibre_plug_t *, uint64_t, uint64_t, char *); #ifndef ENABLE_MINIMAL /* Gets/sets key type (minor in reiser4 notation). */ void (*set_type) (reiser4_key_t *, key_type_t); key_type_t (*get_type) (reiser4_key_t *); /* Gets/sets key full objectid */ void (*set_fobjectid) (reiser4_key_t *, uint64_t); uint64_t (*get_fobjectid) (reiser4_key_t *); /* Gets/sets key locality. */ void (*set_locality) (reiser4_key_t *, uint64_t); #endif uint64_t (*get_locality) (reiser4_key_t *); /* Gets/sets key locality. */ void (*set_ordering) (reiser4_key_t *, uint64_t); uint64_t (*get_ordering) (reiser4_key_t *); /* Gets/sets key objectid. */ void (*set_objectid) (reiser4_key_t *, uint64_t); uint64_t (*get_objectid) (reiser4_key_t *); /* Gets/sets key offset */ void (*set_offset) (reiser4_key_t *, uint64_t); uint64_t (*get_offset) (reiser4_key_t *); /* Extracts name from passed key. */ char *(*get_name) (reiser4_key_t *, char *); #ifndef ENABLE_MINIMAL /* Gets/sets directory key hash */ void (*set_hash) (reiser4_key_t *, uint64_t); uint64_t (*get_hash) (reiser4_key_t *); /* Prints key into specified buffer */ void (*print) (reiser4_key_t *, aal_stream_t *, uint16_t); /* Check key body for validness. */ errno_t (*check_struct) (reiser4_key_t *); #endif }; typedef struct reiser4_object_plug { reiser4_plug_t p; /* Loads object stat data to passed hint. */ errno_t (*stat) (reiser4_object_t *, stat_hint_t *); #ifndef ENABLE_MINIMAL /* These methods change @nlink value of passed @entity. */ errno_t (*link) (reiser4_object_t *); errno_t (*unlink) (reiser4_object_t *); bool_t (*linked) (reiser4_object_t *); /* Establish parent child relationship. */ errno_t (*attach) (reiser4_object_t *, reiser4_object_t *); errno_t (*detach) (reiser4_object_t *, reiser4_object_t *); /* Inherits from the parent object. */ errno_t (*inherit) (object_info_t *, object_info_t *); /* Creates new file with passed parent and object keys. */ errno_t (*create) (reiser4_object_t *, object_hint_t *); /* Delete file body and stat data if any. */ errno_t (*clobber) (reiser4_object_t *); /* Writes the data to file from passed buffer. */ int64_t (*write) (reiser4_object_t *, void *, uint64_t); /* Directory specific methods */ errno_t (*add_entry) (reiser4_object_t *, entry_hint_t *); errno_t (*rem_entry) (reiser4_object_t *, entry_hint_t *); errno_t (*build_entry) (reiser4_object_t *, entry_hint_t *); /* Truncates file at current offset onto passed units. */ errno_t (*truncate) (reiser4_object_t *, uint64_t); /* Function for going through all metadata blocks specfied file occupied. It is needed for accessing file's metadata. */ errno_t (*metadata) (reiser4_object_t *, place_func_t, void *); /* Function for going through the all data blocks specfied file occupies. It is needed for the purposes like data fragmentation measuring, etc. */ errno_t (*layout) (reiser4_object_t *, region_func_t, void *); /* Converts file body to item denoted by @plug. */ errno_t (*convert) (reiser4_object_t *, reiser4_item_plug_t *plug); /* Checks and recover the structure of the object. */ errno_t (*check_struct) (reiser4_object_t *, place_func_t, void *, uint8_t); /* Checks attach of the @object to the @parent. */ errno_t (*check_attach) (reiser4_object_t *, reiser4_object_t *, place_func_t, void *, uint8_t); /* Realizes if the object can be of this plugin and can be recovered as a such. */ errno_t (*recognize) (reiser4_object_t *); /* Creates the fake object by the gived @info. Needed to recover "/" and "lost+found" direcories if their SD are broken. */ errno_t (*fake) (reiser4_object_t *); #endif /* Change current position to passed value. */ errno_t (*seek) (reiser4_object_t *, uint64_t); /* Opens file with specified key */ errno_t (*open) (reiser4_object_t *); /* Closes previously opened or created directory. */ void (*close) (reiser4_object_t *); /* Resets internal position. */ errno_t (*reset) (reiser4_object_t *); /* Returns current position in directory. */ uint64_t (*offset) (reiser4_object_t *); /* Makes lookup inside file */ lookup_t (*lookup) (reiser4_object_t *, char *, entry_hint_t *); /* Finds actual file stat data (used in symlinks). */ errno_t (*follow) (reiser4_object_t *, reiser4_key_t *, reiser4_key_t *); /* Reads the data from file to passed buffer. */ int64_t (*read) (reiser4_object_t *, void *, uint64_t); /* Directory read method. */ int32_t (*readdir) (reiser4_object_t *, entry_hint_t *); /* Return current position in directory. */ errno_t (*telldir) (reiser4_object_t *, reiser4_key_t *); /* Change current position in directory. */ errno_t (*seekdir) (reiser4_object_t *, reiser4_key_t *); #ifndef ENABLE_MINIMAL uint64_t sdext_mandatory; uint64_t sdext_unknown; #endif } reiser4_object_plug_t; typedef struct item_balance_ops { /* Returns unit count in item passed place point to. */ uint32_t (*units) (reiser4_place_t *); /* Makes lookup for passed key. */ lookup_t (*lookup) (reiser4_place_t *, lookup_hint_t *, lookup_bias_t); #ifndef ENABLE_MINIMAL /* Merges two neighbour items in the same node. Returns space released Needed for fsck. */ int32_t (*merge) (reiser4_place_t *, reiser4_place_t *); /* Checks if items mergeable, that is if unit of one item can belong to another one. Returns 1 if so, 0 otherwise. */ int (*mergeable) (reiser4_place_t *, reiser4_place_t *); /* Estimates shift operation. */ errno_t (*prep_shift) (reiser4_place_t *, reiser4_place_t *, shift_hint_t *); /* Performs shift of units from passed @src item to @dst item. */ errno_t (*shift_units) (reiser4_place_t *, reiser4_place_t *, shift_hint_t *); /* Set the key of a particular unit of the item. */ errno_t (*update_key) (reiser4_place_t *, reiser4_key_t *); /* Get the max real key which is stored in the item. */ errno_t (*maxreal_key) (reiser4_place_t *, reiser4_key_t *); /* Collision handler item method. */ lookup_t (*collision) (reiser4_place_t *, coll_hint_t *); #endif /* Get the key of a particular unit of the item. */ errno_t (*fetch_key) (reiser4_place_t *, reiser4_key_t *); /* Get the max key which could be stored in the item of this type. */ errno_t (*maxposs_key) (reiser4_place_t *, reiser4_key_t *); /* Gets the overhead for the item creation. */ uint16_t (*overhead) (); /* Initialize the item-specific place info. */ void (*init) (reiser4_place_t *); } item_balance_ops_t; typedef struct item_object_ops { /* Reads passed amount of bytes from the item. */ int64_t (*read_units) (reiser4_place_t *, trans_hint_t *); /* Fetches one or more units at passed @place to passed hint. */ int64_t (*fetch_units) (reiser4_place_t *, trans_hint_t *); #ifndef ENABLE_MINIMAL /* Estimates write operation. */ errno_t (*prep_write) (reiser4_place_t *, trans_hint_t *); /* Writes data to item. */ int64_t (*write_units) (reiser4_place_t *, trans_hint_t *); /* Estimates insert operation. */ errno_t (*prep_insert) (reiser4_place_t *, trans_hint_t *); /* Inserts some amount of units described by passed hint into passed item denoted by place. */ int64_t (*insert_units) (reiser4_place_t *, trans_hint_t *); /* Removes specified unit from the item. */ errno_t (*remove_units) (reiser4_place_t *, trans_hint_t *); /* Updates unit at passed place by data from passed hint. */ int64_t (*update_units) (reiser4_place_t *, trans_hint_t *); /* Cuts out some amount of data */ int64_t (*trunc_units) (reiser4_place_t *, trans_hint_t *); /* Goes through all blocks item points to. */ errno_t (*layout) (reiser4_place_t *, region_func_t, void *); /* Gets the size of the data item keeps. */ uint64_t (*size) (reiser4_place_t *); /* Gets the amount of bytes data item keeps takes on the disk. */ uint64_t (*bytes) (reiser4_place_t *); #endif } item_object_ops_t; #ifndef ENABLE_MINIMAL typedef struct item_repair_ops { /* Estimate merge operation. */ errno_t (*prep_insert_raw) (reiser4_place_t *, trans_hint_t *); /* Copies some amount of units from @src to @dst with partial overwritting. */ errno_t (*insert_raw) (reiser4_place_t *, trans_hint_t *); /* Checks the item structure. */ errno_t (*check_struct) (reiser4_place_t *, repair_hint_t *); /* Does some specific actions if a block the item points to is wrong. */ errno_t (*check_layout) (reiser4_place_t *, repair_hint_t *, region_func_t, void *); errno_t (*pack) (reiser4_place_t *, aal_stream_t *); errno_t (*unpack) (reiser4_place_t *, aal_stream_t *); } item_repair_ops_t; typedef struct item_debug_ops { /* Prints item into specified buffer. */ void (*print) (reiser4_place_t *, aal_stream_t *, uint16_t); } item_debug_ops_t; #endif struct reiser4_item_plug { reiser4_plug_t p; item_object_ops_t *object; item_balance_ops_t *balance; #ifndef ENABLE_MINIMAL item_debug_ops_t *debug; item_repair_ops_t *repair; #endif }; /* Stat data extension plugin */ struct reiser4_sdext_plug { reiser4_plug_t p; #ifndef ENABLE_MINIMAL /* Initialize stat data extension data at passed pointer. */ errno_t (*init) (stat_entity_t *, void *); /* Prints stat data extension data into passed buffer. */ void (*print) (stat_entity_t *, aal_stream_t *, uint16_t); /* Checks sd extension content. */ errno_t (*check_struct) (stat_entity_t *, repair_hint_t *); #endif /* Obtain the needed info for the futher stat data traverse. */ void (*info) (stat_entity_t *); /* Reads stat data extension data. */ errno_t (*open) (stat_entity_t *, void *); /* Returns length of the extension. */ uint32_t (*length) (stat_entity_t *, void *); }; /* Node plugin operates on passed block. It doesn't any initialization, so it hasn't close method and all its methods accepts first argument aal_block_t, not initialized previously hypothetic instance of node. */ struct reiser4_node_plug { reiser4_plug_t p; #ifndef ENABLE_MINIMAL /* Get node state flags and set them back. */ uint32_t (*get_state) (reiser4_node_t *); void (*set_state) (reiser4_node_t *, uint32_t); /* Performs shift of items and units. */ errno_t (*shift) (reiser4_node_t *, reiser4_node_t *, shift_hint_t *); /* Fuses two neighbour items in passed node at passed positions. */ errno_t (*merge) (reiser4_node_t *, pos_t *, pos_t *); /* Checks thoroughly the node structure and fixes what needed. */ errno_t (*check_struct) (reiser4_node_t *, uint8_t); /* Packing/unpacking metadata. */ reiser4_node_t *(*unpack) (aal_block_t *, reiser4_key_plug_t *, aal_stream_t *); errno_t (*pack) (reiser4_node_t *, aal_stream_t *); /* Prints node into given buffer. */ void (*print) (reiser4_node_t *, aal_stream_t *, uint32_t, uint32_t, uint16_t); /* Returns node overhead. */ uint16_t (*overhead) (reiser4_node_t *); /* Returns node max possible space. */ uint16_t (*maxspace) (reiser4_node_t *); /* Returns free space in the node. */ uint16_t (*space) (reiser4_node_t *); /* Inserts item at specified pos. */ errno_t (*insert) (reiser4_node_t *, pos_t *, trans_hint_t *); /* Writes data to the node. */ int64_t (*write) (reiser4_node_t *, pos_t *, trans_hint_t *); /* Truncate item at passed pos. */ int64_t (*trunc) (reiser4_node_t *, pos_t *, trans_hint_t *); /* Removes item/unit at specified pos. */ errno_t (*remove) (reiser4_node_t *, pos_t *, trans_hint_t *); /* Shrinks node without calling any item methods. */ errno_t (*shrink) (reiser4_node_t *, pos_t *, uint32_t, uint32_t); /* Merge 2 items -- insert/overwrite @src_entity parts to @dst_entity. */ errno_t (*insert_raw) (reiser4_node_t *, pos_t *, trans_hint_t *); /* Copies items from @src_entity to @dst_entity. */ errno_t (*copy) (reiser4_node_t *, pos_t *, reiser4_node_t *, pos_t *, uint32_t); /* Expands node (makes space) at passed pos. */ errno_t (*expand) (reiser4_node_t *, pos_t *, uint32_t, uint32_t); /* Updates key at passed pos by passed key. */ errno_t (*set_key) (reiser4_node_t *, pos_t *, reiser4_key_t *); void (*set_level) (reiser4_node_t *, uint8_t); void (*set_mstamp) (reiser4_node_t *, uint32_t); void (*set_fstamp) (reiser4_node_t *, uint64_t); /* Get mkfs and flush stamps */ uint32_t (*get_mstamp) (reiser4_node_t *); uint64_t (*get_fstamp) (reiser4_node_t *); /* Get/set item flags. */ void (*set_flags) (reiser4_node_t *, uint32_t, uint16_t); uint16_t (*get_flags) (reiser4_node_t *, uint32_t); /* Saves node to device */ errno_t (*sync) (reiser4_node_t *); /* Initializes node with passed block and key plugin. */ reiser4_node_t *(*init) (aal_block_t *, uint8_t , reiser4_key_plug_t *); #endif /* Open the node on the given block with the given key plugin. */ reiser4_node_t *(*open) (aal_block_t *, reiser4_key_plug_t *); /* Destroys the node entity. */ errno_t (*fini) (reiser4_node_t *); /* Fetches item data to passed @place */ errno_t (*fetch) (reiser4_node_t *, pos_t *, reiser4_place_t *); /* Returns item count */ uint32_t (*items) (reiser4_node_t *); /* Makes lookup inside node by specified key */ lookup_t (*lookup) (reiser4_node_t *, lookup_hint_t *, lookup_bias_t, pos_t *); /* Gets/sets key at pos */ errno_t (*get_key) (reiser4_node_t *, pos_t *, reiser4_key_t *); /* Return node level. */ uint8_t (*get_level) (reiser4_node_t *); }; /* Hash plugin operations. */ struct reiser4_hash_plug { reiser4_plug_t p; uint64_t (*build) (unsigned char *, uint32_t); }; struct reiser4_fibre_plug { reiser4_plug_t p; uint8_t (*build) (char *, uint32_t); }; /* Disk-format plugin */ struct reiser4_format_plug { reiser4_plug_t p; #ifndef ENABLE_MINIMAL /* Called during filesystem creating. It forms format-specific super block, initializes plugins and calls their create method. */ reiser4_format_ent_t *(*create) (aal_device_t *, format_hint_t *); /* Save the important permanent info about the format into the stream to be backuped on the fs & check this info. */ errno_t (*backup) (reiser4_format_ent_t *, backup_hint_t *); errno_t (*check_backup) (backup_hint_t *); /* Regenerate the format instance by the backup. */ reiser4_format_ent_t *(*regenerate) (aal_device_t *, backup_hint_t *); /* Save format data to device. */ errno_t (*sync) (reiser4_format_ent_t *); /* Change entity state (dirty, etc) */ uint32_t (*get_state) (reiser4_format_ent_t *); void (*set_state) (reiser4_format_ent_t *, uint32_t); /* Format pack/unpack methods. */ reiser4_format_ent_t *(*unpack) (aal_device_t *, uint32_t, aal_stream_t *); errno_t (*pack) (reiser4_format_ent_t *, aal_stream_t *); /* Update only fields which can be changed after journal replay in memory to avoid second checking. */ errno_t (*update) (reiser4_format_ent_t *); /* Prints all useful information about the format */ void (*print) (reiser4_format_ent_t *, aal_stream_t *, uint16_t); void (*set_len) (reiser4_format_ent_t *, uint64_t); void (*set_root) (reiser4_format_ent_t *, uint64_t); void (*set_free) (reiser4_format_ent_t *, uint64_t); void (*set_stamp) (reiser4_format_ent_t *, uint32_t); void (*set_policy) (reiser4_format_ent_t *, rid_t); void (*set_height) (reiser4_format_ent_t *, uint16_t); /* Return plugin ids for journal, block allocator, and oid allocator components. */ rid_t (*journal_pid) (reiser4_format_ent_t *); rid_t (*alloc_pid) (reiser4_format_ent_t *); rid_t (*oid_pid) (reiser4_format_ent_t *); /* Format enumerator function. */ errno_t (*layout) (reiser4_format_ent_t *, region_func_t, void *); /* Basic consistency checks */ errno_t (*valid) (reiser4_format_ent_t *); /* Check format-specific super block for validness. */ errno_t (*check_struct) (reiser4_format_ent_t *, backup_hint_t *, format_hint_t *, uint8_t); /* get the format version. */ uint32_t (*version) (reiser4_format_ent_t *); #endif /* Returns the key plugin id. */ rid_t (*key_pid) (reiser4_format_ent_t *); /* Called during filesystem opening (mounting). It reads format-specific super block and initializes plugins suitable for this format. */ reiser4_format_ent_t *(*open) (aal_device_t *, uint32_t); /* Closes opened or created previously filesystem. Frees all assosiated memory. */ void (*close) (reiser4_format_ent_t *); /* Get tree root block number from format. */ uint64_t (*get_root) (reiser4_format_ent_t *); /* Get tree height from format. */ uint16_t (*get_height) (reiser4_format_ent_t *); #ifndef ENABLE_MINIMAL /* Gets start of the filesystem. */ uint64_t (*start) (reiser4_format_ent_t *); /* Format length in blocks. */ uint64_t (*get_len) (reiser4_format_ent_t *); /* Number of free blocks. */ uint64_t (*get_free) (reiser4_format_ent_t *); /* Return mkfs stamp. */ uint32_t (*get_stamp) (reiser4_format_ent_t *); /* Return policy (tail, extents, etc). */ rid_t (*get_policy) (reiser4_format_ent_t *); /* Returns area where oid data lies in */ void (*oid_area) (reiser4_format_ent_t *, void **, uint32_t *); #endif }; #ifndef ENABLE_MINIMAL struct reiser4_oid_plug { reiser4_plug_t p; /* Opens oid allocator on passed format entity. */ reiser4_oid_ent_t *(*open) (reiser4_format_ent_t *); /* Closes passed instance of oid allocator */ void (*close) (reiser4_oid_ent_t *); /* Creates oid allocator on passed format entity. */ reiser4_oid_ent_t *(*create) (reiser4_format_ent_t *); /* Synchronizes oid allocator */ errno_t (*sync) (reiser4_oid_ent_t *); errno_t (*layout) (reiser4_oid_ent_t *, region_func_t, void *); /* Entity state functions. */ uint32_t (*get_state) (reiser4_oid_ent_t *); void (*set_state) (reiser4_oid_ent_t *, uint32_t); /* Sets/gets next object id */ oid_t (*get_next) (reiser4_oid_ent_t *); void (*set_next) (reiser4_oid_ent_t *, oid_t); /* Gets next object id */ oid_t (*allocate) (reiser4_oid_ent_t *); /* Releases passed object id */ void (*release) (reiser4_oid_ent_t *, oid_t); /* Gets/sets the number of used object ids */ uint64_t (*get_used) (reiser4_oid_ent_t *); void (*set_used) (reiser4_oid_ent_t *, uint64_t); /* Returns the number of free object ids */ uint64_t (*free) (reiser4_oid_ent_t *); /* Prints oid allocator data */ void (*print) (reiser4_oid_ent_t *, aal_stream_t *, uint16_t); /* Makes check for validness */ errno_t (*valid) (reiser4_oid_ent_t *); /* Root locality and objectid and lost+found objectid. */ oid_t (*root_locality) (); oid_t (*root_objectid) (); oid_t (*lost_objectid) (); oid_t (*slink_locality) (); }; struct reiser4_alloc_plug { reiser4_plug_t p; /* Functions for create and open block allocator. */ reiser4_alloc_ent_t *(*open) (aal_device_t *, uint32_t, uint64_t); reiser4_alloc_ent_t *(*create) (aal_device_t *, uint32_t, uint64_t); /* Closes block allocator. */ void (*close) (reiser4_alloc_ent_t *); /* Saves block allocator data to desired device. */ errno_t (*sync) (reiser4_alloc_ent_t *); /* Make dirty and clean functions. */ uint32_t (*get_state) (reiser4_alloc_ent_t *); void (*set_state) (reiser4_alloc_ent_t *, uint32_t); /* Format pack/unpack methods. */ errno_t (*pack) (reiser4_alloc_ent_t *, aal_stream_t *); reiser4_alloc_ent_t *(*unpack) (aal_device_t *, uint32_t, aal_stream_t *); /* Assign the bitmap to the block allocator */ errno_t (*assign) (reiser4_alloc_ent_t *, void *); /* Extract block allocator data into passed bitmap */ errno_t (*extract) (reiser4_alloc_ent_t *, void *); /* Returns number of used blocks */ uint64_t (*used) (reiser4_alloc_ent_t *); /* Returns number of unused blocks */ uint64_t (*free) (reiser4_alloc_ent_t *); /* Checks blocks allocator on validness */ errno_t (*valid) (reiser4_alloc_ent_t *); /* Checks blocks allocator on validness */ errno_t (*check_struct) (reiser4_alloc_ent_t *, uint8_t mode); /* Prints block allocator data */ void (*print) (reiser4_alloc_ent_t *, aal_stream_t *, uint16_t); /* Calls func for each block in block allocator */ errno_t (*layout) (reiser4_alloc_ent_t *, region_func_t, void *); /* Checks if passed range of blocks used */ int (*occupied) (reiser4_alloc_ent_t *, uint64_t, uint64_t); /* Checks if passed range of blocks unused */ int (*available) (reiser4_alloc_ent_t *, uint64_t, uint64_t); /* Marks passed block as used */ errno_t (*occupy) (reiser4_alloc_ent_t *, uint64_t, uint64_t); /* Tries to allocate passed amount of blocks */ uint64_t (*allocate) (reiser4_alloc_ent_t *, uint64_t *, uint64_t); /* Deallocates passed blocks */ errno_t (*release) (reiser4_alloc_ent_t *, uint64_t, uint64_t); /* Calls func for all not reliable regions. */ errno_t (*layout_bad) (reiser4_alloc_ent_t *, region_func_t, void *); /* Calls func for the region the blk lies in. */ errno_t (*region) (reiser4_alloc_ent_t *, blk_t, region_func_t, void *); }; struct reiser4_journal_plug { reiser4_plug_t p; /* Opens journal on specified device. */ reiser4_journal_ent_t *(*open) (aal_device_t *, uint32_t, reiser4_format_ent_t *, reiser4_oid_ent_t *, uint64_t, uint64_t); /* Creates journal on specified device. */ reiser4_journal_ent_t *(*create) (aal_device_t *, uint32_t, reiser4_format_ent_t *, reiser4_oid_ent_t *, uint64_t, uint64_t); /* Returns the device journal lies on */ aal_device_t *(*device) (reiser4_journal_ent_t *); /* Frees journal instance */ void (*close) (reiser4_journal_ent_t *); /* Checks journal metadata on validness */ errno_t (*valid) (reiser4_journal_ent_t *); /* Synchronizes journal */ errno_t (*sync) (reiser4_journal_ent_t *); /* Functions for set/get object state (dirty, clean, etc). */ uint32_t (*get_state) (reiser4_journal_ent_t *); void (*set_state) (reiser4_journal_ent_t *, uint32_t); /* Replays the journal */ errno_t (*replay) (reiser4_journal_ent_t *); /* Prints journal content */ void (*print) (reiser4_journal_ent_t *, aal_stream_t *, uint16_t); /* Checks thoroughly the journal structure. */ errno_t (*check_struct) (reiser4_journal_ent_t *, layout_func_t, void *); /* Invalidates the journal. */ void (*invalidate) (reiser4_journal_ent_t *); /* Calls func for each block in block allocator. */ errno_t (*layout) (reiser4_journal_ent_t *, region_func_t, void *); /* Pack/unpack the journal blocks. */ errno_t (*pack) (reiser4_journal_ent_t *, aal_stream_t *); reiser4_journal_ent_t *(*unpack) (aal_device_t *, uint32_t, reiser4_format_ent_t *, reiser4_oid_ent_t *, uint64_t, uint64_t, aal_stream_t *); }; /* Tail policy plugin operations. */ typedef struct reiser4_policy_plug { reiser4_plug_t p; int (*tails) (uint64_t); } reiser4_policy_plug_t; #endif typedef struct reiser4_core reiser4_core_t; /* Plugin init() and fini() function types. They are used for calling these functions during plugin initialization. */ typedef errno_t (*plug_fini_t) (reiser4_core_t *); typedef errno_t (*plug_func_t) (reiser4_plug_t *, void *); typedef reiser4_plug_t *(*plug_init_t) (reiser4_core_t *); struct reiser4_plug_old { /* All possible plugin operations. */ union { reiser4_key_plug_t *key; reiser4_item_plug_t *item; reiser4_node_plug_t *node; reiser4_hash_plug_t *hash; reiser4_fibre_plug_t *fibre; reiser4_sdext_plug_t *sdext; reiser4_object_plug_t *object; reiser4_format_plug_t *format; #ifndef ENABLE_MINIMAL reiser4_oid_plug_t *oid; reiser4_alloc_plug_t *alloc; reiser4_policy_plug_t *policy; reiser4_journal_plug_t *journal; #endif } pl; }; #ifndef ENABLE_MINIMAL typedef struct reiser4_create_plug { reiser4_plug_t p; rid_t objid; } reiser4_create_plug_t; typedef struct reiser4_cluster_plug { reiser4_plug_t p; rid_t clsize; } reiser4_cluster_plug_t; #endif /* Macros for dirtying nodes place lie at. */ #define place_mkdirty(place) \ ((place)->node->block->dirty = 1) #define place_mkclean(place) \ ((place)->node->block->dirty = 0) #define place_isdirty(place) \ ((place)->node->block->dirty) typedef struct flow_ops { /* Reads data from the tree. */ int64_t (*read) (tree_entity_t *, trans_hint_t *); #ifndef ENABLE_MINIMAL /* Writes data to tree. */ int64_t (*write) (tree_entity_t *, trans_hint_t *); /* Truncates data from tree. */ int64_t (*cut) (tree_entity_t *, trans_hint_t *); /* Convert some particular place to another plugin. */ errno_t (*convert) (tree_entity_t *, conv_hint_t *); #endif } flow_ops_t; typedef struct tree_ops { /* Makes lookup in the tree in order to know where say stat data item of a file realy lies. It is used in all object plugins. */ lookup_t (*lookup) (tree_entity_t *, lookup_hint_t *, lookup_bias_t, reiser4_place_t *); #ifndef ENABLE_MINIMAL /* Collisions handler. It takes start place and looks for actual data in collided array. */ lookup_t (*collision) (tree_entity_t *, reiser4_place_t *, coll_hint_t *); /* Inserts item/unit in the tree by calling tree_insert() function, used by all object plugins (dir, file, etc). */ int64_t (*insert) (tree_entity_t *, reiser4_place_t *, trans_hint_t *, uint8_t); /* Removes item/unit from the tree. It is used in all object plugins for modification purposes. */ errno_t (*remove) (tree_entity_t *, reiser4_place_t *, trans_hint_t *); /* Update the key in the place and the node itsef. */ errno_t (*update_key) (tree_entity_t *, reiser4_place_t *, reiser4_key_t *); /* Get the safe link locality. */ uint64_t (*slink_locality) (tree_entity_t *); /* increment/decriment the free block count in the format. */ errno_t (*inc_free) (tree_entity_t *, count_t); errno_t (*dec_free) (tree_entity_t *, count_t); #endif /* Returns the next item. */ errno_t (*next_item) (tree_entity_t *, reiser4_place_t *, reiser4_place_t *); errno_t (*mpressure) (tree_entity_t *); } tree_ops_t; typedef struct factory_ops { /* Finds plugin by its attributes (type and id). */ reiser4_plug_t *(*ifind) (rid_t, rid_t); } factory_ops_t; #ifdef ENABLE_SYMLINKS typedef struct object_ops { errno_t (*resolve) (tree_entity_t *, char *, reiser4_key_t *, reiser4_key_t *); } object_ops_t; #endif typedef struct pset_ops { /* Obtains the plugin from the profile by its profile index. */ reiser4_plug_t *(*find) (rid_t, rid_t, int); #ifndef ENABLE_MINIMAL /* Diffs 2 psets & returns what needs to be stored on disk. */ uint64_t (*build_mask) (tree_entity_t *, reiser4_pset_t *); #endif } pset_ops_t; #ifndef ENABLE_MINIMAL typedef struct key_ops { char *(*print) (reiser4_key_t *, uint16_t); } key_ops_t; typedef struct item_ops { /* Checks if items mergeable. */ int (*mergeable) (reiser4_place_t *, reiser4_place_t *); } item_ops_t; #endif /* This structure is passed to all plugins in initialization time and used for access libreiser4 factories. */ struct reiser4_core { flow_ops_t flow_ops; tree_ops_t tree_ops; factory_ops_t factory_ops; pset_ops_t pset_ops; #ifdef ENABLE_SYMLINKS object_ops_t object_ops; #endif #ifndef ENABLE_MINIMAL key_ops_t key_ops; item_ops_t item_ops; #endif }; #define print_key(core, key) \ ((core)->key_ops.print((key), PO_DEFAULT)) #define print_inode(core, key) \ ((core)->key_ops.print((key), PO_INODE)) #define ident_equal(ident1, ident2) \ ((ident1)->type == (ident2)->type && \ (ident1)->id == (ident2)->id) #define plug_equal(plug1, plug2) \ ident_equal(&(((reiser4_plug_t *)(plug1))->id), \ &(((reiser4_plug_t *)(plug2))->id)) /* Checks if @method is implemented in @plug and calls it. */ #define plugcall(plug, method, ...) ({ \ aal_assert("Method \""#method"\" isn't implemented " \ "in "#plug"", (plug)->method != NULL); \ (plug)->method(__VA_ARGS__); \ }) /* Checks if @method is implemented in @obj and calls it, passing @obj as the 1st parameter. */ #define entcall(obj, method, ...) ({ \ aal_assert("Method \""#method"\" isn't implemented in " \ ""#obj"->plug->plug", (obj)->plug->method != NULL); \ (obj)->plug->method(obj, ##__VA_ARGS__); \ }) /* Checks if @method is implemented in @obj->plug and calls it, passing @obj as the 1st parameter. */ #define objcall(obj, method, ...) ({ \ aal_assert("Method \""#method"\" isn't implemented in " \ ""#obj"->plug", (obj)->plug->method != NULL); \ (obj)->plug->method(obj, ##__VA_ARGS__); \ }) /* Checks if @method is implemented in @obj->ent.plug and calls it, passing &obj->ent as the first parameter. */ #define reiser4call(obj, method, ...) ({ \ aal_assert("Method \""#method"\" isn't implemented in "#obj"" \ "->ent->plug", (obj)->ent->plug->method != NULL); \ (obj)->ent->plug->method((obj)->ent, ##__VA_ARGS__); \ }) #endif reiser4progs-1.0.7.orig/include/reiser4/oid.h0000644000175000017500000000265511131470543016661 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. oid.h -- oid allocator functions. */ #ifndef REISER4_OID_H #define REISER4_OID_H #ifndef ENABLE_MINIMAL #include extern void reiser4_oid_close(reiser4_oid_t *oid); extern reiser4_oid_t *reiser4_oid_open(reiser4_fs_t *fs); extern errno_t reiser4_oid_layout(reiser4_oid_t *oid, region_func_t region_func, void *data); extern errno_t reiser4_oid_sync(reiser4_oid_t *oid); extern errno_t reiser4_oid_valid(reiser4_oid_t *oid); extern reiser4_oid_t *reiser4_oid_create(reiser4_fs_t *fs); extern oid_t reiser4_oid_next(reiser4_oid_t *oid); extern oid_t reiser4_oid_lost(reiser4_oid_t *oid); extern oid_t reiser4_oid_allocate(reiser4_oid_t *oid); extern void reiser4_oid_release(reiser4_oid_t *oid, oid_t id); extern uint64_t reiser4_oid_free(reiser4_oid_t *oid); extern uint64_t reiser4_oid_get_used(reiser4_oid_t *oid); extern void reiser4_oid_set_used(reiser4_oid_t *oid, uint64_t used); extern bool_t reiser4_oid_isdirty(reiser4_oid_t *oid); extern void reiser4_oid_mkdirty(reiser4_oid_t *oid); extern void reiser4_oid_mkclean(reiser4_oid_t *oid); extern oid_t reiser4_oid_root_locality(reiser4_oid_t *oid); extern oid_t reiser4_oid_root_objectid(reiser4_oid_t *oid); extern oid_t reiser4_oid_hyper_locality(reiser4_oid_t *oid); extern void reiser4_oid_print(reiser4_oid_t *oid, aal_stream_t *stream); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/Makefile.in0000644000175000017500000002773311134132270020001 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/reiser4 DIST_COMMON = $(reiser4include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(reiser4includedir)" reiser4includeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(reiser4include_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ reiser4includedir = $(includedir)/reiser4 reiser4include_HEADERS = bitmap.h libreiser4.h filesystem.h format.h \ journal.h object.h alloc.h oid.h tree.h backup.h \ plugin.h node.h key.h place.h master.h \ item.h factory.h profile.h types.h print.h \ pset.h fake.h status.h semantic.h flow.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/reiser4/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu include/reiser4/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-reiser4includeHEADERS: $(reiser4include_HEADERS) @$(NORMAL_INSTALL) test -z "$(reiser4includedir)" || $(MKDIR_P) "$(DESTDIR)$(reiser4includedir)" @list='$(reiser4include_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(reiser4includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(reiser4includedir)/$$f'"; \ $(reiser4includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(reiser4includedir)/$$f"; \ done uninstall-reiser4includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(reiser4include_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(reiser4includedir)/$$f'"; \ rm -f "$(DESTDIR)$(reiser4includedir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(reiser4includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-reiser4includeHEADERS install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-reiser4includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-reiser4includeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-reiser4includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/include/reiser4/item.h0000644000175000017500000000330111131470543017031 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. item.h -- common item functions. */ #ifndef REISER4_ITEM_H #define REISER4_ITEM_H #include #ifndef ENABLE_MINIMAL extern rid_t reiser4_item_type(reiser4_place_t *place); extern bool_t reiser4_item_statdata(reiser4_place_t *place); extern int reiser4_item_mergeable(reiser4_place_t *place1, reiser4_place_t *place2); extern errno_t reiser4_item_update_key(reiser4_place_t *place, reiser4_key_t *key); extern errno_t reiser4_item_maxreal_key(reiser4_place_t *place, reiser4_key_t *key); extern errno_t reiser4_item_update_link(reiser4_place_t *place, blk_t blk); extern uint16_t reiser4_item_overhead(reiser4_item_plug_t *plug); extern void reiser4_item_set_flag(reiser4_place_t *place, uint16_t flag); extern void reiser4_item_clear_flag(reiser4_place_t *place, uint16_t flag); extern void reiser4_item_clear_flags(reiser4_place_t *place); extern bool_t reiser4_item_test_flag(reiser4_place_t *place, uint16_t flag); extern void reiser4_item_dup_flags(reiser4_place_t *place, uint16_t flags); extern uint16_t reiser4_item_get_flags(reiser4_place_t *place); extern lookup_t reiser4_item_collision(reiser4_place_t *place, coll_hint_t *hint); #endif extern uint32_t reiser4_item_units(reiser4_place_t *place); extern blk_t reiser4_item_down_link(reiser4_place_t *place); extern bool_t reiser4_item_branch(reiser4_item_plug_t *plug); extern errno_t reiser4_item_get_key(reiser4_place_t *place, reiser4_key_t *key); extern errno_t reiser4_item_maxposs_key(reiser4_place_t *place, reiser4_key_t *key); #endif reiser4progs-1.0.7.orig/include/reiser4/factory.h0000644000175000017500000000130411131470543017543 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. factory.h -- plugin factory header file. */ #ifndef REISER4_FACTORY_H #define REISER4_FACTORY_H #include extern void reiser4_factory_fini(void); extern errno_t reiser4_factory_init(void); #ifndef ENABLE_MINIMAL extern reiser4_plug_t *reiser4_factory_nfind(char *name); #endif extern errno_t reiser4_factory_foreach(plug_func_t plug_func, void *data); extern void reiser4_factory_load(reiser4_plug_t *plug); extern reiser4_plug_t *reiser4_factory_ifind(rid_t type, rid_t id); extern reiser4_plug_t *reiser4_factory_cfind(plug_func_t plug_func, void *data); #endif reiser4progs-1.0.7.orig/include/reiser4/journal.h0000644000175000017500000000214411131470543017551 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. journal.h -- reiser4 filesystem journal functions. */ #ifndef REISER4_JOURNAL_H #define REISER4_JOURNAL_H #ifndef ENABLE_MINIMAL #include extern void reiser4_journal_close(reiser4_journal_t *journal); extern void reiser4_journal_mkdirty(reiser4_journal_t *journal); extern void reiser4_journal_mkclean(reiser4_journal_t *journal); extern errno_t reiser4_journal_valid(reiser4_journal_t *journal); extern bool_t reiser4_journal_isdirty(reiser4_journal_t *journal); extern errno_t reiser4_journal_mark(reiser4_journal_t *journal); extern errno_t reiser4_journal_sync(reiser4_journal_t *journal); extern errno_t reiser4_journal_replay(reiser4_journal_t *journal); extern errno_t reiser4_journal_layout(reiser4_journal_t *journal, region_func_t region_func, void *data); extern reiser4_journal_t *reiser4_journal_open(reiser4_fs_t *fs, aal_device_t *device); extern reiser4_journal_t *reiser4_journal_create(reiser4_fs_t *fs, aal_device_t *device); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/fake.h0000644000175000017500000000073611131470543017012 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. fake.h -- functions for working with fake block numbers. */ #ifndef REISER4_FAKE_H #define REISER4_FAKE_H #ifndef ENABLE_MINIMAL #include #define REISER4_FAKE_BLOCKNR_VAL 0xf000000000000000ull #define REISER4_FAKE_BLOCKNR_MASK 0x8000000000000000ull extern inline blk_t reiser4_fake_get(void); extern inline int reiser4_fake_ack(blk_t blk); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/libreiser4.h0000644000175000017500000000225311131470543020144 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. libreiser4.h -- the central libreiser4 header file. */ #ifndef REISER4_LIBREISER4_H #define REISER4_LIBREISER4_H #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include extern void libreiser4_fini(void); extern errno_t libreiser4_init(void); extern const char *libreiser4_version(void); extern int libreiser4_max_interface_version(void); extern int libreiser4_min_interface_version(void); #ifdef __cplusplus } #endif #endif reiser4progs-1.0.7.orig/include/reiser4/key.h0000644000175000017500000000372311131470543016673 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key.h -- reiser4 key defines and functions. */ #ifndef REISER4_KEY_H #define REISER4_KEY_H #include extern int reiser4_key_compshort(reiser4_key_t *key1, reiser4_key_t *key2); #ifndef ENABLE_MINIMAL extern void reiser4_key_free(reiser4_key_t *key); extern void reiser4_key_print(reiser4_key_t *key, aal_stream_t *stream, uint16_t options); extern errno_t reiser4_key_set_hash(reiser4_key_t *key, uint64_t hash); extern uint64_t reiser4_key_get_hash(reiser4_key_t *key); extern uint32_t reiser4_key_get_type(reiser4_key_t *key); extern oid_t reiser4_key_get_objectid(reiser4_key_t *key); extern oid_t reiser4_key_get_locality(reiser4_key_t *key); extern uint64_t reiser4_key_get_ordering(reiser4_key_t *key); extern errno_t reiser4_key_set_type(reiser4_key_t *key, uint32_t type); extern errno_t reiser4_key_set_objectid(reiser4_key_t *key, oid_t objectid); extern errno_t reiser4_key_set_locality(reiser4_key_t *key, oid_t locality); extern errno_t reiser4_key_set_ordering(reiser4_key_t *key, uint64_t ordering); extern errno_t reiser4_key_build_generic(reiser4_key_t *key, uint32_t type, oid_t locality, uint64_t ordering, oid_t objectid, uint64_t offset); extern void reiser4_key_build_hashed(reiser4_key_t *key, reiser4_hash_plug_t *hash, reiser4_fibre_plug_t *fibre, oid_t locality, oid_t objectid, char *name); extern void reiser4_key_minimal(reiser4_key_t *key); #endif extern errno_t reiser4_key_set_offset(reiser4_key_t *key, uint64_t offset); extern void reiser4_key_inc_offset(reiser4_key_t *key, uint64_t value); extern void reiser4_key_maximal(reiser4_key_t *key); extern int reiser4_key_compfull(reiser4_key_t *key1, reiser4_key_t *key2); extern uint64_t reiser4_key_get_offset(reiser4_key_t *key); #endif reiser4progs-1.0.7.orig/include/reiser4/place.h0000644000175000017500000000237311131470543017167 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. place.h -- reiser4 tree place functions. */ #ifndef REISER4_PLACE_H #define REISER4_PLACE_H #include extern bool_t reiser4_place_valid(reiser4_place_t *place); extern errno_t reiser4_place_last(reiser4_place_t *place); extern errno_t reiser4_place_first(reiser4_place_t *place); extern errno_t reiser4_place_fetch(reiser4_place_t *place); extern bool_t reiser4_place_ltlast(reiser4_place_t *place); extern bool_t reiser4_place_gtfirst(reiser4_place_t *place); extern bool_t reiser4_place_right(reiser4_place_t *place); extern void reiser4_place_inc(reiser4_place_t *place, int whole); extern bool_t reiser4_place_rightmost(reiser4_place_t *place); #ifndef ENABLE_MINIMAL extern bool_t reiser4_place_leftmost(reiser4_place_t *place); extern void reiser4_place_dec(reiser4_place_t *place, int whole); #endif extern errno_t reiser4_place_init(reiser4_place_t *place, reiser4_node_t *node, pos_t *pos); extern errno_t reiser4_place_open(reiser4_place_t *place, reiser4_node_t *node, pos_t *pos); extern errno_t reiser4_place_assign(reiser4_place_t *place, reiser4_node_t *node, uint32_t item, uint32_t unit); #endif reiser4progs-1.0.7.orig/include/reiser4/alloc.h0000644000175000017500000000346411131470543017177 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. alloc.h -- reiser4 block allocator functions. */ #ifndef REISER4_ALLOC_H #define REISER4_ALLOC_H #ifndef ENABLE_MINIMAL #include extern reiser4_alloc_t *reiser4_alloc_open(reiser4_fs_t *fs, count_t blocks); extern reiser4_alloc_t *reiser4_alloc_create(reiser4_fs_t *fs, count_t blocks); extern errno_t reiser4_alloc_extract(reiser4_alloc_t *alloc, reiser4_bitmap_t *bitmap); extern errno_t reiser4_alloc_assign(reiser4_alloc_t *alloc, reiser4_bitmap_t *bitmap); extern errno_t reiser4_alloc_sync(reiser4_alloc_t *alloc); extern errno_t reiser4_alloc_occupy(reiser4_alloc_t *alloc, blk_t start, count_t count); extern errno_t reiser4_alloc_release(reiser4_alloc_t *alloc, blk_t start, count_t count); extern count_t reiser4_alloc_allocate(reiser4_alloc_t *alloc, blk_t *start, count_t count); extern void reiser4_alloc_close(reiser4_alloc_t *alloc); extern errno_t reiser4_alloc_valid(reiser4_alloc_t *alloc); extern bool_t reiser4_alloc_isdirty(reiser4_alloc_t *alloc); extern void reiser4_alloc_mkdirty(reiser4_alloc_t *alloc); extern void reiser4_alloc_mkclean(reiser4_alloc_t *alloc); extern count_t reiser4_alloc_used(reiser4_alloc_t *alloc); extern count_t reiser4_alloc_free(reiser4_alloc_t *alloc); extern bool_t reiser4_alloc_occupied(reiser4_alloc_t *alloc, blk_t start, count_t count); extern bool_t reiser4_alloc_available(reiser4_alloc_t *alloc, blk_t start, count_t count); extern errno_t reiser4_alloc_layout(reiser4_alloc_t *alloc, region_func_t region_func, void *data); extern errno_t reiser4_alloc_region(reiser4_alloc_t *alloc, blk_t blk, region_func_t func, void *data); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/master.h0000644000175000017500000000362211131470543017374 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. master.h -- master super block functions. */ #ifndef REISER4_MASTER_H #define REISER4_MASTER_H #include #define SUPER(master) (&master->ent) #ifndef ENABLE_MINIMAL extern int reiser4_master_confirm(aal_device_t *device); extern errno_t reiser4_master_sync(reiser4_master_t *master); extern errno_t reiser4_master_valid(reiser4_master_t *master); extern errno_t reiser4_master_reopen(reiser4_master_t *master); extern reiser4_plug_t *reiser4_master_guess(aal_device_t *device); extern errno_t reiser4_master_layout(reiser4_master_t *master, region_func_t region_func, void *data); extern errno_t reiser4_master_backup(reiser4_master_t *master, backup_hint_t *hint); extern reiser4_master_t *reiser4_master_create(aal_device_t *device, fs_hint_t *hint); extern void reiser4_master_set_uuid(reiser4_master_t *master, char *uuid); extern void reiser4_master_set_label(reiser4_master_t *master, char *label); extern void reiser4_master_set_format(reiser4_master_t *master, rid_t format); extern void reiser4_master_set_blksize(reiser4_master_t *master, uint32_t blksize); extern char *reiser4_master_get_uuid(reiser4_master_t *master); extern char *reiser4_master_get_label(reiser4_master_t *master); extern char *reiser4_master_get_magic(reiser4_master_t *master); extern bool_t reiser4_master_isdirty(reiser4_master_t *master); extern void reiser4_master_mkdirty(reiser4_master_t *master); extern void reiser4_master_mkclean(reiser4_master_t *master); #endif extern reiser4_master_t *reiser4_master_open(aal_device_t *device); extern void reiser4_master_close(reiser4_master_t *master); extern rid_t reiser4_master_get_format(reiser4_master_t *master); extern uint32_t reiser4_master_get_blksize(reiser4_master_t *master); #endif reiser4progs-1.0.7.orig/include/reiser4/flow.h0000644000175000017500000000113511131470543017045 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. flow.h -- declarations of functions for working with flow. */ #ifndef REISER4_FLOW_H #define REISER4_FLOW_H #include extern int64_t reiser4_flow_read(reiser4_tree_t *tree, trans_hint_t *hint); #ifndef ENABLE_MINIMAL extern int64_t reiser4_flow_write(reiser4_tree_t *tree, trans_hint_t *hint); extern errno_t reiser4_flow_convert(reiser4_tree_t *tree, conv_hint_t *hint); extern int64_t reiser4_flow_cut(reiser4_tree_t *tree, trans_hint_t *hint); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/backup.h0000644000175000017500000000206611131470543017347 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. backup.h -- reiser4 backup method declaration. */ #ifndef REISER4_BACKUP_H #define REISER4_BACKUP_H #ifndef ENABLE_MINIMAL /* Put backup copies into the power of (3/2) block numbers. */ #define BACKUP_EXP_LAYOUT(blk) ((blk * 3) >> 1) extern reiser4_backup_t *reiser4_backup_create(reiser4_fs_t *fs); extern reiser4_backup_t *reiser4_backup_open(reiser4_fs_t *fs); extern void reiser4_backup_close(reiser4_backup_t *backup); extern errno_t reiser4_backup_sync(reiser4_backup_t *backup); extern errno_t reiser4_backup_valid(reiser4_backup_t *backup); extern errno_t reiser4_backup_layout(reiser4_fs_t *fs, region_func_t region_func, void *data); extern errno_t reiser4_old_backup_layout(reiser4_fs_t *fs, region_func_t region_func, void *data); #define reiser4_backup_isdirty(backup) ((backup)->dirty) #define reiser4_backup_mkdirty(backup) ((backup)->dirty = 1) #define reiser4_backup_mkclean(backup) ((backup)->dirty = 0) #endif #endif reiser4progs-1.0.7.orig/include/reiser4/bitmap.h0000644000175000017500000000471211131470543017356 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. bitmap.h -- bitmap functions. Bitmap is used by block allocator plugin and fsck program. See libmisc/bitmap.c for more details. */ #ifndef AUX_BITMAP_H #define AUX_BITMAP_H #ifndef ENABLE_MINIMAL #include #define AUX_BITMAP_MAGIC "R4BtMp" /* Bitmap structure. It contains: pointer to device instance bitmap opened on, start on device, total blocks bitmap described, used blocks, pointer to memory chunk bit array placed in and bit array size. */ typedef struct reiser4_bitmap { uint64_t marked; uint64_t total; uint32_t size; char *map; } reiser4_bitmap_t; extern void reiser4_bitmap_mark(reiser4_bitmap_t *bitmap, uint64_t bit); extern void reiser4_bitmap_clear(reiser4_bitmap_t *bitmap, uint64_t bit); extern int reiser4_bitmap_test(reiser4_bitmap_t *bitmap, uint64_t bit); extern void reiser4_bitmap_mark_region(reiser4_bitmap_t *bitmap, uint64_t start, uint64_t count); extern void reiser4_bitmap_clear_region(reiser4_bitmap_t *bitmap, uint64_t start, uint64_t count); extern bool_t reiser4_bitmap_test_region_marked(reiser4_bitmap_t *bitmap, uint64_t start, uint64_t count); extern bool_t reiser4_bitmap_test_region(reiser4_bitmap_t *bitmap, uint64_t start, uint64_t count, int marked); extern void reiser4_bitmap_invert(reiser4_bitmap_t *bitmap); extern uint64_t reiser4_bitmap_find_region(reiser4_bitmap_t *bitmap, uint64_t *start, uint64_t count, int marked); extern uint64_t reiser4_bitmap_find_marked(reiser4_bitmap_t *bitmap, uint64_t start); extern uint64_t reiser4_bitmap_find_cleared(reiser4_bitmap_t *bitmap, uint64_t start); extern uint64_t reiser4_bitmap_calc_marked(reiser4_bitmap_t *bitmap); extern uint64_t reiser4_bitmap_calc_cleared(reiser4_bitmap_t *bitmap); extern uint64_t reiser4_bitmap_marked(reiser4_bitmap_t *bitmap); extern uint64_t reiser4_bitmap_cleared(reiser4_bitmap_t *bitmap); extern reiser4_bitmap_t *reiser4_bitmap_create(uint64_t len); extern reiser4_bitmap_t *reiser4_bitmap_clone(reiser4_bitmap_t *bitmap); extern void reiser4_bitmap_resize(reiser4_bitmap_t *bitmap, uint64_t len); extern void reiser4_bitmap_close(reiser4_bitmap_t *bitmap); extern reiser4_bitmap_t *reiser4_bitmap_unpack(aal_stream_t *stream); extern errno_t reiser4_bitmap_pack(reiser4_bitmap_t *bitmap, aal_stream_t *stream); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/Makefile.am0000644000175000017500000000047611131470543017770 0ustar fzfzreiser4includedir = $(includedir)/reiser4 reiser4include_HEADERS = bitmap.h libreiser4.h filesystem.h format.h \ journal.h object.h alloc.h oid.h tree.h backup.h \ plugin.h node.h key.h place.h master.h \ item.h factory.h profile.h types.h print.h \ pset.h fake.h status.h semantic.h flow.h reiser4progs-1.0.7.orig/include/reiser4/status.h0000644000175000017500000000135511131470543017425 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. status.h -- filesystem status block functions. */ #ifndef REISER4_STATUS_H #define REISER4_STATUS_H #ifndef ENABLE_MINIMAL #include #define STATUS(status) (&status->ent) extern void reiser4_status_close(reiser4_status_t *status); extern errno_t reiser4_status_sync(reiser4_status_t *status); extern errno_t reiser4_status_layout(reiser4_status_t *status, region_func_t region_func, void *data); extern reiser4_status_t *reiser4_status_open(aal_device_t *device, uint32_t blksize); extern reiser4_status_t *reiser4_status_create(aal_device_t *device, uint32_t blksize); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/object.h0000644000175000017500000000752611131470543017356 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. object.h -- reiser4 common object functions (regular file, directory, etc). */ #ifndef REISER4_OBJECT_H #define REISER4_OBJECT_H #include extern reiser4_object_t *reiser4_object_prep(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_key_t *object, reiser4_place_t *place); extern reiser4_object_t *reiser4_object_obtain(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_key_t *key); extern reiser4_object_t *reiser4_object_open(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_place_t *place); uint64_t reiser4_object_size(reiser4_object_t *object); extern void reiser4_object_close(reiser4_object_t *object); #ifndef ENABLE_MINIMAL extern errno_t reiser4_object_add_entry(reiser4_object_t *object, entry_hint_t *entry); extern errno_t reiser4_object_rem_entry(reiser4_object_t *object, entry_hint_t *entry); extern errno_t reiser4_object_truncate(reiser4_object_t *object, uint64_t n); extern int64_t reiser4_object_write(reiser4_object_t *object, void *buff, uint64_t n); extern errno_t reiser4_object_refresh(reiser4_object_t *object); extern reiser4_object_t *reiser4_object_create(entry_hint_t *entry, object_info_t *info, object_hint_t *hint); extern errno_t reiser4_object_clobber(reiser4_object_t *object); extern errno_t reiser4_object_link(reiser4_object_t *object, reiser4_object_t *child, entry_hint_t *entry); extern errno_t reiser4_object_unlink(reiser4_object_t *object, char *name); extern errno_t reiser4_object_attach(reiser4_object_t *object, reiser4_object_t *parent); extern errno_t reiser4_object_detach(reiser4_object_t *object, reiser4_object_t *parent); extern errno_t reiser4_object_layout(reiser4_object_t *object, region_func_t region_func, void *data); extern errno_t reiser4_object_metadata(reiser4_object_t *object, place_func_t place_func, void *data); extern lookup_t reiser4_object_lookup(reiser4_object_t *object, const char *name, entry_hint_t *entry); extern errno_t reiser4_object_stat(reiser4_object_t *object, stat_hint_t *hint); extern errno_t reiser4_object_reset(reiser4_object_t *object); extern errno_t reiser4_object_seek(reiser4_object_t *object, uint32_t offset); extern errno_t reiser4_object_seekdir(reiser4_object_t *object, reiser4_key_t *offset); extern uint32_t reiser4_object_offset(reiser4_object_t *object); extern errno_t reiser4_object_telldir(reiser4_object_t *object, reiser4_key_t *offset); extern int64_t reiser4_object_read(reiser4_object_t *object, void *buff, uint64_t n); extern errno_t reiser4_object_readdir(reiser4_object_t *object, entry_hint_t *entry); extern errno_t reiser4_object_entry_prep(reiser4_tree_t *tree, reiser4_object_t *parent, entry_hint_t *entry, const char *name); extern reiser4_object_t *reiser4_dir_create(reiser4_object_t *parent, const char *name); extern reiser4_object_t *reiser4_reg_create(reiser4_object_t *parent, const char *name); extern reiser4_object_t *reiser4_sym_create(reiser4_object_t *parent, const char *name, const char *target); extern reiser4_object_t *reiser4_spl_create(reiser4_object_t *parent, const char *name, uint32_t mode, uint64_t rdev); extern reiser4_object_t *reiser4_ccreg_create(reiser4_object_t *parent, const char *name, const char *key); extern errno_t reiser4_object_traverse(reiser4_object_t *object, object_open_func_t open_func, void *data); #endif #define object_start(object) (&(object)->info.start) #endif reiser4progs-1.0.7.orig/include/reiser4/print.h0000644000175000017500000000124311131470543017232 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. print.h -- different print functions. */ #ifndef REISER4_PRINT_H #define REISER4_PRINT_H #ifndef ENABLE_MINIMAL #include extern void reiser4_print_fini(void); extern errno_t reiser4_print_init(uint32_t pool); extern char *reiser4_print_key(reiser4_key_t *key); extern char *reiser4_print_inode(reiser4_key_t *key); #ifdef ENABLE_DEBUG extern void reiser4_print_format(reiser4_format_t *format, uint16_t options); extern void reiser4_print_node(reiser4_node_t *node, uint32_t start, uint32_t count, uint16_t options); #endif #endif #endif reiser4progs-1.0.7.orig/include/reiser4/filesystem.h0000644000175000017500000000216011131470543020261 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. filesystem.h -- reiser4 filesystem functions declaration. */ #ifndef REISER4_FILESYSTEM_H #define REISER4_FILESYSTEM_H #include extern void reiser4_fs_close(reiser4_fs_t *fs); #ifndef ENABLE_MINIMAL extern reiser4_fs_t *reiser4_fs_open(aal_device_t *device, bool_t check); #else extern reiser4_fs_t *reiser4_fs_open(aal_device_t *device); #endif #ifndef ENABLE_MINIMAL #define FS_LEN_ADJUST (64 * 1024) extern errno_t reiser4_fs_sync(reiser4_fs_t *fs); extern errno_t reiser4_fs_clobber(aal_device_t *device); extern errno_t reiser4_fs_resize(reiser4_fs_t *fs, count_t blocks); extern errno_t reiser4_fs_copy(reiser4_fs_t *src_fs, reiser4_fs_t *dst_fs); extern errno_t reiser4_fs_layout(reiser4_fs_t *fs, region_func_t region_func, void *data); extern reiser4_owner_t reiser4_fs_belongs(reiser4_fs_t *fs, blk_t blk); extern reiser4_fs_t *reiser4_fs_create(aal_device_t *device, fs_hint_t *hint); extern errno_t reiser4_fs_backup(reiser4_fs_t *fs, backup_hint_t *hint); #endif #endif reiser4progs-1.0.7.orig/include/reiser4/node.h0000644000175000017500000000622311131470543017026 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. node.h -- reiser4 formated node functions. */ #ifndef REISER4_NODE_H #define REISER4_NODE_H #include #ifndef ENABLE_MINIMAL extern errno_t reiser4_node_sync(reiser4_node_t *node); extern uint16_t reiser4_node_space(reiser4_node_t *node); extern uint16_t reiser4_node_overhead(reiser4_node_t *node); extern uint16_t reiser4_node_maxspace(reiser4_node_t *node); extern uint32_t reiser4_node_get_mstamp(reiser4_node_t *node); extern uint64_t reiser4_node_get_fstamp(reiser4_node_t *node); extern errno_t reiser4_node_update_ptr(reiser4_node_t *node); extern void reiser4_node_move(reiser4_node_t *node, blk_t nr); extern reiser4_node_t *reiser4_node_create(reiser4_tree_t *tree, reiser4_node_plug_t *plug, blk_t nr, uint8_t level); extern errno_t reiser4_node_trav(reiser4_node_t *node, place_func_t func, void *data); extern int64_t reiser4_node_modify(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint, modify_func_t modify_func); extern int64_t reiser4_node_write(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint); extern int64_t reiser4_node_trunc(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint); extern errno_t reiser4_node_insert(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint); extern errno_t reiser4_node_remove(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint); extern errno_t reiser4_node_expand(reiser4_node_t *node, pos_t *pos, uint32_t len, uint32_t count); extern errno_t reiser4_node_shrink(reiser4_node_t *node, pos_t *pos, uint32_t len, uint32_t count); extern errno_t reiser4_node_shift(reiser4_node_t *node, reiser4_node_t *neig, shift_hint_t *hint); extern errno_t reiser4_node_merge(reiser4_node_t *node, pos_t *pos1, pos_t *pos2); extern errno_t reiser4_node_update_key(reiser4_node_t *node, pos_t *pos, reiser4_key_t *key); extern errno_t reiser4_node_fresh(reiser4_node_t *node, uint8_t level); extern void reiser4_node_set_mstamp(reiser4_node_t *node, uint32_t stamp); extern void reiser4_node_set_fstamp(reiser4_node_t *node, uint64_t stamp); extern void reiser4_node_set_level(reiser4_node_t *node, uint8_t level); #endif extern uint8_t reiser4_node_get_level(reiser4_node_t *node); extern reiser4_node_t *reiser4_node_open(reiser4_tree_t *tree, blk_t nr); extern errno_t reiser4_node_leftmost_key(reiser4_node_t *node, reiser4_key_t *key); extern lookup_t reiser4_node_lookup(reiser4_node_t *node, lookup_hint_t *hint, lookup_bias_t bias, pos_t *pos); extern errno_t reiser4_node_close(reiser4_node_t *node); extern uint32_t reiser4_node_items(reiser4_node_t *node); #ifndef ENABLE_MINIMAL extern errno_t reiser4_node_fini(reiser4_node_t *node); extern bool_t reiser4_node_isdirty(reiser4_node_t *node); extern void reiser4_node_mkdirty(reiser4_node_t *node); extern void reiser4_node_mkclean(reiser4_node_t *node); #endif extern void reiser4_node_lock(reiser4_node_t *node); extern void reiser4_node_unlock(reiser4_node_t *node); extern bool_t reiser4_node_locked(reiser4_node_t *node); #endif reiser4progs-1.0.7.orig/include/reiser4/types.h0000644000175000017500000001551211131470543017246 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. types.h -- reiser4 filesystem structures and macros. */ #ifndef REISER4_TYPES_H #define REISER4_TYPES_H #include #include #include /* Minimal block number needed for a reiser4 filesystem: Master, Format40, Bitmap, JHeader, JFooter, Status, Backup, Twig, Leaf + skipped ones. */ #define REISER4_FS_MIN_SIZE(blksize) \ (9 + REISER4_MASTER_BLOCKNR(blksize)) /* Master super block structure. It is the same for all reiser4 filesystems, so, we can declare it here. It contains common for all format fields like block size etc. */ typedef struct reiser4_master_sb { /* Master super block magic. */ char ms_magic[16]; /* Disk format in use. */ d16_t ms_format; /* Filesyetem block size in use. */ d16_t ms_blksize; /* Filesyetm uuid in use. */ char ms_uuid[16]; /* Filesystem label in use. */ char ms_label[16]; } reiser4_master_sb_t; #define get_ms_format(ms) aal_get_le16(ms, ms_format) #define set_ms_format(ms, val) aal_set_le16(ms, ms_format, val) #define get_ms_blksize(ms) aal_get_le16(ms, ms_blksize) #define set_ms_blksize(ms, val) aal_set_le16(ms, ms_blksize, val) #define SS_MAGIC_SIZE 16 #define SS_STACK_SIZE 10 #define SS_MESSAGE_SIZE 256 typedef struct reiser4_status_sb { /* Status block magic string. */ char ss_magic[16]; /* Flags that contains current fs status like, corrupted, etc. */ d64_t ss_status; /* Extended status flags. May be used as addition to main ones. */ d64_t ss_extended; /* If there was some errors in last time filesystem was used, here may be stored stack trace where it was. */ d64_t ss_stack[SS_STACK_SIZE]; /* Error message related to saved status and stack trace. */ char ss_message[SS_MESSAGE_SIZE]; } reiser4_status_sb_t; #define get_ss_status(ss) aal_get_le64(ss, ss_status) #define set_ss_status(ss, val) aal_set_le64(ss, ss_status, val) #define get_ss_extended(ss) aal_get_le64(ss, ss_extended) #define set_ss_extended(ss, val) aal_set_le64(ss, ss_extended, val) #define ss_stack(ss, n) LE64_TO_CPU(ss->ss_stack[n]) typedef struct reiser4_fs reiser4_fs_t; #ifndef ENABLE_MINIMAL typedef struct reiser4_backup { reiser4_fs_t *fs; /* The backup data are stored here. */ backup_hint_t hint; bool_t dirty; void *data; } reiser4_backup_t; #endif enum reiser4_state { FS_OK = 0, FS_CORRUPTED = 1 << 0, FS_DAMAGED = 1 << 1, FS_DESTROYED = 1 << 2, FS_IO = 1 << 3 }; typedef struct reiser4_master { /* Flag for marking master dirty */ bool_t dirty; /* Device master is opened on */ aal_device_t *device; /* Loaded master data */ reiser4_master_sb_t ent; } reiser4_master_t; typedef struct reiser4_status { /* Flag for marking status block dirty */ bool_t dirty; /* Block size */ uint32_t blksize; /* Device status is opened on */ aal_device_t *device; /* Loaded status data */ reiser4_status_sb_t ent; } reiser4_status_t; typedef struct reiser4_tree reiser4_tree_t; /* Calback types used in object code. */ typedef reiser4_object_t *(*object_open_func_t) (reiser4_object_t *, entry_hint_t *, void *); #ifndef ENABLE_MINIMAL typedef enum reiser4_owner { O_MASTER = 1 << 0, O_FORMAT = 1 << 1, O_JOURNAL = 1 << 2, O_ALLOC = 1 << 3, O_OID = 1 << 4, O_STATUS = 1 << 5, O_BACKUP = 1 << 6, O_UNKNOWN = 1 << 7 } reiser4_owner_t; #endif /* Reiser4 wrappers for all filesystem objects (journal, block allocator, etc.). They are used for make its plugins access simple. */ typedef struct reiser4_format { reiser4_fs_t *fs; /* Disk-format entity. It is initialized by disk-format plugin during initialization. */ reiser4_format_ent_t *ent; } reiser4_format_t; #ifndef ENABLE_MINIMAL /* Journal structure */ typedef struct reiser4_journal { reiser4_fs_t *fs; /* Device journal will be opened on. In the case journal lie on the same device as filesystem does, this field will point to the same device instance as in fs struct. */ aal_device_t *device; /* Journal entity. Initializied by plugin */ reiser4_journal_ent_t *ent; } reiser4_journal_t; typedef struct reiser4_alloc reiser4_alloc_t; typedef errno_t (*hook_alloc_t) (reiser4_alloc_t *, uint64_t, uint64_t, void *); /* Block allocator structure */ struct reiser4_alloc { reiser4_fs_t *fs; reiser4_alloc_ent_t *ent; struct { hook_alloc_t alloc; hook_alloc_t release; void *data; } hook; }; #endif /* Oid allocator structure */ typedef struct reiser4_oid { reiser4_fs_t *fs; reiser4_oid_ent_t *ent; } reiser4_oid_t; #ifndef ENABLE_MINIMAL typedef errno_t (*estimate_func_t) (reiser4_place_t *place, trans_hint_t *hint); typedef errno_t (*modify_func_t) (reiser4_node_t *node, pos_t *pos, trans_hint_t *hint); #endif typedef int (*mpc_func_t) (reiser4_tree_t *); /* Tree structure. */ struct reiser4_tree { tree_entity_t ent; /* Flag that shows, that tree adjusting is running now and should not be called again until this flag is turned off. */ int adjusting; /* Reference to filesystem instance tree opened on. */ reiser4_fs_t *fs; /* Reference to root node. */ reiser4_node_t *root; /* Tree root key. */ reiser4_key_t key; /* Memory pressure detect function. */ mpc_func_t mpc_func; /* Formatted nodes hash table. */ aal_hash_table_t *nodes; #ifndef ENABLE_MINIMAL /* Extents data stored here. */ aal_hash_table_t *blocks; #endif }; #ifndef ENABLE_MINIMAL /* Callback function type for opening node. */ typedef reiser4_node_t *(*tree_open_func_t) (reiser4_tree_t *, reiser4_place_t *, void *); #endif /* Filesystem compound structure */ struct reiser4_fs { /* Device filesystem is opened/created on */ aal_device_t *device; /* Pointer to the master super block wrapper object */ reiser4_master_t *master; /* Pointer to the disk-format instance */ reiser4_format_t *format; #ifndef ENABLE_MINIMAL /* Pointer to the journal in use */ reiser4_journal_t *journal; /* Pointer to the block allocator in use */ reiser4_alloc_t *alloc; /* Filesystem status block. */ reiser4_status_t *status; /* Filesystem backup. */ reiser4_backup_t *backup; /* Pointer to the oid allocator in use */ reiser4_oid_t *oid; #endif /* Pointer to the storage tree wrapper object */ reiser4_tree_t *tree; #ifndef ENABLE_MINIMAL /* Pointer to the semantic tree wrapper object */ reiser4_object_t *root; /* Applications using this library sometimes need to embed information into the objects of our library for their own use. */ void *data; #endif }; typedef struct fs_hint { count_t blocks; uint32_t blksize; char uuid[17]; char label[17]; } fs_hint_t; typedef void (*uuid_unparse_t) (char *uuid, char *string); typedef errno_t (*walk_func_t) (reiser4_tree_t *, reiser4_node_t *); typedef errno_t (*walk_on_func_t) (reiser4_tree_t *, reiser4_place_t *); #endif reiser4progs-1.0.7.orig/include/reiser4/format.h0000644000175000017500000000540511131470543017372 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. format.h -- public format functions. */ #ifndef REISER4_FORMAT_H #define REISER4_FORMAT_H #include extern reiser4_format_t *reiser4_format_open(reiser4_fs_t *fs); #ifndef ENABLE_MINIMAL extern errno_t reiser4_format_sync(reiser4_format_t *format); extern void reiser4_format_mkdirty(reiser4_format_t *format); extern void reiser4_format_mkclean(reiser4_format_t *format); extern bool_t reiser4_format_isdirty(reiser4_format_t *format); extern reiser4_format_t *reiser4_format_create(reiser4_fs_t *fs, reiser4_format_plug_t *plug, rid_t policy, rid_t key, count_t blocks); extern errno_t reiser4_format_backup(reiser4_format_t *format, backup_hint_t *hint); extern errno_t reiser4_format_layout(reiser4_format_t *format, region_func_t func, void *data); extern void reiser4_format_set_root(reiser4_format_t *format, blk_t root); extern void reiser4_format_set_len(reiser4_format_t *format, count_t blocks); extern void reiser4_format_set_free(reiser4_format_t *format, count_t blocks); extern void reiser4_format_set_height(reiser4_format_t *format, uint8_t height); extern void reiser4_format_set_stamp(reiser4_format_t *format, uint32_t stamp); extern void reiser4_format_set_policy(reiser4_format_t *format, uint16_t policy); extern errno_t reiser4_format_mark(reiser4_format_t *format, reiser4_alloc_t *alloc); extern count_t reiser4_format_len(aal_device_t *device, uint32_t blksize); extern errno_t reiser4_format_check_len(aal_device_t *device, uint32_t blksize, count_t blocks); extern errno_t reiser4_format_valid(reiser4_format_t *format); extern rid_t reiser4_format_oid_pid(reiser4_format_t *format); extern rid_t reiser4_format_alloc_pid(reiser4_format_t *format); extern rid_t reiser4_format_journal_pid(reiser4_format_t *format); extern blk_t reiser4_format_start(reiser4_format_t *format); extern count_t reiser4_format_get_len(reiser4_format_t *format); extern count_t reiser4_format_get_free(reiser4_format_t *format); extern const char *reiser4_format_name(reiser4_format_t *format); extern uint32_t reiser4_format_get_stamp(reiser4_format_t *format); extern uint16_t reiser4_format_get_policy(reiser4_format_t *format); extern blk_t reiser4_format_get_root(reiser4_format_t *format); extern errno_t reiser4_format_inc_free(reiser4_format_t *format, count_t count); extern errno_t reiser4_format_dec_free(reiser4_format_t *format, count_t count); #endif extern void reiser4_format_close(reiser4_format_t *format); extern uint16_t reiser4_format_get_height(reiser4_format_t *format); #endif reiser4progs-1.0.7.orig/include/misc/0000777000175000017500000000000011134133450015303 5ustar fzfzreiser4progs-1.0.7.orig/include/misc/profile.h0000644000175000017500000000052411131470543017115 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. profile.h -- methods for working with profile reiser4 programs. */ #ifndef MISC_PROFILE_H #define MISC_PROFILE_H #include extern void misc_profile_print(void); extern errno_t misc_profile_override(char *override); #endif reiser4progs-1.0.7.orig/include/misc/version.h0000644000175000017500000000042711131470543017144 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. version.h -- version information for reiser4progs. */ #define BANNER \ "Copyright (C) 2001-2005 by Hans Reiser, " \ "licensing governed by reiser4progs/COPYING." reiser4progs-1.0.7.orig/include/misc/Makefile.in0000644000175000017500000002471311134132270017352 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/misc DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = misc.h mpressure.h profile.h exception.h gauge.h ui.h version.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/misc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu include/misc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/include/misc/exception.h0000644000175000017500000000062411131470543017454 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. exception.h -- common for all progs exception functions. */ #ifndef MISC_EXCEPTION_H #define MISC_EXCEPTION_H #include extern void *misc_exception_get_stream(aal_exception_type_t type); extern void misc_exception_set_stream(aal_exception_type_t type, void *stream); #endif reiser4progs-1.0.7.orig/include/misc/gauge.h0000644000175000017500000000043011131470543016541 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. gauge.h -- common for all progs gauge fucntions. */ #ifndef MISC_GAUGE_H #define MISC_GAUGE_H #include extern void misc_progress_handler(aal_gauge_t *gauge); #endif reiser4progs-1.0.7.orig/include/misc/misc.h0000644000175000017500000000352111131470543016410 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. misc.h -- reiser4progs common include. */ #ifndef MISC_H #define MISC_H #include #include #include #define NO_ERROR 0 /* no errors */ #define OPER_ERROR 8 /* bug in the code, assertions, etc. */ #define USER_ERROR 16 /* wrong parameters, not allowed values, etc. */ #ifndef MAJOR # define MAJOR(rdev) ((rdev) >> 8) # define MINOR(rdev) ((rdev) & 0xff) #endif #ifndef SCSI_DISK_MAJOR # define SCSI_DISK_MAJOR(maj) ((maj) == SCSI_DISK0_MAJOR || \ ((maj) >= SCSI_DISK1_MAJOR && (maj) <= SCSI_DISK7_MAJOR)) #endif #ifndef SCSI_BLK_MAJOR # define SCSI_BLK_MAJOR(maj) (SCSI_DISK_MAJOR(maj) || \ (maj) == SCSI_CDROM_MAJOR) #endif #ifndef IDE_DISK_MAJOR # ifdef IDE9_MAJOR # define IDE_DISK_MAJOR(maj) ((maj) == IDE0_MAJOR || \ (maj) == IDE1_MAJOR || (maj) == IDE2_MAJOR || \ (maj) == IDE3_MAJOR || (maj) == IDE4_MAJOR || \ (maj) == IDE5_MAJOR || (maj) == IDE6_MAJOR || \ (maj) == IDE7_MAJOR || (maj) == IDE8_MAJOR || \ (maj) == IDE9_MAJOR) # else # define IDE_DISK_MAJOR(maj) ((maj) == IDE0_MAJOR || \ (maj) == IDE1_MAJOR || (maj) == IDE2_MAJOR || \ (maj) == IDE3_MAJOR || (maj) == IDE4_MAJOR || \ (maj) == IDE5_MAJOR) # endif #endif #include "mpressure.h" #include "gauge.h" #include "exception.h" #include "profile.h" #include "version.h" #include "ui.h" #define INVAL_DIG (0x7fffffff) typedef enum mount_flags { MF_NOT_MOUNTED = 0x0, MF_RO = 0x1, MF_RW = 0x2 } mount_flags_t; extern long long misc_size2long(const char *str); extern long long misc_str2long(const char *str, int base); extern void misc_plugins_print(void); extern void misc_uuid_unparse(char *uuid, char *string); extern void misc_upper_case(char *dst, const char *src); extern int misc_dev_mounted(const char *name); #endif reiser4progs-1.0.7.orig/include/misc/Makefile.am0000644000175000017500000000012111131470543017331 0ustar fzfznoinst_HEADERS = misc.h mpressure.h profile.h exception.h gauge.h ui.h version.h reiser4progs-1.0.7.orig/include/misc/mpressure.h0000644000175000017500000000070111131470543017477 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. mpressure.c -- memory pressure detect functions common for all reiser4progs. Probably here should be more reliable method to determine memory pressure. */ #ifndef MISC_MPRESSURE_H #define MISC_MPRESSURE_H #include extern void misc_mpressure_setup(uint32_t value); extern int misc_mpressure_detect(reiser4_tree_t *tree); #endif reiser4progs-1.0.7.orig/include/misc/ui.h0000644000175000017500000000120111131470543016063 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ui.h -- common for all progs function for work with libreadline. */ #ifndef MISC_UI_H #define MISC_UI_H #include extern uint16_t misc_screen_width(void); extern void misc_print_banner(char *name); extern void misc_wipe_line(void *stream); extern void misc_print_wrap(void *stream, char *text); extern char *misc_readline(char *prompt, void *stream); #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) extern aal_list_t *misc_get_variant(void); extern void misc_set_variant(aal_list_t *list); #endif #endif reiser4progs-1.0.7.orig/doc/0000777000175000017500000000000011134133450013472 5ustar fzfzreiser4progs-1.0.7.orig/doc/fsck.reiser4.80000644000175000017500000000562511131474343016077 0ustar fzfz.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH fsck.reiser4 8 "05 February, 2004" reiser4progs "reiser4progs manual" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME fsck.reiser4 \- the program for checking and repairing reiser4 filesystem. .SH SYNOPSIS .B fsck.reiser4 [ options ] FILE .SH DESCRIPTION .B fsck.reiser4 is reiser4 filesystem check and repair program. .SH CHECK OPTIONS .TP .B --check the default action checks the consistency and reports, but does not repair any corruption that it finds. This option may be used on a read-only file system mount. .TP .B --fix fixes minor corruptions that do not require rebuilding; sets up correct values of bytes unsupported by kernel in the case of transparent compression. .TP .B --build-sb fixes all severe corruptions in super blocks, rebuilds super blocks from scratch if needed. .TP .B --build-fs fixes all severe fs corruptions, except super block ones; rebuilds reiser4 filesystem from the scratch if needed. .TP .B -L, --logfile forces fsck to report any corruption it finds to the specified logfile rather then on stderr. .TP .B -n, --no-log prevents fsck from reporting any kind of corruption. .TP .B -a, --auto automatically checks the file system without any questions. .TP .B -q, --quiet supresses gauges. .TP .B -r ignored. .SH PLUGIN OPTIONS .TP .B --print-profile prints the plugin profile. This is the set of default plugins used for all parts of a filesystem -- format, nodes, files, directories, hashes, etc. If --override is specified, then prints modified plugins. .TP .B -l, --print-plugins prints all plugins libreiser4 know about. .TP .B -o, --override TYPE=PLUGIN, ... overrides the default plugin of the type "TYPE" by the plugin "PLUGIN" in the plugin profile. .SH COMMON OPTIONS .TP .B -V, --version prints program version .TP .B -?, -h, --help prints program help .TP .B -q, --quiet suppress messages. .TP .B -y, --yes assumes an answer 'yes' to all questions. .TP .B -f, --force forces fsck to use whole disk, not block device or mounted partition. .TP .B -p, --preen automatically repair minor corruptions on the filesystem. .TP .B -c, --cache N tunes number of nodes in the libreiser4 tree buffer cache .RS .SH REPORTING BUGS Report bugs to .SH SEE ALSO .BR debugfs.reiser4(8), .BR mkfs.reiser4(8), .BR measurefs.reiser4(8) .SH AUTHOR This manual page was written by Vitaly Fertman reiser4progs-1.0.7.orig/doc/Makefile.in0000644000175000017500000002510111134132267015537 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = man8dir = $(mandir)/man8 am__installdirs = "$(DESTDIR)$(man8dir)" NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ man_MANS = mkfs.reiser4.8 fsck.reiser4.8 debugfs.reiser4.8 measurefs.reiser4.8 EXTRA_DIST = $(man_MANS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man8: $(man8_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)" @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 8*) ;; \ *) ext='8' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ done uninstall-man8: @$(NORMAL_UNINSTALL) @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 8*) ;; \ *) ext='8' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man8dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-man8 install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man8 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man8 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-man uninstall-man8 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/doc/Makefile.am0000644000175000017500000000015411131470543015526 0ustar fzfzman_MANS = mkfs.reiser4.8 fsck.reiser4.8 debugfs.reiser4.8 measurefs.reiser4.8 EXTRA_DIST = $(man_MANS) reiser4progs-1.0.7.orig/doc/measurefs.reiser4.80000644000175000017500000000674711131474343017151 0ustar fzfz.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH measurefs.reiser4 8 "28 Apr, 2003" reiser4progs "reiser4progs manual" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME measurefs.reiser4 \- the program for measuring reiser4 filesystem parameters (fragmentation, node packing, etc.). .SH SYNOPSIS .B measurefs.reiser4 [ options ] FILE .SH DESCRIPTION .B measurefs.reiser4 is reiser4 filesystem measure program. You can estimate reiser4 filesystem fragmentation, packingm etc. structures by using it. .SH COMMON OPTIONS .TP .B -V, --version prints program version. .TP .B -?, -h, --help prints program help. .TP .B -y, --yes assumes an answer 'yes' to all questions. .TP .B -f, --force forces measurefs to use whole disk, not block device or mounted partition. .TP .B -c, --cache N sets tree cache node number to passed value. This affects very much behavior of libreiser4. It affects speed, tree allocation, etc. .SH MEASUREMENT OPTIONS .TP .B -S, --tree-stat shows different tree statistics (node packing, internal nodes, leaves, etc) .TP .B -T, --tree-frag measures total tree fragmentation. The result is fragmentation factor - value from 0.00000 (minimal fragmentation) to 1.00000 (maximal one). Most probably, this factor may affect sequential read performance. .TP .B -D, --data-frag measures average files fragmentation. This means, that fragmentation of each file in filesystem will be measured separately and results will be averaged. The result is fragmentation factor - value from 0.00000 (minimal fragmentation) to 1.00000 (maximal one). .sp 1 Note, that for the fresh filesystem (created not very long time ago) and even fully filled by data, this value will be pretty small. .TP .B -F, --file-frag FILE measures fragmentation of the specified file. The result is fragmentation factor - value from 0.00000 (minimal fragmentation) to 1.00000 (maximal one). Note, that fragmentation of a small file (depends of used tail policy), which consists of tail items, is not very reliable value. That is because, they is always afoot due to balancing. .sp 1 Examples: .sp 1 measurefs.reiser4 -F /usr/bin /dev/hda2 .br measurefs.reiser4 -F /bin/bash /dev/hda2 .TP .B -E, --show-file show file fragmentation for each file if --data-frag is specified. .SH PLUGIN OPTIONS .TP .B -p, --print-profile prints the plugin profile. This is the set of default plugins used for all parts of a filesystem -- format, nodes, files, directories, hashes, etc. If --override is specified, then prints modified plugins. .TP .B -l, --print-plugins prints all plugins libreiser4 know about. .TP .B -o, --override TYPE=PLUGIN, ... overrides the default plugin of the type "TYPE" by the plugin "PLUGIN" in the plugin profile. .sp 1 Examples: .sp 1 measurefs.reiser4 -o nodeptr=nodeptr41,hash=rupasov_hash /dev/hda2 .RS .SH REPORTING BUGS Report bugs to .SH SEE ALSO .BR debugfs.reiser4(8), .BR mkfs.reiser4(8), .BR fsck.reiser4(8) .SH AUTHOR This manual page was written by Yury Umanets reiser4progs-1.0.7.orig/doc/debugfs.reiser4.80000644000175000017500000000632011131474343016561 0ustar fzfz.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH debugfs.reiser4 8 "02 Oct, 2002" reiser4progs "reiser4progs manual" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME debugfs.reiser4 \- the program for debugging reiser4 filesystem. .SH SYNOPSIS .B debugfs.reiser4 [ options ] FILE .SH DESCRIPTION .B debugfs.reiser4 is reiser4 filesystem debug program. You can disscover the internal reiser4 filesystem structures by using it. .SH COMMON OPTIONS .TP .B -V, --version prints program version. .TP .B -?, -h, --help prints program help. .TP .B -y, --yes assumes an answer 'yes' to all questions. .TP .B -f, --force forces debugfs to use whole disk, not block device or mounted partition. .TP .B -c, --cache N sets tree cache node number to passed value. This affects very much behavior of libreiser4. It affects speed, tree allocation, etc. .SH BROWSING OPTIONS .TP .B -k, --cat browses passed file like standard cat and ls programs. .SH PRINT OPTIONS .TP .B -t, --print-tree prints the internal tree. .TP .B -b, --print-block N prints the block associated with the passed block number. .TP .B -n, --print-nodes FILE prints all nodes that the passed file lies in. .TP .B -i, --print-file prints all items that the passed file consists of. .TP .B -s, --print-super prints the both super blocks: master super block and format specific one. .TP .B -j, --print-journal prints the journal with not yet commited transactions (if any). .TP .B -a, --print-alloc prints the block allocator data. .TP .B -d, --print-oid prints the oid allocator data. .SH METADATA OPTIONS .TP .B -P, --pack-metadata fetches filesystem metadata and writes them to the standard output. .TP .B -U, --unpack-metadata reads filesystem metadata stream from the stdandard input and constructs a new filesystem based on the metadata. debugfs.reiser4 --pack-metadata | debugfs.reiser4 --unpack-metadata and then debugfs.reiser4 --pack-metadata produces a stream equivalent to the first one. .SH PLUGIN OPTIONS .TP .B -p, --print-profile prints the plugin profile. This is the set of default plugins used for all parts of a filesystem -- format, nodes, files, directories, hashes, etc. If --override is specified, then prints modified plugins. .TP .B -l, --print-plugins prints all plugins libreiser4 knows about. .TP .B -o, --override TYPE=PLUGIN, ... overrides the default plugin of the type "TYPE" by the plugin "PLUGIN" in the plugin profile. .SH Examples: .sp 1 debugfs.reiser4 -o nodeptr=nodeptr41,hash=rupasov_hash /dev/hda2 .RS .SH REPORTING BUGS Report bugs to .SH SEE ALSO .BR measurefs.reiser4(8), .BR mkfs.reiser4(8), .BR fsck.reiser4(8) .SH AUTHOR This manual page was written by Yury Umanets reiser4progs-1.0.7.orig/doc/mkfs.reiser4.80000644000175000017500000000471611131474343016111 0ustar fzfz.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH mkfs.reiser4 8 "02 Oct, 2002" reiser4progs "reiser4progs manual" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME mkfs.reiser4 \- the program for creating reiser4 filesystem. .SH SYNOPSIS .B mkfs.reiser4 [ options ] FILE1 FILE2 ... [ size[K|M|G] ] .SH DESCRIPTION .B mkfs.reiser4 is reiser4 filesystem creation program. It is based on new libreiser4 library. Since libreiser4 is fully plugin-based, we have the potential to create not just reiser4 partitions, but any filesystem or database format, which is based on balanced trees. .SH COMMON OPTIONS .TP .B -V, --version prints program version. .TP .B -?, -h, --help prints program help. .TP .B -y, --yes assumes an answer 'yes' to all questions. .TP .B -f, --force forces mkfs to use whole disk, not block device or mounted partition. .SH MKFS OPTIONS .TP .B -b, --block-size N block size to be used (architecture page size by default) .TP .B -L, --label LABEL volume label to be used .TP .B -U, --uuid UUID universally unique identifier to be used .TP .B -s, --lost-found forces mkfs to create lost+found directory. .SH PLUGIN OPTIONS .TP .B -p, --print-profile prints the plugin profile. This is the set of default plugins used for all parts of a filesystem -- format, nodes, files, directories, hashes, etc. If --override is specified, then prints modified plugins. .TP .B -l, --print-plugins prints all plugins libreiser4 know about. .TP .B -o, --override TYPE=PLUGIN, ... overrides the default plugin of the type "TYPE" by the plugin "PLUGIN" in the plugin profile. .sp 1 Examples: .sp 1 assign short key plugin to "key" field in order to create filesystem with short keys policy: .sp 1 mkfs.reiser4 -yf -o key=key_short /dev/hda2 .RS .SH REPORTING BUGS Report bugs to .SH SEE ALSO .BR measurefs.reiser4(8), .BR debugfs.reiser4(8), .BR fsck.reiser4(8) .SH AUTHOR This manual page was written by Yury Umanets reiser4progs-1.0.7.orig/BUGS0000644000175000017500000000010211131470543013401 0ustar fzfzThis file contains known but not fixed yet bugs in reiser4progs. reiser4progs-1.0.7.orig/Makefile.in0000644000175000017500000005061211134132342014771 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/reiser4progs.spec.in $(top_srcdir)/configure AUTHORS \ COPYING ChangeLog INSTALL NEWS THANKS TODO compile \ config.guess config.sub depcomp install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = reiser4progs.spec SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(aclocaldir)" aclocalDATA_INSTALL = $(INSTALL_DATA) DATA = $(aclocal_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = libaux plugin libreiser4 librepair libmisc progs include doc demos EXTRA_DIST = AUTHORS COPYING TODO NEWS BUGS README CREDITS THANKS \ reiser4progs.spec.in reiser4progs.spec libreiser4.m4 \ one_touch_install INSTALL_README CUSTOM_INSTALL_README \ depcomp run-ldconfig aclocaldir = $(datadir)/aclocal aclocal_DATA = libreiser4.m4 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ cd $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 reiser4progs.spec: $(top_builddir)/config.status $(srcdir)/reiser4progs.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool install-aclocalDATA: $(aclocal_DATA) @$(NORMAL_INSTALL) test -z "$(aclocaldir)" || $(MKDIR_P) "$(DESTDIR)$(aclocaldir)" @list='$(aclocal_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(aclocalDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(aclocaldir)/$$f'"; \ $(aclocalDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(aclocaldir)/$$f"; \ done uninstall-aclocalDATA: @$(NORMAL_UNINSTALL) @list='$(aclocal_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(aclocaldir)/$$f'"; \ rm -f "$(DESTDIR)$(aclocaldir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d $(distdir) || mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(aclocaldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-aclocalDATA install-dvi: install-dvi-recursive install-exec-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-aclocalDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-exec-am install-strip uninstall-am .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-aclocalDATA \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-exec-hook \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-aclocalDATA uninstall-am uninstall-hook define all-sources ( find ./ -name '*.[ch]' | grep -v SCCS | grep -v "Attic" | grep -v "reiser4progs" ) endef TAGS: $(all-sources) | etags - tags: $(all-sources) | xargs -- ctags -w -o TAGS install-exec-hook: ./run-ldconfig $(libdir) uninstall-hook: ./run-ldconfig $(libdir) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/TODO0000644000175000017500000000147011131470543013417 0ustar fzfzThis file is part of reiser4progs package Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by reiser4progs/COPYING. * overview sources and eliminate all not needed differences between kernel code and libreiser4. * handle holes overwriting in extent write code. * move plugin directory to libreiser4 directory. Maintain own plugin directory in librepair. Move all repair code from libreiser4/plugin/* to librepair/plugin/*. * fix unaligned access on Itanium2. * dumpfs utility. * implement tree_resize() and tree_copy(). * plugin inheritance for objects. * big digits stat data fields format change. * change balancing algorithm from recursive to task oriented one like kernel does. * online/offline resizer/repacker, manual page resizefs. * implement credits showing durring mkfs. reiser4progs-1.0.7.orig/demos/0000777000175000017500000000000011134133450014034 5ustar fzfzreiser4progs-1.0.7.orig/demos/create.c0000644000175000017500000000302711131470543015445 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. create.c -- a demo program that creates a reg file on reiser4. */ #include "busy.h" errno_t create_cmd(busy_ctx_t *ctx) { reiser4_object_t *parent, *object; char *name; aal_assert("vpf-1710", ctx != NULL); if (!ctx->in.fs) { aal_error("Fs is not openned. Wrong PATH is specified: %s.", ctx->in.path); return -EINVAL; } if (ctx->in.path[0] == 0) { aal_error("NULL path is given."); return -EINVAL; } name = ctx->in.path; parent = busy_misc_open_parent(ctx->in.fs->tree, &name); if (!parent || parent == INVAL_PTR) return -EINVAL; if (ctx->objtype == REG_OBJECT) object = reiser4_reg_create(parent, name); else if (ctx->objtype == DIR_OBJECT) object = reiser4_dir_create(parent, name); else if (ctx->objtype == SPL_OBJECT) object = reiser4_spl_create(parent, name, ctx->mode, ctx->rdev); else if (ctx->objtype == SYM_OBJECT) { if (ctx->out.path[0] == 0) goto error_free_parent; object = reiser4_sym_create(parent, name, ctx->out.path); } else if (ctx->objtype == (REG_OBJECT | OBJFLAG_CRYCOM)) { object = reiser4_ccreg_create(parent, name, NULL); } else { aal_error("Illegal object type is given (%d).", ctx->objtype); goto error_free_parent; } if (!object) { aal_error("Failed to create the file %s.", ctx->in.path); goto error_free_parent; } reiser4_object_close(object); reiser4_object_close(parent); return 0; error_free_parent: reiser4_object_close(parent); return -EIO; } reiser4progs-1.0.7.orig/demos/busy.c0000644000175000017500000003243511131470543015171 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. busy.c -- reiser4 busybox -- set of progs are used in debugging. */ #include "busy.h" #include enum test_list { T_CREATE = 0, T_MKDIR = 1, T_MKNOD = 2, T_SLINK = 3, T_LINK = 4, T_CRYCOM = 5, T_LS = 6, T_RM = 7, T_CP = 8, T_STAT = 9, T_TRUNC = 10, T_REG = 11, T_SYM = 12, T_LAST }; busy_cmd_t tests[] = { [T_CREATE] = { .name = "create", .options = "PATH", .handler = create_cmd, .ops_num = 1, .info = "Creates a regular file on reiser4.", }, [T_MKDIR] = { .name = "mkdir", .options = "PATH", .handler = create_cmd, .ops_num = 1, .info = "Creates a directory on reiser4.", }, [T_MKNOD] = { .name = "mknod", .options = "PATH [char/fifo/block/sock] MAJOR MINOR", .handler = create_cmd, .ops_num = 4, .info = "Creates a device file on reiser4.", }, [T_SLINK] = { .name = "ln-s", .options = "PATH link_name", .handler = create_cmd, .ops_num = 2, .info = "Creates a symlink on reiser4.", }, [T_LINK] = { .name = "ln", .options = "PATH link_name", .handler = ln_cmd, .ops_num = 2, .info = "Creates a hard link on reiser4.", }, [T_CRYCOM] = { .name = "crycom", .options = "PATH", .handler = create_cmd, .ops_num = 1, .info = "Creates a crypto-compression regular file on reiser4.", }, [T_LS] = { .name = "ls", .options = "PATH", .handler = ls_cmd, .ops_num = 1, .info = "Lists a directory.", }, [T_RM] = { .name = "rm", .options = "PATH", .handler = rm_cmd, .ops_num = 1, .info = "Removes a file.", }, [T_CP] = { .name = "cp", .options = "PATH1 PATH2 in_offset out_offset count blk_size", .handler = cp_cmd, .ops_num = 6, .info = "Copies blocks of bytes from " " to \n\tskipping bytes, " "seeking on bytes.\n\t, " " and could be given -1, " "that is,\n\tstart, end, unlimited correspondingly.", }, [T_STAT] = { .name = "stat", .options = "PATH", .handler = stat_cmd, .ops_num = 1, .info = "Stats a file.", }, [T_TRUNC] = { .name = "trunc", .options = "PATH size", .handler = trunc_cmd, .ops_num = 2, .info = "Truncates a file.", }, [T_REG] = { .name = "reg", .options = "PATH", .handler = reg_test, .ops_num = 1, .info = "Just a test. Creates some amount of files.", }, [T_SYM] = { .name = "sym", .options = "PATH", .handler = sym_test, .ops_num = 1, .info = "Just a test. Creates some amount of symlinks.", } }; static reiser4_fs_t *busy_fs_open(char *name) { aal_device_t *device; reiser4_fs_t *fs; if (!(device = aal_device_open(&file_ops, name, 512, O_RDWR))) { aal_error("Can't open device %s.", name); return NULL; } if (!(fs = reiser4_fs_open(device, 1))) { aal_error("Can't open filesystem on %s.", name); goto error_close_device; } if (!(fs->journal = reiser4_journal_open(fs, device))) { aal_error("Failed to open the journal on %s.", name); goto error_close_fs; } fs->tree->mpc_func = misc_mpressure_detect; if (reiser4_journal_replay(fs->journal)) { aal_error("Failed to replay the journal on %s.", name); goto error_close_journal; } reiser4_journal_close(fs->journal); fs->journal = NULL; reiser4_fs_sync(fs); return fs; error_close_journal: reiser4_journal_close(fs->journal); error_close_fs: reiser4_fs_close(fs); error_close_device: aal_device_close(device); return NULL; } static void busy_fs_close(reiser4_fs_t *fs) { aal_device_t *device; if (!fs) return; device = fs->device; reiser4_fs_close(fs); aal_device_close(device); } static void busy_print_usage(void) { unsigned int i; fprintf(stderr, "\nUsage: busy COMMAND ARGS\n"); fprintf(stderr, "Commands with args: \n"); for (i = 0; i < T_LAST; i++) { fprintf(stderr, "\t%s %s\n", tests[i].name, tests[i].options); fprintf(stderr, "\t%s\n\n", tests[i].info); } fprintf(stderr, "\nPATH = {device:path || ^path}\n"); fprintf(stderr, "when working with reiser4 fs on 'device' and others " "respectively.\nFor others '^' is mandatory.\n\n"); } static int busy_get_testno(char *name) { unsigned int i; for (i = 0; i < T_LAST; i++) { if (aal_strlen(name) != aal_strlen(tests[i].name)) continue; if (!aal_memcmp(name , tests[i].name, aal_strlen(tests[i].name))) { return i; } } return -1; } static errno_t busy_init(void) { int i; for (i = 0; i < EXCEPTION_TYPE_LAST; i++) misc_exception_set_stream(i, stderr); if (libreiser4_init()) { aal_error("Can't initialize libreiser4."); return 0x80; } return 0; } errno_t sym_test(busy_ctx_t *ctx) { reiser4_object_t *dir0, *dir1, *dir2, *sym0, *sym1, *reg0; reiser4_fs_t *fs = ctx->in.fs; char *path = ctx->in.path; char name[256]; if (!(dir0 = reiser4_semantic_open(fs->tree, path, NULL, 1))) { aal_error("Can't open dir %s.", path); return -EIO; } if (!(dir1 = reiser4_dir_create(dir0, "test1 dir1"))) { aal_error("Failed to create a dir 'test1 dir1'."); return -EIO; } if (!(dir2 = reiser4_dir_create(dir0, "test1 dir2"))) { aal_error("Failed to create a dir 'test1 dir2'."); return -EIO; } if (!(reg0 = reiser4_reg_create(dir1, "test1 file0"))) { aal_error("Failed to create a reg 'test1 file0'."); return -EIO; } if (!(sym0 = reiser4_sym_create(dir2, "test1 sym0", "../test1 dir1/test1 file0"))) { aal_error("Failed to create a sym 'test1 sym0'."); return -EIO; } aal_snprintf(name, 256, "%s/test1 dir1/test1 file0", path); if (!(sym1 = reiser4_sym_create(dir2, "test1 sym1", name))) { aal_error("Failed to create a sym 'test1 sym1'."); return -EIO; } reiser4_object_close(dir0); reiser4_object_close(dir1); reiser4_object_close(dir2); reiser4_object_close(reg0); reiser4_object_close(sym0); reiser4_object_close(sym1); aal_snprintf(name, 256, "%s/test1 dir2/test1 sym0", path); if (!(sym0 = reiser4_semantic_open(fs->tree, name, NULL, 1))) { aal_error("Failed to open a sym '%s'.", name); return -EIO; } aal_snprintf(name, 256, "%s/test1 dir2/test1 sym1", path); if (!(sym1 = reiser4_semantic_open(fs->tree, name, NULL, 1))) { aal_error("Failed to create a sym '%s'.", name); return -EIO; } reiser4_object_close(sym0); reiser4_object_close(sym1); reiser4_tree_compress(fs->tree); return 0; } errno_t reg_test(busy_ctx_t *ctx) { reiser4_fs_t *fs = ctx->in.fs; reiser4_object_t *dir; char *path = ctx->in.path; int i, k; char name[6][256]; //FILE *file; reiser4_object_t *object; entry_hint_t entry; // misc_param_override("hash=deg_hash"); // misc_param_override("policy=tails"); if (!(dir = reiser4_semantic_open(fs->tree, path, NULL, 1))) { aal_error("Can't open dir %s.", path); return -EINVAL; } srandom(time(0)); // file = fopen("/home/umka/tmp/out", "r"); // while (!feof(file)) { for (i = 0; i < 1000; i++) { // int j, count; // char part[256]; uint64_t size[3] = {51200, 0, 1024}; aal_snprintf(name[0], 256, "test0 file name%d", i/*random()*/); aal_snprintf(name[1], 256, "test0 file name%d.c", i/*random()*/); aal_snprintf(name[2], 256, "test0 file name%d.o", i/*random()*/); /* aal_snprintf(name[3], 256, "test0 very very long file name%d", i); aal_snprintf(name[4], 256, "test0 very very long file name%d.c", i); aal_snprintf(name[5], 256, "test0 very very long file name%d.o", i); // fscanf(file, "%s %s\n", name, part); // strcat(name, " "); // strcat(name, part); // printf("%s\n", name); */ for (k = 0; k < 3; k++) { int count, j; if (!(object = reiser4_reg_create(dir, name[k]))) continue; if (reiser4_object_write(object, NULL, size[k]) < 0) { aal_error("Can't write data to file %s.", name[k]); break; } count = 1000; for (j = 0; j < count; j++) { /* reiser4_object_seek(object, reiser4_object_offset(object) + 8193);*/ if (reiser4_object_write(object, name[k], aal_strlen(name[k])) < 0) { aal_error("Can't write data " "to file %s.", name[k]); break; } } if (object) { reiser4_object_close(object); } else { aal_error("Can't create an object '%s'.", name[k]); } /* Get the second file and write there some more. */ if (reiser4_object_lookup(dir, name[k], &entry) != PRESENT) { aal_error("Can't find just created object %s.", name[1]); break; } if (!(object = reiser4_object_obtain(fs->tree, dir, &entry.object))) { aal_error("Can't open the object %s.", name[1]); break; } if (reiser4_object_write(object, NULL, 1024) < 0) { aal_error("Can't write data to file %s.", name[k]); break; } reiser4_object_close(object); } } reiser4_object_close(dir); reiser4_tree_compress(fs->tree); return 0; } static errno_t busy_path_parse(busy_target_t *target, char *path) { int i, len; aal_assert("vpf-1708", target != NULL); aal_assert("vpf-1709", path != NULL); i = 0; len = aal_strlen(path); if (path[0] != '^') { for (i = 0; i < 256 && i < len; i++) { if (path[i] == ':') break; target->path[i] = path[i]; } if (i == len || path[i] != ':') { aal_error("Wrong PATH format detected."); return -EINVAL; } target->path[i] = 0; if (!(target->fs = busy_fs_open(target->path))) return -EINVAL; path += i + 1; } else { path++; } target->path[0] = 0; aal_memset(target->path, 0, PATH_MAXLEN); aal_strncpy(target->path, path, PATH_MAXLEN - 1); return 0; } static void busy_ctx_fini(busy_ctx_t *ctx) { if (!ctx) return; if (ctx->in.fs) busy_fs_close(ctx->in.fs); if (ctx->out.fs) busy_fs_close(ctx->out.fs); } static int busy_set_objtype(int testno) { if (testno == T_CREATE) return REG_OBJECT; if (testno == T_MKDIR) return DIR_OBJECT; if (testno == T_MKNOD) return SPL_OBJECT; if (testno == T_SYM) return SYM_OBJECT; if (testno == T_CRYCOM) { return REG_OBJECT | OBJFLAG_CRYCOM; } return -1; } static errno_t busy_ctx_init(busy_ctx_t *ctx, int count, char *params[]) { aal_assert("vpf-1707", ctx != NULL); aal_memset(ctx, 0, sizeof(*ctx)); if (count < 3) { busy_print_usage(); return 0x10; } /* Get the test number. */ if ((ctx->testno = busy_get_testno(params[1])) == -1) { aal_error("Cannot find test '%s'.", params[1]); return 0x10; } if (!tests[ctx->testno].handler) { aal_error("The test '%s' is not implemented yet.", params[1]); return 0x10; } if (tests[ctx->testno].ops_num + 2 != count) { aal_error("Wrong parameters are given to the test '%s'.", params[1]); return 0x10; } /* First parameter should be a PATH on reiser4. */ if (busy_path_parse(&ctx->in, params[2])) return 0x8; if (ctx->testno == T_CP) { /* The second parameter is also PATH. */ if (busy_path_parse(&ctx->out, params[3])) { busy_ctx_fini(ctx); return 0x8; } } if (ctx->testno == T_SLINK || ctx->testno == T_LINK) { /* The second parameter is NAME. */ if (busy_path_parse(&ctx->out, params[3])) { busy_ctx_fini(ctx); return 0x8; } } ctx->objtype = busy_set_objtype(ctx->testno); if (ctx->testno == T_MKNOD) { long long num; /* Parse Special device type & rdev. */ if (!aal_strcmp(params[3], "char")) ctx->mode |= S_IFCHR; else if (!aal_strcmp(params[3], "fifo")) ctx->mode |= S_IFIFO; else if (!aal_strcmp(params[3], "block")) ctx->mode |= S_IFBLK; else if (!aal_strcmp(params[3], "sock")) ctx->mode |= S_IFSOCK; else { aal_error("The special file type '%s' is not correct.", params[3]); return 0x10; } if ((num = misc_str2long(params[4], 0)) == INVAL_DIG) { aal_error("Invalid major is specified: '%s'.", params[4]); return 0x10; } ctx->rdev = num << 8; if ((num = misc_str2long(params[5], 0)) == INVAL_DIG) { aal_error("Invalid MINOR is specified: '%s'.", params[5]); return 0x10; } ctx->rdev |= num; } if (ctx->testno == T_CP) { /* Parse numbers given to the test "cp". */ ctx->in.offset = misc_str2long(params[4], 0); ctx->out.offset = misc_str2long(params[5], 0); ctx->count = misc_str2long(params[6], 0); ctx->blksize = misc_str2long(params[7], 0); if (ctx->in.offset == INVAL_DIG || ctx->in.offset < 0) { aal_error("Invalid input offset is specified: '%s'.", params[4]); return 0x10; } if (ctx->out.offset == INVAL_DIG || ctx->out.offset < 0) { aal_error("Invalid output offset is specified: '%s'.", params[5]); return 0x10; } if (ctx->count == INVAL_DIG) { aal_error("Invalid block count is specified: '%s'.", params[6]); return 0x10; } if (ctx->blksize == INVAL_DIG || ctx->blksize <= 0) { aal_error("Invalid block size is specified: '%s'.", params[7]); return 0x10; } } if (ctx->testno == T_TRUNC) { ctx->count = misc_str2long(params[3], 0); if (ctx->count == INVAL_DIG || ctx->count < 0) { aal_error("Invalid size is specified: '%s'.", params[4]); return 0x10; } } return 0; } int main(int argc, char *argv[]) { busy_ctx_t ctx; errno_t res; if (busy_init()) return 0x80; aal_memset(&ctx, 0, sizeof(ctx)); if ((res = busy_ctx_init(&ctx, argc, argv))) { libreiser4_fini(); return res; } res = tests[ctx.testno].handler(&ctx); busy_ctx_fini(&ctx); libreiser4_fini(); return res; } reiser4progs-1.0.7.orig/demos/ls.c0000644000175000017500000000203011131470543014611 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ls.c -- a demo program that works similar like to the standard ls utility. */ #include "busy.h" errno_t ls_cmd(busy_ctx_t *ctx) { reiser4_object_t *object; entry_hint_t entry; aal_assert("vpf-1710", ctx != NULL); if (!ctx->in.fs) { aal_error("Fs is not openned. Wrong PAth is specified: %s.", ctx->in.path); return -EINVAL; } if (ctx->in.path[0] == 0) { aal_error("NULL path is given."); return -EINVAL; } if (!(object = reiser4_semantic_open(ctx->in.fs->tree, ctx->in.path, NULL, 1))) { aal_error("Can't open file %s.", ctx->in.path); return -EIO; } if (reiser4_psobj(object)->p.id.group == DIR_OBJECT) { while (reiser4_object_readdir(object, &entry) > 0) { printf("[%s] %s\n", reiser4_print_key(&entry.object), entry.name); } } else { printf("[%s] %s\n", reiser4_print_key(&object->info.object), ctx->in.path); } reiser4_object_close(object); return 0; } reiser4progs-1.0.7.orig/demos/Makefile.in0000644000175000017500000006646711134132267016125 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = busy$(EXEEXT) subdir = demos DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = PROGRAMS = $(noinst_PROGRAMS) am_busy_OBJECTS = busy-misc.$(OBJEXT) busy-ls.$(OBJEXT) \ busy-stat.$(OBJEXT) busy-create.$(OBJEXT) busy-ln.$(OBJEXT) \ busy-rm.$(OBJEXT) busy-cp.$(OBJEXT) busy-trunc.$(OBJEXT) \ busy-busy.$(OBJEXT) busy_OBJECTS = $(am_busy_OBJECTS) am__DEPENDENCIES_1 = busy_DEPENDENCIES = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la $(am__DEPENDENCIES_1) busy_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(busy_CFLAGS) $(CFLAGS) $(busy_LDFLAGS) \ $(LDFLAGS) -o $@ SCRIPTS = $(noinst_SCRIPTS) DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(busy_SOURCES) DIST_SOURCES = $(busy_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_SCRIPTS = detect INCLUDES = -I$(top_srcdir)/include busy_SOURCES = misc.c ls.c stat.c create.c ln.c rm.c cp.c trunc.c busy.c busy.h busy_LDFLAGS = @PROGS_LDFLAGS@ busy_CFLAGS = @GENERIC_CFLAGS@ busy_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la \ $(PROGS_LIBS) EXTRA_DIST = $(noinst_SCRIPTS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu demos/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu demos/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done busy$(EXEEXT): $(busy_OBJECTS) $(busy_DEPENDENCIES) @rm -f busy$(EXEEXT) $(busy_LINK) $(busy_OBJECTS) $(busy_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-busy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-cp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-create.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-ln.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-ls.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-rm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/busy-trunc.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< busy-misc.o: misc.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-misc.o -MD -MP -MF $(DEPDIR)/busy-misc.Tpo -c -o busy-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-misc.Tpo $(DEPDIR)/busy-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc.c' object='busy-misc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c busy-misc.obj: misc.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-misc.obj -MD -MP -MF $(DEPDIR)/busy-misc.Tpo -c -o busy-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-misc.Tpo $(DEPDIR)/busy-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc.c' object='busy-misc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` busy-ls.o: ls.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-ls.o -MD -MP -MF $(DEPDIR)/busy-ls.Tpo -c -o busy-ls.o `test -f 'ls.c' || echo '$(srcdir)/'`ls.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-ls.Tpo $(DEPDIR)/busy-ls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ls.c' object='busy-ls.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-ls.o `test -f 'ls.c' || echo '$(srcdir)/'`ls.c busy-ls.obj: ls.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-ls.obj -MD -MP -MF $(DEPDIR)/busy-ls.Tpo -c -o busy-ls.obj `if test -f 'ls.c'; then $(CYGPATH_W) 'ls.c'; else $(CYGPATH_W) '$(srcdir)/ls.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-ls.Tpo $(DEPDIR)/busy-ls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ls.c' object='busy-ls.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-ls.obj `if test -f 'ls.c'; then $(CYGPATH_W) 'ls.c'; else $(CYGPATH_W) '$(srcdir)/ls.c'; fi` busy-stat.o: stat.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-stat.o -MD -MP -MF $(DEPDIR)/busy-stat.Tpo -c -o busy-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-stat.Tpo $(DEPDIR)/busy-stat.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stat.c' object='busy-stat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c busy-stat.obj: stat.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-stat.obj -MD -MP -MF $(DEPDIR)/busy-stat.Tpo -c -o busy-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-stat.Tpo $(DEPDIR)/busy-stat.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stat.c' object='busy-stat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` busy-create.o: create.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-create.o -MD -MP -MF $(DEPDIR)/busy-create.Tpo -c -o busy-create.o `test -f 'create.c' || echo '$(srcdir)/'`create.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-create.Tpo $(DEPDIR)/busy-create.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='create.c' object='busy-create.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-create.o `test -f 'create.c' || echo '$(srcdir)/'`create.c busy-create.obj: create.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-create.obj -MD -MP -MF $(DEPDIR)/busy-create.Tpo -c -o busy-create.obj `if test -f 'create.c'; then $(CYGPATH_W) 'create.c'; else $(CYGPATH_W) '$(srcdir)/create.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-create.Tpo $(DEPDIR)/busy-create.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='create.c' object='busy-create.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-create.obj `if test -f 'create.c'; then $(CYGPATH_W) 'create.c'; else $(CYGPATH_W) '$(srcdir)/create.c'; fi` busy-ln.o: ln.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-ln.o -MD -MP -MF $(DEPDIR)/busy-ln.Tpo -c -o busy-ln.o `test -f 'ln.c' || echo '$(srcdir)/'`ln.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-ln.Tpo $(DEPDIR)/busy-ln.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ln.c' object='busy-ln.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-ln.o `test -f 'ln.c' || echo '$(srcdir)/'`ln.c busy-ln.obj: ln.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-ln.obj -MD -MP -MF $(DEPDIR)/busy-ln.Tpo -c -o busy-ln.obj `if test -f 'ln.c'; then $(CYGPATH_W) 'ln.c'; else $(CYGPATH_W) '$(srcdir)/ln.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-ln.Tpo $(DEPDIR)/busy-ln.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ln.c' object='busy-ln.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-ln.obj `if test -f 'ln.c'; then $(CYGPATH_W) 'ln.c'; else $(CYGPATH_W) '$(srcdir)/ln.c'; fi` busy-rm.o: rm.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-rm.o -MD -MP -MF $(DEPDIR)/busy-rm.Tpo -c -o busy-rm.o `test -f 'rm.c' || echo '$(srcdir)/'`rm.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-rm.Tpo $(DEPDIR)/busy-rm.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rm.c' object='busy-rm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-rm.o `test -f 'rm.c' || echo '$(srcdir)/'`rm.c busy-rm.obj: rm.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-rm.obj -MD -MP -MF $(DEPDIR)/busy-rm.Tpo -c -o busy-rm.obj `if test -f 'rm.c'; then $(CYGPATH_W) 'rm.c'; else $(CYGPATH_W) '$(srcdir)/rm.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-rm.Tpo $(DEPDIR)/busy-rm.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rm.c' object='busy-rm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-rm.obj `if test -f 'rm.c'; then $(CYGPATH_W) 'rm.c'; else $(CYGPATH_W) '$(srcdir)/rm.c'; fi` busy-cp.o: cp.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-cp.o -MD -MP -MF $(DEPDIR)/busy-cp.Tpo -c -o busy-cp.o `test -f 'cp.c' || echo '$(srcdir)/'`cp.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-cp.Tpo $(DEPDIR)/busy-cp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cp.c' object='busy-cp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-cp.o `test -f 'cp.c' || echo '$(srcdir)/'`cp.c busy-cp.obj: cp.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-cp.obj -MD -MP -MF $(DEPDIR)/busy-cp.Tpo -c -o busy-cp.obj `if test -f 'cp.c'; then $(CYGPATH_W) 'cp.c'; else $(CYGPATH_W) '$(srcdir)/cp.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-cp.Tpo $(DEPDIR)/busy-cp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cp.c' object='busy-cp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-cp.obj `if test -f 'cp.c'; then $(CYGPATH_W) 'cp.c'; else $(CYGPATH_W) '$(srcdir)/cp.c'; fi` busy-trunc.o: trunc.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-trunc.o -MD -MP -MF $(DEPDIR)/busy-trunc.Tpo -c -o busy-trunc.o `test -f 'trunc.c' || echo '$(srcdir)/'`trunc.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-trunc.Tpo $(DEPDIR)/busy-trunc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trunc.c' object='busy-trunc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-trunc.o `test -f 'trunc.c' || echo '$(srcdir)/'`trunc.c busy-trunc.obj: trunc.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-trunc.obj -MD -MP -MF $(DEPDIR)/busy-trunc.Tpo -c -o busy-trunc.obj `if test -f 'trunc.c'; then $(CYGPATH_W) 'trunc.c'; else $(CYGPATH_W) '$(srcdir)/trunc.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-trunc.Tpo $(DEPDIR)/busy-trunc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trunc.c' object='busy-trunc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-trunc.obj `if test -f 'trunc.c'; then $(CYGPATH_W) 'trunc.c'; else $(CYGPATH_W) '$(srcdir)/trunc.c'; fi` busy-busy.o: busy.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-busy.o -MD -MP -MF $(DEPDIR)/busy-busy.Tpo -c -o busy-busy.o `test -f 'busy.c' || echo '$(srcdir)/'`busy.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-busy.Tpo $(DEPDIR)/busy-busy.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='busy.c' object='busy-busy.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-busy.o `test -f 'busy.c' || echo '$(srcdir)/'`busy.c busy-busy.obj: busy.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -MT busy-busy.obj -MD -MP -MF $(DEPDIR)/busy-busy.Tpo -c -o busy-busy.obj `if test -f 'busy.c'; then $(CYGPATH_W) 'busy.c'; else $(CYGPATH_W) '$(srcdir)/busy.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/busy-busy.Tpo $(DEPDIR)/busy-busy.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='busy.c' object='busy-busy.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busy_CFLAGS) $(CFLAGS) -c -o busy-busy.obj `if test -f 'busy.c'; then $(CYGPATH_W) 'busy.c'; else $(CYGPATH_W) '$(srcdir)/busy.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(SCRIPTS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/demos/detect0000644000175000017500000000235711131470543015236 0ustar fzfz#!/bin/bash # # reiserfs probing script # Copyright (C) 2001, 2002, 2003 by Hans Reiser, licencing governed by # reiser4progs/COPYING. reiserx_probe() { dev=$1 for block_off in 16 2; do super_off=$(expr $block_off \* 4096) magic_off=$(expr $super_off + 52) magic=$(dd if=$dev bs=1 count=10 skip=$magic_off 2> /dev/null) [ ! $? -eq 0 ] && { echo "Can't read $1. Probably permissions denied." return 1 } magic=$(echo $magic | strings) if [ ! $? -eq 0 ]; then echo "Couldn't open device $dev" return 0 fi test x$magic = xReIsErFs && { echo "reiser 3.5" return 0 } test x$magic = xReIsEr2Fs && { echo "reiser 3.6 (standard journal)" return 0 } test x$magic = xReIsEr3Fs && { echo "reiser 3.6 (relocated journal)" return 0 } magic=$(dd if=$dev bs=1 count=10 skip=$super_off 2> /dev/null) magic=$(echo $magic | strings) test x$magic = xReIsEr4 && { echo "reiser 4.0" return 0 } done } [ -z $1 ] && { echo "Usage: $0 FILE" exit 1 } if [ ! -b $1 -a ! -r $1 ]; then echo "Specified device isn't a block device and not a file" exit 1 fi if [ ! -x /bin/dd ]; then echo "Can't find \"dd\" program" exit 1 fi reiserx_probe $1 exit 0 reiser4progs-1.0.7.orig/demos/trunc.c0000644000175000017500000000217311131470543015336 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. trunc.c -- a demo program that truncates the file to the given size. */ #include "busy.h" errno_t trunc_cmd(busy_ctx_t *ctx) { reiser4_object_t *object; aal_assert("vpf-1712", ctx != NULL); if (!ctx->in.fs) { aal_error("Fs is not openned. Wrong PAth is specified: %s.", ctx->in.path); return -EINVAL; } if (ctx->in.path[0] == 0) { aal_error("NULL path is given."); return -EINVAL; } if (!(object = reiser4_semantic_open(ctx->in.fs->tree, ctx->in.path, NULL, 1))) { aal_error("Can't open file %s.", ctx->in.path); return -EIO; } if (reiser4_psobj(object)->p.id.group != REG_OBJECT) { aal_error("The object %s is not a regular file.", ctx->in.path); goto error_close_object; } /* Truncate the object. */ if (reiser4_object_truncate(object, ctx->count)) { aal_error("Can't truncate object %s to %lld bytes.", ctx->in.path, ctx->count); goto error_close_object; } reiser4_object_close(object); return 0; error_close_object: reiser4_object_close(object); return -EIO; } reiser4progs-1.0.7.orig/demos/ln.c0000644000175000017500000000331011131470543014606 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ln.c -- a demo program that works similar to the standard ln utility. */ #include "busy.h" errno_t ln_cmd(busy_ctx_t *ctx) { reiser4_object_t *parent, *object; reiser4_object_plug_t *plug; entry_hint_t entry; lookup_t res; char *name; aal_assert("vpf-1710", ctx != NULL); if (!ctx->in.fs) { aal_error("Fs is not openned. Wrong PAth is specified: %s.", ctx->in.path); return -EINVAL; } if (ctx->in.path[0] == 0) { aal_error("NULL path is given."); return -EINVAL; } if (ctx->out.path[0] == 0) { aal_error("NULL link name is given."); return -EINVAL; } if (!(object = reiser4_semantic_open(ctx->in.fs->tree, ctx->in.path, NULL, 1))) { aal_error("Failed to open the file %s.", ctx->in.path); return -EINVAL; } name = ctx->out.path; parent = busy_misc_open_parent(ctx->in.fs->tree, &name); if (!parent || parent == INVAL_PTR) goto error_object_close; /* Looking up for @entry in current directory */ plug = reiser4_psobj(parent); if ((res = plugcall(plug, lookup, parent, name, &entry)) < 0) goto error_close_parent; if (res == PRESENT) { aal_error("The file %s already exists.", ctx->out.path); goto error_close_parent; } if (reiser4_object_entry_prep(ctx->in.fs->tree, parent, &entry, name)) { goto error_close_parent; } if (reiser4_object_link(parent, object, &entry)) { aal_error("Failed to link object."); goto error_close_parent; } reiser4_object_close(object); reiser4_object_close(parent); return 0; error_close_parent: reiser4_object_close(parent); error_object_close: reiser4_object_close(object); return -EIO; } reiser4progs-1.0.7.orig/demos/busy.h0000644000175000017500000000260111131470543015166 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. busy.h -- reiser4 busybox declarations. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include #define PATH_MAXLEN 4096 typedef struct busy_target { reiser4_fs_t *fs; char path[PATH_MAXLEN]; long long int offset; } busy_target_t; #define OBJFLAG_CRYCOM (1 << 16) typedef struct busy_ctx { int testno; busy_target_t in; busy_target_t out; int objtype; uint32_t mode; uint64_t rdev; int64_t count; uint32_t blksize; } busy_ctx_t; typedef errno_t (*cmd_handler_t) (busy_ctx_t *ctx); typedef struct busy_cmd { char *name; char *options; cmd_handler_t handler; int ops_num; char *info; } busy_cmd_t; extern errno_t reg_test(busy_ctx_t *ctx); extern errno_t read_test(busy_ctx_t *ctx); extern errno_t sym_test(busy_ctx_t *ctx); extern errno_t ls_cmd(busy_ctx_t *ctx); extern errno_t stat_cmd(busy_ctx_t *ctx); extern errno_t create_cmd(busy_ctx_t *ctx); extern errno_t ln_cmd(busy_ctx_t *ctx); extern errno_t rm_cmd(busy_ctx_t *ctx); extern errno_t cp_cmd(busy_ctx_t *ctx); extern errno_t trunc_cmd(busy_ctx_t *ctx); extern reiser4_object_t *busy_misc_open_parent(reiser4_tree_t *tree, char **path); reiser4progs-1.0.7.orig/demos/rm.c0000644000175000017500000000261311131470543014620 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. rm.c -- a demo program that works similar to the standard rm utility. */ #include "busy.h" errno_t rm_cmd(busy_ctx_t *ctx) { reiser4_object_t *parent, *object; char *name; aal_assert("vpf-1712", ctx != NULL); if (!ctx->in.fs) { aal_error("Fs is not openned. Wrong PAth is specified: %s.", ctx->in.path); return -EINVAL; } if (ctx->in.path[0] == 0) { aal_error("NULL path is given."); return -EINVAL; } name = ctx->in.path; if (!(parent = busy_misc_open_parent(ctx->in.fs->tree, &name))) return -EINVAL; if (!(object = reiser4_semantic_open(ctx->in.fs->tree, ctx->in.path, NULL, 1))) { aal_error("Can't open file %s.", ctx->in.path); goto error_close_parent; } /* Unlink the object. */ if (reiser4_object_unlink(parent, name)) { aal_error("Can't unlink %s.", ctx->in.path); goto error_close_object; } if (!plugcall(reiser4_psobj(object), linked, object)) { /* There are no other link to this object, destroy it. */ if (reiser4_object_clobber(object)) { aal_error("Can't to erase the object %s.", ctx->in.path); goto error_close_object; } } reiser4_object_close(object); reiser4_object_close(parent); return 0; error_close_object: reiser4_object_close(object); error_close_parent: reiser4_object_close(parent); return -EIO; } reiser4progs-1.0.7.orig/demos/cp.c0000644000175000017500000001042011131470543014577 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. cp.c -- a demo program that works similar to the standard dd utility. */ #include "busy.h" errno_t cp_cmd(busy_ctx_t *ctx) { reiser4_object_t *src_obj, *dst_obj; FILE *src_file, *dst_file; int64_t rbytes, wbytes; uint64_t count; errno_t res; char *buf; if (ctx->in.path[0] == 0 || ctx->out.path[0] == 0) { aal_error("NULL path is given."); return -EINVAL; } /* Open source file. */ if (ctx->in.fs) { if (!(src_obj = reiser4_semantic_open(ctx->in.fs->tree, ctx->in.path, NULL, 1))) { aal_error("Can't open file %s.", ctx->in.path); return -EIO; } src_file = NULL; } else { if (!(src_file = fopen(ctx->in.path, "r"))) { aal_error("Can't open file %s.", ctx->in.path); return -EIO; } src_obj = NULL; } /* Open destination file. */ if (ctx->out.fs) { if (!(dst_obj = reiser4_semantic_try_open(ctx->out.fs->tree, ctx->out.path, NULL, 1))) { char *name = ctx->out.path; reiser4_object_t *parent; parent = busy_misc_open_parent(ctx->out.fs->tree, &name); if (!parent || parent == INVAL_PTR) goto error_src_close; dst_obj = reiser4_reg_create(parent, name); if (!dst_obj) { aal_error("Failed to create file %s.", ctx->out.path); goto error_src_close; } } dst_file = NULL; } else { if (!(dst_file = fopen(ctx->out.path, "w+"))) { aal_error("Can't open file %s.", ctx->out.path); goto error_src_close; } dst_obj = NULL; } if (src_obj && reiser4_psobj(src_obj)->p.id.group != REG_OBJECT) { aal_error("File %s is not a regular file.", ctx->in.path); goto error_dst_close; } if (dst_obj && reiser4_psobj(dst_obj)->p.id.group != REG_OBJECT) { aal_error("File %s is not a regular file.", ctx->out.path); goto error_dst_close; } if (src_file) { struct stat st; if (fstat(fileno(src_file), &st)) { aal_error("Can't stat the file %s.", ctx->in.path); goto error_dst_close; } if (!S_ISREG(st.st_mode)) { aal_error("File %s is not a regular file.", ctx->in.path); goto error_dst_close; } } if (dst_file) { struct stat st; if (fstat(fileno(dst_file), &st)) { aal_error("Can't stat the file %s.", ctx->out.path); goto error_dst_close; } if (!S_ISREG(st.st_mode)) { aal_error("File %s is directory.", ctx->out.path); goto error_dst_close; } } /* Seek the source file. */ if (ctx->in.offset) { res = src_obj ? reiser4_object_seek(src_obj, ctx->in.offset): fseek(src_file, ctx->in.offset, SEEK_SET); if (res) { aal_error("Can't seek to %lld bytes in file %s.", ctx->in.offset, ctx->in.path); goto error_dst_close; } } /* Seek the destination file. */ if (ctx->out.offset) { res = dst_obj ? reiser4_object_seek(dst_obj, ctx->out.offset): fseek(dst_file, ctx->out.offset, SEEK_SET); if (res) { aal_error("Can't seek to %lld bytes in file %s.", ctx->out.offset, ctx->out.path); goto error_dst_close; } } /* Alloc the data buffer. */ if (!(buf = aal_malloc(ctx->blksize))) { aal_error("Can't allocate %d bytes for the buffer.", ctx->blksize); goto error_dst_close; } /* Do copying. */ for (count = ctx->count; count > 0; count--) { /* Read. */ rbytes = src_obj ? reiser4_object_read(src_obj, buf, ctx->blksize) : (int64_t)fread(buf, 1, ctx->blksize, src_file); if (rbytes < 0) { aal_error("Read of %llu-th by %u bytes failed.", ctx->count - count, ctx->blksize); goto error_free_buf; } if (rbytes == 0) break; /* Write. */ wbytes = dst_obj ? reiser4_object_write(dst_obj, buf, rbytes): (int64_t)fwrite(buf, 1, rbytes, dst_file); if (wbytes < rbytes) { aal_error("Write of the %u byte block #%llu failed.", ctx->blksize, ctx->count - count); goto error_free_buf; } } aal_free(buf); if (dst_obj) reiser4_object_close(dst_obj); if (dst_file) fclose(dst_file); if (src_obj) reiser4_object_close(src_obj); if (src_file) fclose(src_file); return 0; error_free_buf: aal_free(buf); error_dst_close: if (dst_obj) reiser4_object_close(dst_obj); if (dst_file) fclose(dst_file); error_src_close: if (src_obj) reiser4_object_close(src_obj); if (src_file) fclose(src_file); return -EIO; } reiser4progs-1.0.7.orig/demos/stat.c0000644000175000017500000000162511131470543015157 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. stat.c -- a demo program that works similar to the standard stat utility. */ #include "busy.h" errno_t stat_cmd(busy_ctx_t *ctx) { reiser4_object_t *object; aal_stream_t stream; aal_assert("vpf-1710", ctx != NULL); if (!ctx->in.fs) { aal_error("Fs is not openned. Wrong PAth is specified: %s.", ctx->in.path); return -EINVAL; } if (ctx->in.path[0] == 0) { aal_error("NULL path is given."); return -EINVAL; } if (!(object = reiser4_semantic_open(ctx->in.fs->tree, ctx->in.path, NULL, 1))) { aal_error("Can't open file %s.", ctx->in.path); return -EIO; } aal_stream_init(&stream, NULL, &memory_stream); objcall(&object->info.start, debug->print, &stream, 0); printf("%s\n", (char *)stream.entity); aal_stream_fini(&stream); reiser4_object_close(object); return 0; } reiser4progs-1.0.7.orig/demos/Makefile.am0000644000175000017500000000061211131470543016067 0ustar fzfznoinst_SCRIPTS = detect noinst_PROGRAMS = busy INCLUDES = -I$(top_srcdir)/include busy_SOURCES = misc.c ls.c stat.c create.c ln.c rm.c cp.c trunc.c busy.c busy.h busy_LDFLAGS = @PROGS_LDFLAGS@ busy_CFLAGS = @GENERIC_CFLAGS@ busy_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la \ $(PROGS_LIBS) EXTRA_DIST = $(noinst_SCRIPTS) reiser4progs-1.0.7.orig/demos/misc.c0000644000175000017500000000137111131470543015135 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. misc.c -- miscellaneous useful stuff. */ #include "busy.h" reiser4_object_t *busy_misc_open_parent(reiser4_tree_t *tree, char **path) { reiser4_object_t *object; char *sep; if (!(sep = aal_strrchr(*path, '/'))) { aal_error("Wrong PATH format is detected: %s.", *path); return INVAL_PTR; } if (sep == *path) { /* Create file in the root. */ object = reiser4_semantic_open(tree, "/", NULL, 1); } else { sep[0] = 0; object = reiser4_semantic_open(tree, *path, NULL, 1); sep[0] = '/'; } if (!object) { aal_error("Can't open file %s.", *path); sep[0] = '/'; return NULL; } sep[0] = '/'; *path = sep + 1; return object; } reiser4progs-1.0.7.orig/librepair/0000777000175000017500000000000011134133447014704 5ustar fzfzreiser4progs-1.0.7.orig/librepair/pset.c0000644000175000017500000000423511131470543016021 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. pset.c -- reiser4 plugin set (&heir set) repair functions. */ #include extern reiser4_profile_t defprof; extern rid_t pset_prof[]; errno_t repair_pset_check_backup(backup_hint_t *hint) { struct reiser4_pset_backup *pset; int present; rid_t id; char *p; int i; aal_assert("vpf-1909", hint != NULL); p = hint->block.data + hint->off[BK_PSET]; present = !aal_strncmp(p, PSET_MAGIC, aal_strlen(PSET_MAGIC)); if ((hint->version == 0 && present == 1) || (hint->version > 0 && present == 0)) { return RE_FATAL; } if (hint->version == 0) return 0; pset = (struct reiser4_pset_backup *)(p + aal_strlen(PSET_MAGIC)); for (i = 0; i < PSET_STORE_LAST; i++) { id = aal_get_le32(pset, id[i]); if (id >= defprof.pid[pset_prof[i]].max) return RE_FATAL; } hint->off[BK_PSET + 1] += sizeof(rid_t) * (PSET_STORE_LAST + 5); return 0; } errno_t repair_pset_root_check(reiser4_fs_t *fs, reiser4_object_t *root, uint8_t mode) { struct reiser4_pset_backup *pset; rid_t id, root_id; int i; aal_assert("vpf-1910", fs != NULL); aal_assert("vpf-1911", root != NULL); if (!fs->backup) return 0; pset = (struct reiser4_pset_backup *) (fs->backup->hint.block.data + fs->backup->hint.off[BK_PSET] + aal_strlen(PSET_MAGIC)); /* Check that backed up pset matches the root one. */ for (i = 0; i < PSET_STORE_LAST; i++) { id = aal_get_le32(pset, id[i]); root_id = fs->tree->ent.param_mask & (1 << i) ? (rid_t)root->info.pset.plug[i] : root->info.pset.plug[i]->id.id; if (root_id == id) continue; fsck_mess("The Plugin Set slot %u of the root directory is %u, " "does not match the backed up value %u.%s", i, root_id, id, mode == RM_BUILD ? " Fixed." : ""); if (mode != RM_BUILD) return RE_FATAL; if (fs->tree->ent.param_mask & (1 << i)) { root->info.pset.plug[i] = (void *)id; } else { root->info.pset.plug[i] = reiser4_factory_ifind( defprof.pid[pset_prof[i]].id.type, id); aal_assert("vpf-1912", root->info.pset.plug[i] != NULL); } } return 0; } reiser4progs-1.0.7.orig/librepair/disk_scan.c0000644000175000017500000001075011131470543017003 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/disk_scan.c - Disk scan pass of reiser4 filesystem recovery. The disk_scan pass scans the blocks which are specified in the bm_scan bitmap, all formatted blocks marks in bm_map bitmap, all found leaves in bm_leaf, all found twigs in bm_twig. After filter pass: - some extent units may points to formatted blocks; - if some formatted block is unused in on-disk block allocator, correct allocator; - if some unformatted block is used in on-disk block allocator, zero extent pointer. */ #include static void repair_disk_scan_update(repair_ds_t *ds) { aal_stream_t stream; char *time_str; aal_assert("vpf-882", ds != NULL); aal_stream_init(&stream, NULL, &memory_stream); aal_stream_format(&stream, "\tRead nodes %llu\n", ds->stat.read_nodes); aal_stream_format(&stream, "\tGood nodes %llu\n", ds->stat.good_nodes); aal_stream_format(&stream, "\t\tLeaves of them %llu, Twigs of them " "%llu\n", ds->stat.good_leaves, ds->stat.good_twigs); if (ds->stat.fixed_nodes) { aal_stream_format(&stream, "\tCorrected nodes %llu\n", ds->stat.fixed_nodes); aal_stream_format(&stream, "\t\tLeaves of them %llu, Twigs of " "them %llu\n", ds->stat.fixed_leaves, ds->stat.fixed_twigs); } time_str = ctime(&ds->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, "\tTime interval: %s - ", time_str); time(&ds->stat.time); time_str = ctime(&ds->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, time_str); aal_mess(stream.entity); aal_stream_fini(&stream); } static errno_t cb_count_sd(reiser4_place_t *place, void *data) { repair_ds_t *ds = (repair_ds_t *)data; if (place->plug->p.id.group == STAT_ITEM) ds->stat.tmp++; return 0; } /* The pass inself, goes through all the blocks marked in the scan bitmap, and if a block can contain some data to be recovered (formatted and contains not tree index data only) then fix all corruptions within the node and save it for further insertion. */ errno_t repair_disk_scan(repair_ds_t *ds) { reiser4_node_t *node; aal_gauge_t *gauge; errno_t res = 0; uint64_t total; uint8_t level; blk_t blk = 0; aal_assert("vpf-514", ds != NULL); aal_assert("vpf-705", ds->repair != NULL); aal_assert("vpf-844", ds->repair->fs != NULL); aal_assert("vpf-515", ds->bm_leaf != NULL); aal_assert("vpf-516", ds->bm_twig != NULL); aal_assert("vpf-820", ds->bm_scan != NULL); aal_assert("vpf-820", ds->bm_met != NULL); aal_mess("LOOKING FOR UNCONNECTED NODES"); gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], NULL, NULL, 500, NULL); aal_gauge_touch(gauge); time(&ds->stat.time); total = reiser4_bitmap_marked(ds->bm_scan); while ((blk = reiser4_bitmap_find_marked(ds->bm_scan, blk)) != INVAL_BLK) { ds->stat.read_nodes++; aal_gauge_set_value(gauge, ds->stat.read_nodes * 100 / total); aal_gauge_touch(gauge); if (!(node = repair_node_open(ds->repair->fs->tree, blk, ds->mkidok ? ds->mkid : 0))) { blk++; continue; } reiser4_bitmap_mark(ds->bm_met, blk); level = reiser4_node_get_level(node); if (!repair_tree_data_level(level)) goto next; if ((res = repair_node_check_struct(node, cb_count_sd, ds->repair->mode, ds)) < 0) { reiser4_node_close(node); goto error; } if (!(res & RE_FATAL)) { (*ds->stat.files) += ds->stat.tmp; ds->stat.tmp = 0; res |= repair_node_check_level(node, ds->repair->mode); if (res < 0) { reiser4_node_close(node); goto error; } } aal_assert("vpf-812", (res & ~RE_FATAL) == 0); if (res || reiser4_node_items(node) == 0) goto next; ds->stat.good_nodes++; if (level == TWIG_LEVEL) { reiser4_bitmap_mark(ds->bm_twig, blk); ds->stat.good_twigs++; if (reiser4_node_isdirty(node)) ds->stat.fixed_twigs++; } else { reiser4_bitmap_mark(ds->bm_leaf, blk); ds->stat.good_leaves++; if (reiser4_node_isdirty(node)) ds->stat.fixed_leaves++; } /* Zero all flags for all items. */ repair_node_clear_flags(node); /* If mkfsid is a new one, set it to the node. */ if (!ds->mkidok && ds->mkid != reiser4_node_get_mstamp(node)) reiser4_node_set_mstamp(node, ds->mkid); next: reiser4_node_fini(node); blk++; } error: aal_gauge_done(gauge); aal_gauge_free(gauge); repair_disk_scan_update(ds); return res; } reiser4progs-1.0.7.orig/librepair/oid.c0000644000175000017500000000104211131470543015612 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. oid.c -- oid allocator repair code. */ #ifndef ENABLE_MINIMAL #include void repair_oid_print(reiser4_oid_t *oid, aal_stream_t *stream) { aal_assert("umka-1562", oid != NULL); reiser4call(oid, print, stream, 0); } /* Returns lost+found object id from specified oid allocator */ oid_t repair_oid_lost_objectid(reiser4_oid_t *oid) { aal_assert("vpf-1552", oid != NULL); return reiser4call(oid, lost_objectid); } #endif reiser4progs-1.0.7.orig/librepair/Makefile.in0000644000175000017500000016732011134132271016750 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = librepair DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) librepair_static_la_DEPENDENCIES = \ $(top_builddir)/libreiser4/libreiser4-static.la am__objects_1 = librepair_static_la-filesystem.lo \ librepair_static_la-tree.lo librepair_static_la-master.lo \ librepair_static_la-format.lo librepair_static_la-status.lo \ librepair_static_la-backup.lo librepair_static_la-pset.lo \ librepair_static_la-journal.lo librepair_static_la-alloc.lo \ librepair_static_la-node.lo librepair_static_la-item.lo \ librepair_static_la-object.lo librepair_static_la-filter.lo \ librepair_static_la-disk_scan.lo \ librepair_static_la-twig_scan.lo \ librepair_static_la-add_missing.lo \ librepair_static_la-semantic.lo librepair_static_la-cleanup.lo \ librepair_static_la-repair.lo librepair_static_la-oid.lo am_librepair_static_la_OBJECTS = $(am__objects_1) librepair_static_la_OBJECTS = $(am_librepair_static_la_OBJECTS) librepair_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(librepair_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ librepair_la_DEPENDENCIES = $(top_builddir)/libreiser4/libreiser4.la am__objects_2 = librepair_la-filesystem.lo librepair_la-tree.lo \ librepair_la-master.lo librepair_la-format.lo \ librepair_la-status.lo librepair_la-backup.lo \ librepair_la-pset.lo librepair_la-journal.lo \ librepair_la-alloc.lo librepair_la-node.lo \ librepair_la-item.lo librepair_la-object.lo \ librepair_la-filter.lo librepair_la-disk_scan.lo \ librepair_la-twig_scan.lo librepair_la-add_missing.lo \ librepair_la-semantic.lo librepair_la-cleanup.lo \ librepair_la-repair.lo librepair_la-oid.lo am_librepair_la_OBJECTS = $(am__objects_2) librepair_la_OBJECTS = $(am_librepair_la_OBJECTS) librepair_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(librepair_la_CFLAGS) \ $(CFLAGS) $(librepair_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(librepair_static_la_SOURCES) $(librepair_la_SOURCES) DIST_SOURCES = $(librepair_static_la_SOURCES) $(librepair_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ librepair_sources = filesystem.c tree.c master.c format.c status.c backup.c pset.c \ journal.c alloc.c node.c item.c object.c filter.c disk_scan.c \ twig_scan.c add_missing.c semantic.c cleanup.c repair.c oid.c lib_LTLIBRARIES = librepair.la noinst_LTLIBRARIES = librepair-static.la librepair_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -release $(LT_RELEASE) librepair_la_LIBADD = $(top_builddir)/libreiser4/libreiser4.la librepair_la_SOURCES = $(librepair_sources) librepair_la_CFLAGS = @GENERIC_CFLAGS@ librepair_static_la_LIBADD = $(top_builddir)/libreiser4/libreiser4-static.la librepair_static_la_SOURCES = $(librepair_sources) librepair_static_la_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu librepair/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu librepair/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done librepair-static.la: $(librepair_static_la_OBJECTS) $(librepair_static_la_DEPENDENCIES) $(librepair_static_la_LINK) $(librepair_static_la_OBJECTS) $(librepair_static_la_LIBADD) $(LIBS) librepair.la: $(librepair_la_OBJECTS) $(librepair_la_DEPENDENCIES) $(librepair_la_LINK) -rpath $(libdir) $(librepair_la_OBJECTS) $(librepair_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-add_missing.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-backup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-cleanup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-disk_scan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-filesystem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-filter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-format.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-journal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-master.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-node.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-oid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-pset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-semantic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-status.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-tree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_la-twig_scan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-add_missing.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-backup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-cleanup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-disk_scan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-filesystem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-filter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-format.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-journal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-master.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-node.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-oid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-pset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-semantic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-status.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-tree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librepair_static_la-twig_scan.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< librepair_static_la-filesystem.lo: filesystem.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-filesystem.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-filesystem.Tpo -c -o librepair_static_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-filesystem.Tpo $(DEPDIR)/librepair_static_la-filesystem.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filesystem.c' object='librepair_static_la-filesystem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c librepair_static_la-tree.lo: tree.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-tree.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-tree.Tpo -c -o librepair_static_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-tree.Tpo $(DEPDIR)/librepair_static_la-tree.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tree.c' object='librepair_static_la-tree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c librepair_static_la-master.lo: master.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-master.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-master.Tpo -c -o librepair_static_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-master.Tpo $(DEPDIR)/librepair_static_la-master.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='master.c' object='librepair_static_la-master.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c librepair_static_la-format.lo: format.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-format.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-format.Tpo -c -o librepair_static_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-format.Tpo $(DEPDIR)/librepair_static_la-format.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format.c' object='librepair_static_la-format.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c librepair_static_la-status.lo: status.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-status.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-status.Tpo -c -o librepair_static_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-status.Tpo $(DEPDIR)/librepair_static_la-status.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='status.c' object='librepair_static_la-status.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c librepair_static_la-backup.lo: backup.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-backup.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-backup.Tpo -c -o librepair_static_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-backup.Tpo $(DEPDIR)/librepair_static_la-backup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='backup.c' object='librepair_static_la-backup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c librepair_static_la-pset.lo: pset.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-pset.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-pset.Tpo -c -o librepair_static_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-pset.Tpo $(DEPDIR)/librepair_static_la-pset.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pset.c' object='librepair_static_la-pset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c librepair_static_la-journal.lo: journal.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-journal.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-journal.Tpo -c -o librepair_static_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-journal.Tpo $(DEPDIR)/librepair_static_la-journal.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal.c' object='librepair_static_la-journal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c librepair_static_la-alloc.lo: alloc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-alloc.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-alloc.Tpo -c -o librepair_static_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-alloc.Tpo $(DEPDIR)/librepair_static_la-alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc.c' object='librepair_static_la-alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c librepair_static_la-node.lo: node.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-node.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-node.Tpo -c -o librepair_static_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-node.Tpo $(DEPDIR)/librepair_static_la-node.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node.c' object='librepair_static_la-node.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c librepair_static_la-item.lo: item.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-item.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-item.Tpo -c -o librepair_static_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-item.Tpo $(DEPDIR)/librepair_static_la-item.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='item.c' object='librepair_static_la-item.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c librepair_static_la-object.lo: object.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-object.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-object.Tpo -c -o librepair_static_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-object.Tpo $(DEPDIR)/librepair_static_la-object.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='object.c' object='librepair_static_la-object.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c librepair_static_la-filter.lo: filter.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-filter.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-filter.Tpo -c -o librepair_static_la-filter.lo `test -f 'filter.c' || echo '$(srcdir)/'`filter.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-filter.Tpo $(DEPDIR)/librepair_static_la-filter.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filter.c' object='librepair_static_la-filter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-filter.lo `test -f 'filter.c' || echo '$(srcdir)/'`filter.c librepair_static_la-disk_scan.lo: disk_scan.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-disk_scan.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-disk_scan.Tpo -c -o librepair_static_la-disk_scan.lo `test -f 'disk_scan.c' || echo '$(srcdir)/'`disk_scan.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-disk_scan.Tpo $(DEPDIR)/librepair_static_la-disk_scan.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_scan.c' object='librepair_static_la-disk_scan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-disk_scan.lo `test -f 'disk_scan.c' || echo '$(srcdir)/'`disk_scan.c librepair_static_la-twig_scan.lo: twig_scan.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-twig_scan.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-twig_scan.Tpo -c -o librepair_static_la-twig_scan.lo `test -f 'twig_scan.c' || echo '$(srcdir)/'`twig_scan.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-twig_scan.Tpo $(DEPDIR)/librepair_static_la-twig_scan.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='twig_scan.c' object='librepair_static_la-twig_scan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-twig_scan.lo `test -f 'twig_scan.c' || echo '$(srcdir)/'`twig_scan.c librepair_static_la-add_missing.lo: add_missing.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-add_missing.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-add_missing.Tpo -c -o librepair_static_la-add_missing.lo `test -f 'add_missing.c' || echo '$(srcdir)/'`add_missing.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-add_missing.Tpo $(DEPDIR)/librepair_static_la-add_missing.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='add_missing.c' object='librepair_static_la-add_missing.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-add_missing.lo `test -f 'add_missing.c' || echo '$(srcdir)/'`add_missing.c librepair_static_la-semantic.lo: semantic.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-semantic.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-semantic.Tpo -c -o librepair_static_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-semantic.Tpo $(DEPDIR)/librepair_static_la-semantic.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='semantic.c' object='librepair_static_la-semantic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c librepair_static_la-cleanup.lo: cleanup.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-cleanup.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-cleanup.Tpo -c -o librepair_static_la-cleanup.lo `test -f 'cleanup.c' || echo '$(srcdir)/'`cleanup.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-cleanup.Tpo $(DEPDIR)/librepair_static_la-cleanup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cleanup.c' object='librepair_static_la-cleanup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-cleanup.lo `test -f 'cleanup.c' || echo '$(srcdir)/'`cleanup.c librepair_static_la-repair.lo: repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-repair.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-repair.Tpo -c -o librepair_static_la-repair.lo `test -f 'repair.c' || echo '$(srcdir)/'`repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-repair.Tpo $(DEPDIR)/librepair_static_la-repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='repair.c' object='librepair_static_la-repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-repair.lo `test -f 'repair.c' || echo '$(srcdir)/'`repair.c librepair_static_la-oid.lo: oid.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -MT librepair_static_la-oid.lo -MD -MP -MF $(DEPDIR)/librepair_static_la-oid.Tpo -c -o librepair_static_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_static_la-oid.Tpo $(DEPDIR)/librepair_static_la-oid.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid.c' object='librepair_static_la-oid.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_static_la_CFLAGS) $(CFLAGS) -c -o librepair_static_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c librepair_la-filesystem.lo: filesystem.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-filesystem.lo -MD -MP -MF $(DEPDIR)/librepair_la-filesystem.Tpo -c -o librepair_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-filesystem.Tpo $(DEPDIR)/librepair_la-filesystem.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filesystem.c' object='librepair_la-filesystem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c librepair_la-tree.lo: tree.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-tree.lo -MD -MP -MF $(DEPDIR)/librepair_la-tree.Tpo -c -o librepair_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-tree.Tpo $(DEPDIR)/librepair_la-tree.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tree.c' object='librepair_la-tree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c librepair_la-master.lo: master.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-master.lo -MD -MP -MF $(DEPDIR)/librepair_la-master.Tpo -c -o librepair_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-master.Tpo $(DEPDIR)/librepair_la-master.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='master.c' object='librepair_la-master.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c librepair_la-format.lo: format.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-format.lo -MD -MP -MF $(DEPDIR)/librepair_la-format.Tpo -c -o librepair_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-format.Tpo $(DEPDIR)/librepair_la-format.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format.c' object='librepair_la-format.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c librepair_la-status.lo: status.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-status.lo -MD -MP -MF $(DEPDIR)/librepair_la-status.Tpo -c -o librepair_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-status.Tpo $(DEPDIR)/librepair_la-status.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='status.c' object='librepair_la-status.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c librepair_la-backup.lo: backup.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-backup.lo -MD -MP -MF $(DEPDIR)/librepair_la-backup.Tpo -c -o librepair_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-backup.Tpo $(DEPDIR)/librepair_la-backup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='backup.c' object='librepair_la-backup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c librepair_la-pset.lo: pset.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-pset.lo -MD -MP -MF $(DEPDIR)/librepair_la-pset.Tpo -c -o librepair_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-pset.Tpo $(DEPDIR)/librepair_la-pset.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pset.c' object='librepair_la-pset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c librepair_la-journal.lo: journal.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-journal.lo -MD -MP -MF $(DEPDIR)/librepair_la-journal.Tpo -c -o librepair_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-journal.Tpo $(DEPDIR)/librepair_la-journal.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal.c' object='librepair_la-journal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c librepair_la-alloc.lo: alloc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-alloc.lo -MD -MP -MF $(DEPDIR)/librepair_la-alloc.Tpo -c -o librepair_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-alloc.Tpo $(DEPDIR)/librepair_la-alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc.c' object='librepair_la-alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c librepair_la-node.lo: node.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-node.lo -MD -MP -MF $(DEPDIR)/librepair_la-node.Tpo -c -o librepair_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-node.Tpo $(DEPDIR)/librepair_la-node.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node.c' object='librepair_la-node.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c librepair_la-item.lo: item.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-item.lo -MD -MP -MF $(DEPDIR)/librepair_la-item.Tpo -c -o librepair_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-item.Tpo $(DEPDIR)/librepair_la-item.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='item.c' object='librepair_la-item.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c librepair_la-object.lo: object.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-object.lo -MD -MP -MF $(DEPDIR)/librepair_la-object.Tpo -c -o librepair_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-object.Tpo $(DEPDIR)/librepair_la-object.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='object.c' object='librepair_la-object.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c librepair_la-filter.lo: filter.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-filter.lo -MD -MP -MF $(DEPDIR)/librepair_la-filter.Tpo -c -o librepair_la-filter.lo `test -f 'filter.c' || echo '$(srcdir)/'`filter.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-filter.Tpo $(DEPDIR)/librepair_la-filter.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filter.c' object='librepair_la-filter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-filter.lo `test -f 'filter.c' || echo '$(srcdir)/'`filter.c librepair_la-disk_scan.lo: disk_scan.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-disk_scan.lo -MD -MP -MF $(DEPDIR)/librepair_la-disk_scan.Tpo -c -o librepair_la-disk_scan.lo `test -f 'disk_scan.c' || echo '$(srcdir)/'`disk_scan.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-disk_scan.Tpo $(DEPDIR)/librepair_la-disk_scan.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_scan.c' object='librepair_la-disk_scan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-disk_scan.lo `test -f 'disk_scan.c' || echo '$(srcdir)/'`disk_scan.c librepair_la-twig_scan.lo: twig_scan.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-twig_scan.lo -MD -MP -MF $(DEPDIR)/librepair_la-twig_scan.Tpo -c -o librepair_la-twig_scan.lo `test -f 'twig_scan.c' || echo '$(srcdir)/'`twig_scan.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-twig_scan.Tpo $(DEPDIR)/librepair_la-twig_scan.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='twig_scan.c' object='librepair_la-twig_scan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-twig_scan.lo `test -f 'twig_scan.c' || echo '$(srcdir)/'`twig_scan.c librepair_la-add_missing.lo: add_missing.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-add_missing.lo -MD -MP -MF $(DEPDIR)/librepair_la-add_missing.Tpo -c -o librepair_la-add_missing.lo `test -f 'add_missing.c' || echo '$(srcdir)/'`add_missing.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-add_missing.Tpo $(DEPDIR)/librepair_la-add_missing.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='add_missing.c' object='librepair_la-add_missing.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-add_missing.lo `test -f 'add_missing.c' || echo '$(srcdir)/'`add_missing.c librepair_la-semantic.lo: semantic.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-semantic.lo -MD -MP -MF $(DEPDIR)/librepair_la-semantic.Tpo -c -o librepair_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-semantic.Tpo $(DEPDIR)/librepair_la-semantic.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='semantic.c' object='librepair_la-semantic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c librepair_la-cleanup.lo: cleanup.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-cleanup.lo -MD -MP -MF $(DEPDIR)/librepair_la-cleanup.Tpo -c -o librepair_la-cleanup.lo `test -f 'cleanup.c' || echo '$(srcdir)/'`cleanup.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-cleanup.Tpo $(DEPDIR)/librepair_la-cleanup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cleanup.c' object='librepair_la-cleanup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-cleanup.lo `test -f 'cleanup.c' || echo '$(srcdir)/'`cleanup.c librepair_la-repair.lo: repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-repair.lo -MD -MP -MF $(DEPDIR)/librepair_la-repair.Tpo -c -o librepair_la-repair.lo `test -f 'repair.c' || echo '$(srcdir)/'`repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-repair.Tpo $(DEPDIR)/librepair_la-repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='repair.c' object='librepair_la-repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-repair.lo `test -f 'repair.c' || echo '$(srcdir)/'`repair.c librepair_la-oid.lo: oid.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -MT librepair_la-oid.lo -MD -MP -MF $(DEPDIR)/librepair_la-oid.Tpo -c -o librepair_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librepair_la-oid.Tpo $(DEPDIR)/librepair_la-oid.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid.c' object='librepair_la-oid.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librepair_la_CFLAGS) $(CFLAGS) -c -o librepair_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/librepair/master.c0000644000175000017500000002374711131470543016352 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/master.c - methods are needed for work with broken master super block. */ #include /* Checks the blocksize. */ static int cb_bs_check (int64_t val, void * data) { if (val < REISER4_MIN_BLKSIZE) return 0; if (val > REISER4_MAX_BLKSIZE) return 0; if (!aal_pow2(val)) return 0; return 1; } /* Checks the opened master, builds a new one on the base of user profile if no one was opened. */ errno_t repair_master_check_struct(reiser4_fs_t *fs, uint8_t mode, uint32_t options) { reiser4_master_sb_t *ms; reiser4_plug_t *format; fs_hint_t hint; uint16_t size; int new = 0; rid_t pid; int over; char *s; aal_assert("vpf-730", fs != NULL); aal_assert("vpf-161", fs->master != NULL || fs->device != NULL); over = reiser4_profile_overridden(PROF_FORMAT); format = reiser4_profile_plug(PROF_FORMAT); if (fs->backup) { backup_hint_t *bk_hint = &fs->backup->hint; ms = (reiser4_master_sb_t *) (bk_hint->block.data + bk_hint->off[BK_MASTER]); } else { ms = NULL; } if (fs->master == NULL) { if (mode != RM_BUILD) return RE_FATAL; if (ms) { fsck_mess("Master super block cannot be found on '%s'.", fs->device->name); size = get_ms_blksize(ms); } else { /* Master SB was not opened. Create a new one. */ size = 4096; if (!(options & (1 << REPAIR_YES))) { int opt; opt = aal_yesno("Master super block cannot be " "found on (%s). Do you want to " "build a new one?", fs->device->name); if (opt == EXCEPTION_OPT_NO) return -EINVAL; size = aal_ui_get_numeric(size, cb_bs_check, NULL, "Which block " "size do you use?"); } } /* Create a new master SB. */ aal_memset(&hint, 0, sizeof(hint)); hint.blksize = size; if (!(fs->master = reiser4_master_create(fs->device, &hint))) { aal_fatal("Failed to create a new master super block."); return -EINVAL; } aal_warn("A new master superblock is %s on '%s'.", ms ? "regenerated from backup" : "created", fs->device->name); reiser4_master_set_uuid(fs->master, ms ? ms->ms_uuid : NULL); reiser4_master_set_label(fs->master, ms ? ms->ms_label : NULL); pid = ms ? get_ms_format(ms) : INVAL_PID; reiser4_master_set_format(fs->master, pid); new = 1; } else if (ms) { /* Master SB & backup are opened. Fix accoring to backup. */ size = reiser4_master_get_blksize(fs->master); if (size != get_ms_blksize(ms)) { fsck_mess("Blocksize (%u) found in the master " "super block does not match the one " "found in the backup (%u).%s", size, get_ms_blksize(ms), mode == RM_BUILD ? " Fixed." : ""); if (mode != RM_BUILD) return RE_FATAL; size = get_ms_blksize(ms); reiser4_master_set_blksize(fs->master, size); } if (!over) { pid = reiser4_master_get_format(fs->master); if (pid != get_ms_format(ms)) { /* The @plug is the correct one. */ fsck_mess("The reiser4 format plugin id (%u) " "found in the master super block on " "'%s' does not match the one from " "the backup (%u).%s.", pid, fs->device->name, get_ms_format(ms), mode == RM_BUILD ? " Fixed." : ""); if (mode != RM_BUILD) return RE_FATAL; pid = get_ms_format(ms); reiser4_master_set_format(fs->master, pid); } } s = reiser4_master_get_uuid(fs->master); if (aal_strncmp(s, ms->ms_uuid, sizeof(ms->ms_uuid))) { fsck_mess("UUID (0x%llx%llx) found in the master super " "block does not match the one found in the " "backup (0x%llx%llx).%s", ((uint64_t *)s)[0], ((uint64_t *)s)[1], ((uint64_t *)ms->ms_uuid)[0], ((uint64_t *)ms->ms_uuid)[1], mode != RM_CHECK ? " Fixed." : ""); if (mode == RM_CHECK) return RE_FIXABLE; reiser4_master_set_uuid(fs->master, ms->ms_uuid); } s = reiser4_master_get_label(fs->master); if (aal_strncmp(s, ms->ms_label, sizeof(ms->ms_label))) { fsck_mess("LABEL (%s) found in the master super block " "does not match the one found in the backup " "(%s).%s", s, ms->ms_label, mode != RM_CHECK ? " Fixed." : ""); if (mode == RM_CHECK) return RE_FIXABLE; reiser4_master_set_label(fs->master, ms->ms_label); } } else { /* Master SB was opened. Check it for validness. */ /* Check the blocksize. */ size = reiser4_master_get_blksize(fs->master); if (!cb_bs_check(size, NULL)) { fsck_mess("Invalid blocksize found in the " "master super block (%u).", reiser4_master_get_blksize(fs->master)); if (mode != RM_BUILD) return RE_FATAL; size = 4096; if (!(options & (1 << REPAIR_YES))) { size = aal_ui_get_numeric(size, cb_bs_check, NULL, "Which block " "size do you use?"); } reiser4_master_set_blksize(fs->master, size); } } /* Setting actual used block size from master super block */ size = reiser4_master_get_blksize(fs->master); if (aal_device_set_bs(fs->device, size)) { fsck_mess("Invalid block size was specified (%u). " "It must be power of two.", size); return -EINVAL; } pid = reiser4_master_get_format(fs->master); /* If the format is overridden, fix master according to the profile. */ if (over && pid != format->id.id) { if (!new || ms) { /* Do not swear if the master has been just created. */ fsck_mess("The specified disk format on '%s' is '%s'. " "Its id (0x%x) does not match the on-disk id " "(0x%x).%s", fs->device->name, format->label, format->id.id, pid, mode == RM_BUILD ? " Fixed." :" Has effect in BUILD mode only."); } if (mode != RM_BUILD) return RE_FATAL; pid = format->id.id; reiser4_master_set_format(fs->master, pid); } /* If format is opened but the format plugin id has been changed, close the format. */ if (fs->format && pid != fs->format->ent->plug->p.id.id) { reiser4_format_close(fs->format); fs->format = NULL; } if (!over && !ms && !fs->format && mode == RM_BUILD) { /* If there is no backup and format plug id is not overridden in the profile, format plug id has not been changed in the master! In the BUILD mode: a new master has been just created or a master was opened but the format was not. For both cases -- ask for the format plugin to be used, otherwise, leave it as is. WARNING: the default format plugin is used while there is the only format plugin. */ if (pid != format->id.id) { if (!new) { fsck_mess("The on-disk format plugin id 0x%x " "is not correct. Using the default " "one 0x%x('%s').", pid, format->id.id, format->label); } reiser4_master_set_format(fs->master, format->id.id); } } return 0; } errno_t repair_master_pack(reiser4_master_t *master, aal_stream_t *stream) { uint32_t size; aal_assert("umka-2608", master != NULL); aal_assert("umka-2609", stream != NULL); /* Write master size. */ size = sizeof(master->ent); aal_stream_write(stream, &size, sizeof(size)); /* Write master data to @stream. */ aal_stream_write(stream, &master->ent, size); return 0; } reiser4_master_t *repair_master_unpack(aal_device_t *device, aal_stream_t *stream) { reiser4_master_t *master; uint32_t size; aal_assert("umka-981", device != NULL); aal_assert("umka-2611", stream != NULL); /* Read size and check for validness. */ if (aal_stream_read(stream, &size, sizeof(size)) != sizeof(size)) { aal_error("Can't unpack master super block. Stream is over?"); return NULL; } /* Allocating the memory for master super block struct */ if (!(master = aal_calloc(sizeof(*master), 0))) return NULL; if (size != sizeof(master->ent)) { aal_error("Invalid size %u is detected in stream.", size); goto error_free_master; } /* Read master data from @stream. */ if (aal_stream_read(stream, &master->ent, size) != (int32_t)size) { aal_error("Can't unpack master super block. Stream is over?"); goto error_free_master; } master->dirty = 1; master->device = device; return master; error_free_master: aal_free(master); return NULL; } void repair_master_print(reiser4_master_t *master, aal_stream_t *stream, uuid_unparse_t unparse) { reiser4_plug_t *plug; uint32_t blksize; rid_t pid; aal_assert("umka-1568", master != NULL); aal_assert("umka-1569", stream != NULL); blksize = get_ms_blksize(SUPER(master)); pid = reiser4_master_get_format(master); if (!(plug = reiser4_factory_ifind(FORMAT_PLUG_TYPE, pid))) aal_error("Can't find format plugin by its id 0x%x.", pid); aal_stream_format(stream, "Master super block (%lu):\n", REISER4_MASTER_BLOCKNR(blksize)); aal_stream_format(stream, "magic:\t\t%s\n", reiser4_master_get_magic(master)); aal_stream_format(stream, "blksize:\t%u\n", get_ms_blksize(SUPER(master))); aal_stream_format(stream, "format:\t\t0x%x (%s)\n", pid, plug ? plug->label : "absent"); #if defined(HAVE_LIBUUID) && defined(HAVE_UUID_UUID_H) if (*master->ent.ms_uuid != '\0') { char uuid[37]; uuid[36] = '\0'; unparse(reiser4_master_get_uuid(master), uuid); aal_stream_format(stream, "uuid:\t\t%s\n", uuid); } else { aal_stream_format(stream, "uuid:\t\t\n"); } #endif if (*master->ent.ms_label != '\0') { aal_stream_format(stream, "label:\t\t%s\n", reiser4_master_get_label(master)); } else { aal_stream_format(stream, "label:\t\t\n"); } } errno_t repair_master_check_backup(backup_hint_t *hint) { reiser4_master_sb_t *master; aal_assert("vpf-1731", hint != NULL); master = (reiser4_master_sb_t *) (hint->block.data + hint->off[BK_MASTER]); /* Check the MAGIC. */ if (aal_strncmp(master->ms_magic, REISER4_MASTER_MAGIC, sizeof(REISER4_MASTER_MAGIC))) { return RE_FATAL; } /* Check the blocksize. */ if (get_ms_blksize(master) != hint->block.size) return RE_FATAL; hint->off[BK_MASTER + 1] = hint->off[BK_MASTER] + sizeof(reiser4_master_sb_t) + 8 /* reserved */; return 0; } reiser4progs-1.0.7.orig/librepair/repair.c0000644000175000017500000005343611131470543016337 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/repair.c - control methods for broken filesystem recovery. */ #include #include #include #include #include #include #include #include typedef struct repair_control { repair_data_t *repair; reiser4_bitmap_t *bm_used; /* Formatted area + formatted nodes. */ reiser4_bitmap_t *bm_leaf; /* Leaf bitmap not in the tree yet. */ reiser4_bitmap_t *bm_twig; /* Twig nodes */ reiser4_bitmap_t *bm_met; /* frmt | used | leaf | twig. */ reiser4_bitmap_t *bm_scan; reiser4_bitmap_t *bm_alloc; bool_t mkidok; uint32_t mkid; uint64_t oid, files; uint64_t sysblk; } repair_control_t; static errno_t repair_bitmap_compare(reiser4_bitmap_t *bm1, reiser4_bitmap_t *bm2, int verbose) { uint64_t j, i, diff, bytes, bits; aal_assert("vpf-1325", bm1->size == bm2->size && bm1->total == bm2->total); diff = 0; /* compare full bytes */ bytes = bm1->total / 8; bits = bytes * 8; if (aal_memcmp(bm1->map, bm2->map, bytes)) { /* Do not match, compare byte-by-byte. */ for (j = 0; j < bytes; j++) { if (bm1->map[j] == bm2->map[j]) continue; for (i = j * 8; i < (j + 1) * 8; i ++) { if (reiser4_bitmap_test(bm1, i) != reiser4_bitmap_test(bm2, i)) { diff ++; if (!verbose) continue; fprintf(stderr, "Block (%llu) is %s " "in on-disk bitmap, should " "be not.\n", i, reiser4_bitmap_test(bm1, i) ? "marked" : "free"); } } } } /* compare last byte of bitmap which can be used partially */ bits = bm1->total % 8; for (i = bm1->size; i < bm1->size + bits; i ++) { if (reiser4_bitmap_test(bm1, i) != reiser4_bitmap_test(bm2, i)) { diff ++; if (!verbose) continue; fprintf(stderr, "Block (%llu) is %s in on-disk " "bitmap, should be not.\n", i, reiser4_bitmap_test(bm1, i) ? "marked" : "free"); } } return diff; } /* Callback for the format_ops.layout method - mark all blocks in the bitmap. */ static errno_t cb_format_mark(blk_t start, count_t width, void *data) { reiser4_bitmap_t *format_layout = (reiser4_bitmap_t *)data; reiser4_bitmap_mark_region(format_layout, start, width); return 0; } static errno_t cb_alloc(reiser4_alloc_t *alloc, uint64_t start, uint64_t count, void *data) { repair_control_t *control = (repair_control_t *)data; aal_assert("vpf-1332", data != NULL); reiser4_bitmap_mark_region(control->bm_used, start, count); return 0; } static errno_t cb_release(reiser4_alloc_t *alloc, uint64_t start, uint64_t count, void *data) { repair_control_t *control = (repair_control_t *)data; aal_assert("vpf-1333", data != NULL); reiser4_bitmap_clear_region(control->bm_used, start, count); return 0; } static errno_t repair_filter_prepare(repair_control_t *control, repair_filter_t *filter) { reiser4_fs_t *fs; uint64_t fs_len; aal_assert("vpf-592", filter != NULL); aal_assert("vpf-423", control != NULL); aal_assert("vpf-838", control->repair != NULL); aal_assert("vpf-839", control->repair->fs != NULL); aal_memset(filter, 0, sizeof(*filter)); fs = control->repair->fs; /* If backup has not been opened, do not check the mkfs id. */ control->mkid = reiser4_format_get_stamp(fs->format); if (!(control->repair->flags & (1 << REPAIR_NO_MKID))) { control->mkidok = fs->backup || control->repair->mode != RM_BUILD ? 1 : 0; } filter->repair = control->repair; filter->stat.files = &control->files; filter->mkidok = control->mkidok; filter->mkid = control->mkid; fs_len = reiser4_format_get_len(fs->format); /* Allocate a bitmap of blocks belong to the format area - skipped, super block, journal, bitmaps. */ if (!(control->bm_used = filter->bm_used = reiser4_bitmap_create(fs_len))) { aal_error("Failed to allocate a bitmap of format layout."); return -EINVAL; } /* Mark all format area block in the bm_used bitmap. */ if (reiser4_fs_layout(fs, cb_format_mark, filter->bm_used)) { aal_error("Failed to mark the filesystem area as " "used in the bitmap."); return -EINVAL; } fs->alloc->hook.alloc = cb_alloc; fs->alloc->hook.release = cb_release; fs->alloc->hook.data = control; /* Allocate a bitmap of twig blocks in the tree. */ if (!(control->bm_twig = filter->bm_twig = reiser4_bitmap_create(fs_len))) { aal_error("Failed to allocate a bitmap of twig blocks."); return -EINVAL; } if (control->repair->mode != RM_BUILD) return 0; /* A bitmap of leaves removed from the tree and to be inserted back. */ control->bm_leaf = filter->bm_leaf = reiser4_bitmap_create(fs_len); if (!control->bm_leaf) { aal_error("Failed to allocate a bitmap of leaves " "unconnected from the tree."); return -EINVAL; } /* Allocate a bitmap of formatted blocks which cannot be pointed by extents, which are not in the used nor twig not leaf bitmaps. */ if (!(control->bm_met = filter->bm_met = reiser4_bitmap_clone(filter->bm_used))) { aal_error("Failed to allocate a bitmap of blocks " "that are met on the filesystem."); return -EINVAL; } control->sysblk = filter->bm_used->marked; return 0; } /* Mark blk in the scan bitmap if not marked in used bitmap (in this case it is a node). */ static errno_t cb_region_mark(blk_t blk, uint64_t count, void *data) { repair_control_t *control = (repair_control_t *)data; uint32_t i; aal_assert("vpf-561", control != NULL); reiser4_bitmap_mark_region(control->bm_alloc, blk, count); for (i = blk; i < blk + count; i++) { if (!reiser4_bitmap_test(control->bm_met, i)) reiser4_bitmap_mark(control->bm_scan, i); } return 0; } /* Setup the pass to be performed - create 2 new bitmaps for blocks to be scanned, leaves, and formatted blocks which cannot be pointed by nodeptr's and not accounted anywhere else; fill the scan bitmap with what should be scanned. */ static errno_t repair_ds_prepare(repair_control_t *control, repair_ds_t *ds) { repair_data_t *repair; aal_stream_t stream; uint64_t fs_len, i; errno_t res; FILE *file; aal_assert("vpf-826", ds != NULL); aal_assert("vpf-825", control != NULL); aal_assert("vpf-840", control->repair != NULL); aal_assert("vpf-841", control->repair->fs != NULL); aal_memset(ds, 0, sizeof(*ds)); ds->repair = control->repair; ds->bm_leaf = control->bm_leaf; ds->bm_twig = control->bm_twig; ds->bm_met = control->bm_met; ds->stat.files = &control->files; ds->mkidok = control->mkidok; ds->mkid = control->mkid; repair = ds->repair; fs_len = reiser4_format_get_len(repair->fs->format); if (control->repair->bitmap_file) { file = fopen(control->repair->bitmap_file, "r"); if (file == NULL) { aal_error("Cannot not open the bitmap file (%s).", control->repair->bitmap_file); return -EINVAL; } aal_stream_init(&stream, file, &file_stream); if (!(ds->bm_scan = reiser4_bitmap_unpack(&stream))) { aal_error("Can't unpack the bitmap of " "packed blocks."); fclose(file); aal_stream_fini(&stream); return -EINVAL; } aal_stream_fini(&stream); fclose(file); control->bm_scan = ds->bm_scan; if (ds->bm_scan->total != fs_len) { aal_error("The bitmap in the file '%s' belongs to " "another fs.", control->repair->bitmap_file); return -EINVAL; } /* Do not scan those blocks which are in the tree already. */ for (i = 0; i < control->bm_met->size; i++) ds->bm_scan->map[i] &= ~control->bm_met->map[i]; } else { /* Allocate a bitmap of blocks to be scanned on this pass. */ if (!(ds->bm_scan = control->bm_scan = reiser4_bitmap_create(fs_len))) { aal_error("Failed to allocate a bitmap of blocks " "unconnected from the tree."); return -EINVAL; } if (!(control->bm_alloc = reiser4_bitmap_create(fs_len))) { aal_error("Failed to allocate a bitmap " "of allocated blocks."); return -EINVAL; } if (control->repair->flags & (1 << REPAIR_WHOLE)) { reiser4_bitmap_invert(control->bm_alloc); } else { if ((res = reiser4_alloc_extract(repair->fs->alloc, control->bm_alloc))) { return res; } } /* Mark all broken regions of allocator as to be scanned. */ if ((res = repair_alloc_layout_bad(repair->fs->alloc, cb_region_mark, control))) return res; /* Build a bitmap of what was met already. */ for (i = 0; i < control->bm_met->size; i++) { /* All used blocks are met also. */ aal_assert("vpf-817", (control->bm_used->map[i] & ~control->bm_met->map[i]) == 0); /* All twig blocks are met also. */ aal_assert("vpf-1326", (control->bm_twig->map[i] & ~control->bm_met->map[i]) == 0); /* All leaf blocks are met also. */ aal_assert("vpf-1329", (control->bm_leaf->map[i] & ~control->bm_met->map[i]) == 0); /* Build a bitmap of blocks which are not in the tree yet. Block was met as formatted, but unused in on-disk block allocator. Looks like the bitmap block of the allocator has not been synced on disk. Scan through all its blocks. */ if (~control->bm_alloc->map[i] & control->bm_met->map[i]) { reiser4_alloc_region(repair->fs->alloc, i * 8, cb_region_mark, control); } else { control->bm_scan->map[i] |= (control->bm_alloc->map[i] & ~control->bm_met->map[i]); } } reiser4_bitmap_close(control->bm_alloc); } reiser4_bitmap_calc_marked(control->bm_scan); /* Zeroing leaf & twig bitmaps of ndoes that are in the tree. */ reiser4_bitmap_clear_region(control->bm_leaf, 0, control->bm_leaf->total); reiser4_bitmap_clear_region(control->bm_twig, 0, control->bm_twig->total); return 0; } static errno_t repair_ts_prepare(repair_control_t *control, repair_ts_t *ts, bool_t mark_used) { aal_assert("vpf-854", ts != NULL); aal_assert("vpf-856", control != NULL); aal_assert("vpf-858", control->repair != NULL); aal_assert("vpf-860", control->repair->fs != NULL); aal_memset(ts, 0, sizeof(*ts)); /* Not for the BUILD mode move used bitmap to the met one. */ if (control->repair->mode != RM_BUILD) control->bm_met = control->bm_used; ts->repair= control->repair; /* If twigs which are not in the tree are scanned -- do not mark them as used, just as met. */ ts->bm_used = mark_used ? control->bm_used : NULL; ts->bm_twig = control->bm_twig; ts->bm_met = control->bm_met; if (control->bm_scan) { /* If this is the twig scan that goes after disk_scan, close scan bitmap. */ reiser4_bitmap_close(control->bm_scan); control->bm_scan = NULL; } return 0; } static void repair_ts_fini(repair_control_t *control) { /* Not for the BUILD mode met points to the bm_used. */ control->bm_met = NULL; } static errno_t repair_am_prepare(repair_control_t *control, repair_am_t *am) { uint64_t i; aal_assert("vpf-855", am != NULL); aal_assert("vpf-857", control != NULL); aal_assert("vpf-859", control->repair != NULL); aal_assert("vpf-861", control->repair->fs != NULL); aal_memset(am, 0, sizeof(*am)); am->repair = control->repair; am->bm_leaf = control->bm_leaf; am->bm_twig = control->bm_twig; am->bm_used = control->bm_used; am->stat.files = &control->files; for (i = 0; i < control->bm_met->size; i++) { /* Leave there twigs and leaves that are not in the tree. */ control->bm_twig->map[i] &= ~(control->bm_used->map[i]); control->bm_leaf->map[i] &= ~(control->bm_used->map[i]); } /* Assign the met bitmap to the block allocator. */ reiser4_bitmap_calc_marked(control->bm_met); if (control->bm_met->marked != control->sysblk) { reiser4_alloc_assign(control->repair->fs->alloc, control->bm_met); /* Set the amount of used blocks, allow to allocate blocks on the add missing pass. */ reiser4_format_set_free(control->repair->fs->format, control->bm_met->total - control->bm_met->marked); } reiser4_bitmap_close(control->bm_met); control->bm_met = NULL; reiser4_bitmap_calc_marked(control->bm_twig); reiser4_bitmap_calc_marked(control->bm_leaf); return 0; } static errno_t repair_sem_prepare(repair_control_t *control, repair_semantic_t *sem) { aal_assert("vpf-1274", sem != NULL); aal_assert("vpf-1275", control != NULL); aal_assert("vpf-1276", control->repair != NULL); aal_assert("vpf-1277", control->repair->fs != NULL); aal_memset(sem, 0, sizeof(*sem)); sem->repair = control->repair; aal_assert("vpf-1335", control->repair->mode != RM_BUILD || !reiser4_bitmap_marked(control->bm_twig)); reiser4_bitmap_close(control->bm_twig); control->bm_twig = NULL; sem->stat.files = control->files; if (control->repair->mode == RM_BUILD) { aal_assert("vpf-1335", control->repair->mode != RM_BUILD || !reiser4_bitmap_marked(control->bm_leaf)); reiser4_bitmap_close(control->bm_leaf); control->bm_leaf = NULL; /* Assign the used bitmap to the block allocator. */ if (control->bm_used->marked != control->sysblk) { reiser4_alloc_assign(control->repair->fs->alloc, control->bm_used); /* Set the amount of used blocks, allow to allocate blocks on the semantic pass */ reiser4_format_set_free(control->repair->fs->format, control->bm_used->total - control->bm_used->marked); } reiser4_bitmap_close(control->bm_used); control->bm_used = NULL; control->repair->fs->alloc->hook.alloc = NULL; control->repair->fs->alloc->hook.release = NULL; control->repair->fs->alloc->hook.data = NULL; } else { reiser4_bitmap_t *bm_temp; uint64_t fs_len, i; errno_t res; fs_len = reiser4_format_get_len(control->repair->fs->format); if (!(control->bm_alloc = reiser4_bitmap_create(fs_len))) { aal_error("Failed to allocate a bitmap of " "allocated blocks."); return -EINVAL; } if ((res = reiser4_alloc_extract(control->repair->fs->alloc, control->bm_alloc))) return res; if (control->repair->mode == RM_CHECK) return 0; if (!(bm_temp = reiser4_bitmap_clone(control->bm_alloc))) { aal_error("Failed to allocate a bitmap " "for allocated blocks."); return -EINVAL; } /* This is not the rebuild mode, do not throw away all unused blocks mared as used in allocator. */ for (i = 0; i < control->bm_used->size; i++) bm_temp->map[i] |= control->bm_used->map[i]; /* All blocks that are met are forbidden for allocation. */ reiser4_alloc_assign(control->repair->fs->alloc, bm_temp); reiser4_bitmap_close(bm_temp); } return 0; } static errno_t repair_sem_fini(repair_control_t *control, repair_semantic_t *sem) { uint64_t fs_len; control->oid = sem->stat.oid + 1; control->files = sem->stat.reached_files; /* In the BUILD mode alloc was built on bm_used, nothing to do. */ if (control->repair->mode == RM_BUILD) return 0; fs_len = reiser4_format_get_len(control->repair->fs->format); if (repair_bitmap_compare(control->bm_alloc, control->bm_used, 0)) { fsck_mess("On-disk used block bitmap and really used block " "bitmap differ.%s", control->repair->mode == RM_BUILD ? " Fixed." : ""); if (control->repair->mode == RM_BUILD) { /* Assign the bm_used bitmap to the block allocator. */ reiser4_alloc_assign(control->repair->fs->alloc, control->bm_used); reiser4_alloc_sync(control->repair->fs->alloc); } else control->repair->fatal++; } reiser4_bitmap_close(control->bm_alloc); control->bm_alloc = NULL; /* Do not close bm_used here to get the free blocks count in update. */ control->repair->fs->alloc->hook.alloc = NULL; control->repair->fs->alloc->hook.release = NULL; control->repair->fs->alloc->hook.data = NULL; return 0; } static errno_t repair_cleanup_prepare(repair_control_t *control, repair_cleanup_t *cleanup) { aal_assert("vpf-855", cleanup != NULL); aal_assert("vpf-857", control != NULL); aal_assert("vpf-859", control->repair != NULL); aal_assert("vpf-861", control->repair->fs != NULL); aal_memset(cleanup, 0, sizeof(*cleanup)); cleanup->repair = control->repair; return 0; } /* Debugging. */ static errno_t debug_am_prepare(repair_control_t *control, repair_am_t *am) { uint64_t fs_len; aal_assert("vpf-855", am != NULL); aal_assert("vpf-857", control != NULL); aal_assert("vpf-859", control->repair != NULL); aal_assert("vpf-861", control->repair->fs != NULL); aal_memset(am, 0, sizeof(*am)); am->repair = control->repair; fs_len = reiser4_format_get_len(control->repair->fs->format); if (!(am->bm_leaf = reiser4_bitmap_create(fs_len))) { aal_error("Failed to allocate a bitmap of leaves " "removed from the tree and to be inserted " "later back item-by-item."); return -EINVAL; } if (!(am->bm_twig = reiser4_bitmap_create(fs_len))) { aal_error("Failed to allocate a bitmap of twig " "blocks."); return -EINVAL; } reiser4_bitmap_calc_marked(am->bm_twig); reiser4_bitmap_calc_marked(am->bm_leaf); return 0; } static errno_t repair_update(repair_control_t *control) { uint64_t correct, val; reiser4_fs_t *fs; uint8_t mode; fs = control->repair->fs; mode = control->repair->mode; /* Get the correct free blocks count from the block allocator if BUILD mode, otherwise from the used bitmap. */ correct = mode == RM_BUILD ? reiser4_alloc_free(fs->alloc) : reiser4_bitmap_cleared(control->bm_used); val = reiser4_format_get_free(fs->format); if (correct != val) { if (mode != RM_BUILD) { fsck_mess("Free block count %llu found in the format is " "wrong. %s %llu.", val, mode == RM_CHECK ? "Should be" : "Fixed to", correct); } if (mode != RM_CHECK) reiser4_format_set_free(fs->format, correct); else control->repair->fixable++; } /* Check the next free oid. */ val = reiser4_oid_next(fs->oid); /* FIXME: This is oid40 specific fix, not correct. To be rewritten when shared oid handling will be realy. */ if (control->oid && control->oid > val) { if (mode != RM_BUILD) { fsck_mess("First not used oid %llu is wrong. %s %llu.", val, mode == RM_CHECK ? "Should be" : "Fixed to", control->oid); } if (mode != RM_CHECK) { reiser4call(fs->oid, set_next, control->oid); } else { control->repair->fixable++; } } if (mode == RM_BUILD) { /* Check the file count. Some files could be accounted more than once not in the BUILD mode. */ val = reiser4_oid_get_used(fs->oid); if (control->files && control->files != val) { fsck_mess("File count %llu is wrong. %s %llu.", val, mode != RM_BUILD ? "Should be" : "Fixed to", control->files); if (mode == RM_BUILD) reiser4_oid_set_used(fs->oid, control->files); /* This is not a problem to live with wrong file count. else { control->repair->fixable++; } */ } } /* The tree height should be set correctly at the filter pass. */ /* FIXME: What about flushes? */ return 0; } static void repair_control_release(repair_control_t *control) { aal_assert("vpf-738", control != NULL); if (control->bm_used) { reiser4_bitmap_close(control->bm_used); control->repair->fs->alloc->hook.alloc = NULL; control->repair->fs->alloc->hook.release = NULL; control->repair->fs->alloc->hook.data = NULL; } if (control->bm_leaf) reiser4_bitmap_close(control->bm_leaf); if (control->bm_twig) reiser4_bitmap_close(control->bm_twig); if (control->bm_met) reiser4_bitmap_close(control->bm_met); control->bm_used = control->bm_leaf = control->bm_twig = control->bm_met = NULL; } errno_t repair_check(repair_data_t *repair) { repair_control_t control; repair_filter_t filter; repair_ds_t ds; repair_ts_t ts; repair_am_t am; repair_semantic_t sem; repair_cleanup_t cleanup; errno_t res; aal_assert("vpf-852", repair != NULL); aal_assert("vpf-853", repair->fs != NULL); aal_memset(&control, 0, sizeof(control)); control.repair = repair; if (repair->flags & (1 << REPAIR_DEBUG)) { /* Debugging */ if ((res = debug_am_prepare(&control, &am))) goto error; if ((res = repair_add_missing(&am))) goto error; return 0; } /* Scan the storage reiser4 tree. Cut broken parts out. */ if ((res = repair_filter_prepare(&control, &filter))) goto error; if ((res = repair_filter(&filter))) goto error; /* Scan twigs which are in the tree to avoid scanning the unformatted blocks at BUILD pass which are pointed by extents and preparing the allocable blocks. */ if ((res = repair_ts_prepare(&control, &ts, repair->mode == RM_BUILD))) goto error; if ((res = repair_twig_scan(&ts))) goto error; if (repair->mode == RM_BUILD) { /* Scanning blocks which are used but not in the tree yet. */ if ((res = repair_ds_prepare(&control, &ds))) goto error; if ((res = repair_disk_scan(&ds))) goto error; /* Scanning twigs which are not in the tree and fix if they point to some used block or some met formatted block. */ if ((res = repair_ts_prepare(&control, &ts, 0))) goto error; if ((res = repair_twig_scan(&ts))) goto error; /* Inserting missed blocks into the tree. */ if ((res = repair_am_prepare(&control, &am))) goto error; if ((res = repair_add_missing(&am))) goto error; } else { repair_ts_fini(&control); } if (repair->fatal) { aal_warn("Fatal corruptions were found. " "Semantic pass is skipped."); goto update; } /* Check the semantic reiser4 tree. */ if ((res = repair_sem_prepare(&control, &sem))) goto error; if ((res = repair_semantic(&sem))) goto error; if ((res = repair_sem_fini(&control, &sem))) goto error; if (repair->mode != RM_BUILD || repair->fatal) goto update; /* Throw the garbage away. */ if ((res = repair_cleanup_prepare(&control, &cleanup))) goto error; if ((res = repair_cleanup(&cleanup))) goto error; update: /* Update SB data */ if (!repair->fatal && (res = repair_update(&control))) goto error; error: repair_control_release(&control); return res; } reiser4progs-1.0.7.orig/librepair/cleanup.c0000644000175000017500000001055211131470543016474 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. cleanup.c -- repair/cleanup.c -- cleanup pass recovery code. The pass is intended for cleaning up the storage reiser4 tree from not reacoverable garbage. */ #include static void repair_cleanup_update(repair_cleanup_t *cleanup) { aal_stream_t stream; char *time_str; aal_assert("vpf-1063", cleanup != NULL); aal_stream_init(&stream, NULL, &memory_stream); aal_stream_format(&stream, "\tRemoved items %llu\n", cleanup->stat.removed); time_str = ctime(&cleanup->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, "\tTime interval: %s - ", time_str); time(&cleanup->stat.time); time_str = ctime(&cleanup->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, time_str); aal_mess(stream.entity); aal_stream_fini(&stream); } static errno_t cb_free_extent(uint64_t start, uint64_t count, void *data) { repair_cleanup_t *cleanup = (repair_cleanup_t *)data; reiser4_alloc_t *alloc = cleanup->repair->fs->alloc; aal_assert("vpf-1418", reiser4_alloc_occupied(alloc, start, count)); reiser4_alloc_release(alloc, start, count); return 0; } static errno_t cb_node_cleanup(reiser4_place_t *place, void *data) { repair_cleanup_t *cleanup = (repair_cleanup_t *)data; trans_hint_t hint; int next_node; errno_t res; aal_assert("vpf-1425", place != NULL); aal_assert("vpf-1426", cleanup != NULL); aal_assert("vpf-1429", !reiser4_item_branch(place->plug)); next_node = (!place->pos.item || !cleanup->neigh.node || place_blknr(&cleanup->neigh) != place_blknr(place)); if (next_node) { aal_gauge_set_data(cleanup->gauge, place->node); aal_gauge_touch(cleanup->gauge); } /* Clear checked items. */ if (reiser4_item_test_flag(place, OF_CHECKED)) { reiser4_item_clear_flags(place); if (!place->pos.item) goto next; /* Check if neighbour items are mergable. */ if (next_node) { cleanup->neigh = *place; cleanup->neigh.pos.item--; if ((res = reiser4_place_fetch(&cleanup->neigh))) return res; } if (reiser4_item_mergeable(&cleanup->neigh, place)) { /* Fuse neighbour items. */ if ((res = reiser4_node_merge(place->node, &cleanup->neigh.pos, &place->pos))) return res; /* aal_mess("Node (%llu), items (%u, %u): fuse items " "[%s], [%s].", place_blknr(place), cleanup->neigh.pos.item, place->pos.item, reiser4_print_key(&cleanup->neigh.key), reiser4_print_key(&place->key)); */ place->pos.item--; if (reiser4_place_fetch(&cleanup->neigh)) return -EINVAL; return 0; } next: /* Save the current place. */ aal_memcpy(&cleanup->neigh, place, sizeof(*place)); return 0; } /* Not checked. */ cleanup->stat.removed++; place->pos.unit = MAX_UINT32; hint.count = 1; hint.place_func = NULL; hint.region_func = cb_free_extent; hint.data = cleanup; hint.shift_flags = SF_DEFAULT; /* aal_mess("Node (%llu), item (%u): remove not used '%s' item [%s].", place_blknr(place), place->pos.item, place->plug->label, reiser4_print_key(&place->key)); */ /* Remove not checked item. */ res = reiser4_tree_remove(cleanup->repair->fs->tree, place, &hint); aal_memset(&cleanup->neigh, 0, sizeof(cleanup->neigh)); return res ? res : 1; } extern void cb_gauge_tree_percent(aal_gauge_t *gauge); errno_t repair_cleanup(repair_cleanup_t *cleanup) { errno_t res; aal_assert("vpf-1407", cleanup != NULL); aal_assert("vpf-1407", cleanup->repair != NULL); aal_assert("vpf-1407", cleanup->repair->fs != NULL); if (reiser4_tree_fresh(cleanup->repair->fs->tree)) { aal_fatal("No reiser4 metadata were found. Cleanup " "pass is skipped."); return 0; } aal_mess("CLEANING UP THE STORAGE TREE"); cleanup->gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], cb_gauge_tree_percent, NULL, 500, NULL); aal_gauge_set_value(cleanup->gauge, 0); aal_gauge_touch(cleanup->gauge); time(&cleanup->stat.time); if ((res = reiser4_tree_scan(cleanup->repair->fs->tree, NULL, cb_node_cleanup, cleanup))) { goto error; } aal_gauge_done(cleanup->gauge); aal_gauge_free(cleanup->gauge); repair_cleanup_update(cleanup); reiser4_fs_sync(cleanup->repair->fs); return 0; error: aal_gauge_done(cleanup->gauge); aal_gauge_free(cleanup->gauge); return res; } reiser4progs-1.0.7.orig/librepair/filter.c0000644000175000017500000004342511131470543016337 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/filter.c - Filter pass of file system recovery. The filter pass filters corrupted parts of a reiser4 tree out, repairs all recoverable corruptions and builds a map of all used blocks, but extents format + formatted nodes). Extents are left not checked as there is no enough information for their proper check. */ #include /* This is extension for repair_error_t. */ typedef enum repair_error_filter { /* Pointer to the wrong place. */ RE_PTR = (RE_LAST), /* Node is ok, but dkeys are wrong, remove from the tree and insert back later item-by-item. */ RE_DKEYS = (RE_LAST << 1), /* Node was emptied. */ RE_EMPTY = (RE_LAST << 2) } repair_error_filter_t; typedef enum repair_mark { RM_BAD = 0, RM_MARK = 1, RM_CLEAR = 2 } repair_mark_t; void cb_gauge_tree_percent(aal_gauge_t *gauge) { uint32_t pos[REISER4_TREE_MAX_HEIGHT][2]; uint64_t amount, passed; reiser4_place_t *place; uint8_t i; if (!gauge || !gauge->data) return; place = &((reiser4_node_t *)gauge->data)->p; i = 0; while (place->node) { pos[i][0] = place->pos.item; pos[i][1] = reiser4_node_items(place->node); place = &place->node->p; i++; } passed = amount = 0; while (i) { i--; amount = amount ? amount * pos[i][1] : pos[i][1]; if (passed) passed *= pos[i][1]; passed += pos[i][0]; } aal_gauge_set_value(gauge, amount ? passed * 100 / amount : 0); } static void repair_filter_node_handle(repair_filter_t *fd, blk_t blk, uint8_t level, repair_mark_t mark) { if (mark == RM_MARK) { reiser4_bitmap_mark_region(fd->bm_used, blk, 1); fd->stat.good_nodes++; } else { reiser4_bitmap_clear_region(fd->bm_used, blk, 1); fd->stat.good_nodes--; } switch (level) { case LEAF_LEVEL: if (mark == RM_MARK) { if (fd->bm_leaf) reiser4_bitmap_mark_region(fd->bm_leaf, blk, 1); fd->stat.good_leaves++; } else { if (fd->bm_leaf) reiser4_bitmap_clear_region(fd->bm_leaf, blk, 1); fd->stat.good_leaves--; if (mark == RM_BAD) fd->stat.bad_leaves++; } break; case TWIG_LEVEL: if (mark == RM_MARK) { if (fd->bm_twig) reiser4_bitmap_mark_region(fd->bm_twig, blk, 1); fd->stat.good_twigs++; } else { if (fd->bm_twig) reiser4_bitmap_clear_region(fd->bm_twig, blk, 1); fd->stat.good_twigs--; if (mark == RM_BAD) fd->stat.bad_twigs++; } break; default: break; } if (fd->bm_met) { if (mark == RM_MARK) reiser4_bitmap_mark_region(fd->bm_met, blk, 1); else if (mark == RM_CLEAR) reiser4_bitmap_clear_region(fd->bm_met, blk, 1); } return; } static void repair_filter_read_node(repair_filter_t *fd, blk_t blk, uint8_t level) { fd->stat.read_nodes++; repair_filter_node_handle(fd, blk, level, RM_MARK); } static void repair_filter_bad_node(repair_filter_t *fd, blk_t blk, uint8_t level) { fd->flags |= RE_FATAL; fd->stat.bad_nodes++; repair_filter_node_handle(fd, blk, level, RM_BAD); } static void repair_filter_empty_node(repair_filter_t *fd, blk_t blk, uint8_t level) { fd->flags |= RE_EMPTY; fd->repair->fatal++; repair_filter_node_handle(fd, blk, level, RM_BAD); } static void repair_filter_bad_dk(repair_filter_t *fd, blk_t blk, uint8_t level) { fd->flags |= RE_DKEYS; repair_filter_node_handle(fd, blk, level, RM_CLEAR); fd->stat.bad_dk_nodes++; fd->repair->fatal++; switch (level) { case LEAF_LEVEL: fd->stat.bad_dk_leaves++; return; case TWIG_LEVEL: fd->stat.bad_dk_twigs++; return; default: return; } } static void repair_filter_fixed_node(repair_filter_t *fd, uint8_t level) { fd->stat.fixed_nodes++; switch (level) { case LEAF_LEVEL: fd->stat.fixed_leaves++; return; case TWIG_LEVEL: fd->stat.fixed_twigs++; return; default: return; } } static void repair_filter_bad_ptr(repair_filter_t *fd) { fd->flags |= RE_PTR; fd->repair->fatal++; fd->stat.bad_ptrs++; } static void repair_filter_bad_level(repair_filter_t *fd, blk_t blk, uint8_t level) { repair_filter_node_handle(fd, blk, level, RM_CLEAR); repair_filter_bad_ptr(fd); } /* Open callback for traverse. It opens a node at passed blk. It does nothing if RE_PTR is set and set this flag if node cannot be opeened. Returns error if any. */ static reiser4_node_t *repair_filter_node_open(reiser4_tree_t *tree, reiser4_place_t *place, void *data) { repair_filter_t *fd = (repair_filter_t *)data; reiser4_node_t *node = NULL; int error = 0; blk_t blk; aal_assert("vpf-379", fd != NULL); aal_assert("vpf-433", fd->repair != NULL); aal_assert("vpf-842", fd->repair->fs != NULL); aal_assert("vpf-591", fd->repair->fs->format != NULL); aal_assert("vpf-1118", tree != NULL); aal_assert("vpf-1187", place != NULL); if ((blk = reiser4_item_down_link(place)) == INVAL_BLK) return INVAL_PTR; if (blk >= fd->bm_used->total) { fsck_mess("Node (%llu), item (%u), unit (%u): Points to the " "invalid block (%llu).%s", place_blknr(place), place->pos.item, place->pos.unit, blk, fd->repair->mode == RM_BUILD ? " Removed." : " The whole subtree is skipped."); error = 1; } if (reiser4_bitmap_test_region(fd->bm_used, blk, 1, 1)) { /* Bad pointer detected. Remove if possible. */ fsck_mess("Node (blk %llu, lev %d) points (item %u, unit %u) to the " "block (%llu) which is in the tree already.%s", place_blknr(place), reiser4_node_get_level(place->node), place->pos.item, place->pos.unit, blk, fd->repair->mode == RM_BUILD ? " Removed." : " The whole subtree is skipped."); error = 1; } if (error) goto error; if (!(node = repair_tree_load_node(fd->repair->fs->tree, place->node, blk, fd->mkidok ? fd->mkid : 0))) { fsck_mess("Node (blk %llu, lev %d) points (item %u, unit %u) " "to block %llu which could not be open." " Whole subtree is skipped.", place_blknr(place), reiser4_node_get_level(place->node), place->pos.item, place->pos.unit, blk); goto error; } repair_filter_read_node(fd, blk, reiser4_node_get_level(node)); return node; error: repair_filter_bad_ptr(fd); return NULL; } static errno_t cb_count_sd(reiser4_place_t *place, void *data) { repair_filter_t *fd = (repair_filter_t *)data; if (place->plug->p.id.group == STAT_ITEM) fd->stat.tmp++; return 0; } /* Before callback for traverse. It checks node level, node consistency, and delimiting keys. If any check reveals a problem with the data consistency it sets RE_FATAL flag. */ static errno_t repair_filter_node_check(reiser4_node_t *node, void *data) { repair_filter_t *fd = (repair_filter_t *)data; errno_t res = 0; uint32_t items; uint16_t level; aal_assert("vpf-252", data != NULL); aal_assert("vpf-409", node != NULL); level = reiser4_node_get_level(node); /* Initialize the level for the root node before traverse. For the root node @fd->level is not set, set it to the current node level. */ if (!fd->level) fd->level = level; else fd->level--; /* Check the level. */ if (fd->level != level) { fsck_mess("Node (blk %llu, lev %d) does not match the " "expected one (%u). %s", node->block->nr, level, fd->level, fd->repair->mode == RM_BUILD ? "Removed." : "The whole subtree is skipped."); /* Should not be check for now as it may lie in unused space. It is just a wrong pointer. Skip it. */ repair_filter_bad_level(fd, node->block->nr, level); goto error; } if ((res = repair_node_check_struct(node, cb_count_sd, fd->repair->mode, fd)) < 0) return res; if (!(res & RE_FATAL)) { (*fd->stat.files) += fd->stat.tmp; fd->stat.tmp = 0; res |= repair_node_check_level(node, fd->repair->mode); if (res < 0) return res; } if ((items = reiser4_node_items(node)) == 0) { repair_filter_empty_node(fd, node->block->nr, level); reiser4_node_mkclean(node); goto error; } repair_error_count(fd->repair, res); if (res & RE_FATAL) { repair_filter_bad_node(fd, node->block->nr, level); goto error; } else if (res == 0) { if (reiser4_node_isdirty(node)) repair_filter_fixed_node(fd, level); } /* There are no fatal errors, check delimiting keys. */ if ((res = repair_tree_dknode_check((reiser4_tree_t *)node->tree, node, fd->repair->mode)) < 0) { return res; } if (res) { repair_filter_bad_dk(fd, node->block->nr, level); goto error; } /* Zero all flags for all items. */ if (fd->repair->mode == RM_BUILD) repair_node_clear_flags(node); aal_gauge_set_data(fd->gauge, node); aal_gauge_touch(fd->gauge); return 0; error: fd->level++; return RE_FATAL; } /* Update callback for traverse. It rollback changes made in setup_traverse callback and do some essential stuff after traversing through the child - level, if RE_PTR flag is set - deletes the child pointer and mark the pointed block as unused in bm_used bitmap. */ static errno_t repair_filter_update_traverse(reiser4_place_t *place, void *data) { repair_filter_t *fd = (repair_filter_t *)data; reiser4_node_t *node; reiser4_tree_t *tree; errno_t res; blk_t blk; aal_assert("vpf-257", fd != NULL); aal_assert("vpf-434", place != NULL); aal_assert("vpf-434", place->node != NULL); aal_assert("vpf-434", place->node->tree != NULL); tree = (reiser4_tree_t *)place->node->tree; if ((blk = reiser4_item_down_link(place)) == INVAL_BLK) { aal_error("Node (%llu), item (%u), unit(%u): Failed to " "fetch the node pointer.", place_blknr(place), place->pos.item, place->pos.unit); return -EIO; } /* In the case of an error when the node was openned and was connected to the current parent, the node should be closed and disconnected from the parent to avoid futher problems with poitners to this node from other parents. */ if ((node = reiser4_tree_lookup_node(tree, blk)) && (node->p.node && node->p.node->block->nr == place->node->block->nr)) { if ((res = reiser4_tree_disconnect_node(tree, node))) return -EINVAL; /* If there is another pointer to this node, changes should be saved. */ if ((res = reiser4_node_fini(node))) return res; } if (!fd->flags) return 0; if ((fd->flags & RE_FATAL) || (fd->flags & RE_EMPTY)) { fsck_mess("Node (%llu): the node is %s. Pointed from " "the node (%llu), item (%u), unit (%u). %s", blk, fd->flags & RE_EMPTY ? "empty" : fd->repair->mode == RM_BUILD ? "unrecoverable" : "broken", place_blknr(place), place->pos.item, place->pos.unit, fd->repair->mode == RM_BUILD ? "Removed." : "The whole subtree is skipped."); } else if (fd->flags & RE_DKEYS) { fsck_mess("Node (blk %llu, lev %d) points (item %u, unit %u) to " "the node [%llu] with wrong delimiting keys. %s", place_blknr(place), reiser4_node_get_level(place->node), place->pos.item, place->pos.unit, blk, fd->repair->mode == RM_BUILD ? "Removed, content will be inserted later item-by-" "item." : "The whole subtree is skipped."); } if (fd->repair->mode == RM_BUILD) { pos_t prev; trans_hint_t hint; fd->repair->fatal--; /* The node corruption was not fixed - delete the internal item. */ repair_place_get_lpos(place, prev); hint.count = 1; hint.place_func = NULL; hint.region_func = NULL; hint.shift_flags = SF_DEFAULT & ~SF_ALLOW_PACK; if ((res = reiser4_tree_remove(tree, place, &hint))) return res; place->pos = prev; } fd->flags = 0; return 0; } /* After callback for traverse. Does needed stuff after traversing through all children - if no child left, set RE_PTR flag to force deletion of the pointer to this block in update_traverse callback. */ static errno_t repair_filter_after_traverse(reiser4_node_t *node, void *data) { repair_filter_t *fd = (repair_filter_t *)data; aal_assert("vpf-393", node != NULL); aal_assert("vpf-256", fd != NULL); if (reiser4_node_items(node) == 0) { repair_filter_empty_node(fd, node->block->nr, reiser4_node_get_level(node)); reiser4_node_mkclean(node); } else if (!fd->mkidok && fd->mkid != reiser4_node_get_mstamp(node)) { /* If mkfsid is a new one, set it to the node. */ reiser4_node_set_mstamp(node, fd->mkid); } fd->level++; return 0; } /* Does some update stuff after traverse through the internal tree - deletes the pointer to the root block from the specific super block if RE_PTR flag is set, mark that block used in bm_used bitmap otherwise. */ static void repair_filter_update(repair_filter_t *fd) { repair_filter_stat_t *stat; reiser4_format_t *format; aal_stream_t stream; char *time_str; uint8_t height; aal_assert("vpf-421", fd != NULL); stat = &fd->stat; format = fd->repair->fs->format; if (fd->flags) { reiser4_tree_t *tree; reiser4_node_t *node; if (!(fd->flags & RE_PTR)) { fsck_mess("Root node (%llu): the node is %s. %s", reiser4_format_get_root(format), fd->flags & RE_EMPTY ? "empty" : fd->repair->mode == RM_BUILD ? "unrecoverable" : "broken", fd->repair->mode == RM_BUILD ? "Zeroed." : "The whole subtree is skipped."); } else { /* Wrong pointer. */ aal_warn("Reiser4 storage tree does not exist. " "Filter pass skipped."); } tree = fd->repair->fs->tree; node = fd->repair->fs->tree->root; if (node) { reiser4_tree_disconnect_node(tree, node); /* If there is another pointer to this node, changes should be saved. */ reiser4_node_fini(node); tree->root = NULL; } if (fd->repair->mode == RM_BUILD) { reiser4_format_set_root(format, INVAL_BLK); fd->repair->fatal--; } } /* Check the tree height. */ height = reiser4_format_get_height(fd->repair->fs->format); if (fd->level) { fd->level--; if (height != fd->level) { fsck_mess("The tree height %u found in the format is " "wrong. %s %u.", height, fd->repair->mode == RM_CHECK ? "Should be":"Fixed to", fd->level); if (fd->repair->mode == RM_CHECK) { fd->repair->fixable++; } else { reiser4_format_set_height(fd->repair->fs->format, fd->level); } } } aal_stream_init(&stream, NULL, &memory_stream); aal_stream_format(&stream, "\tRead nodes %llu\n", stat->read_nodes); aal_stream_format(&stream, "\tNodes left in the tree %llu\n", stat->good_nodes); aal_stream_format(&stream, "\t\tLeaves of them %llu, Twigs of " "them %llu\n", stat->good_leaves, stat->good_twigs); if (stat->fixed_nodes) { aal_stream_format(&stream, "\tCorrected nodes %llu\n", stat->fixed_nodes); aal_stream_format(&stream, "\t\tLeaves of them %llu, " "Twigs of them %llu\n", stat->fixed_leaves, stat->fixed_twigs); } if (fd->stat.bad_nodes) { aal_stream_format(&stream, "\t%s of them %llu\n", fd->repair->mode == RM_BUILD ? "Emptied" : "Broken", fd->stat.bad_nodes); aal_stream_format(&stream, "\t\tLeaves of them %llu, " "Twigs of them %llu\n", fd->stat.bad_leaves, fd->stat.bad_twigs); } if (fd->stat.bad_dk_nodes) { aal_stream_format(&stream, "\tNodes with wrong " "delimiting keys %llu\n", fd->stat.bad_dk_nodes); aal_stream_format(&stream, "\t\tLeaves of them %llu, " "Twigs of them %llu\n", fd->stat.bad_dk_leaves, fd->stat.bad_dk_twigs); } if (fd->stat.bad_ptrs) { aal_stream_format(&stream, "\t%s node pointers %llu\n", fd->repair->mode == RM_BUILD ? "Zeroed" : "Invalid", fd->stat.bad_ptrs); } time_str = ctime(&fd->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, "\tTime interval: %s - ", time_str); time(&fd->stat.time); time_str = ctime(&fd->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, time_str); aal_mess(stream.entity); aal_stream_fini(&stream); } static errno_t repair_filter_traverse(repair_filter_t *fd) { reiser4_format_t *format; reiser4_tree_t *tree; errno_t res; blk_t root; aal_assert("vpf-1314", fd != NULL); format = fd->repair->fs->format; tree = fd->repair->fs->tree; root = reiser4_format_get_root(format); /* Check the root pointer to be valid block. */ if (root < reiser4_format_start(format) || root > reiser4_format_get_len(format)) { goto error; } else if (reiser4_bitmap_test(fd->bm_used, root)) { /* This block is from format area. */ goto error; } /* try to open the root node. */ tree->root = repair_tree_load_node(fd->repair->fs->tree, NULL, root, fd->mkidok ? fd->mkid: 0); if (!tree->root) { fsck_mess("Node (%llu): failed to open the root node. " "The whole filter pass is skipped.", root); goto error; } repair_filter_read_node(fd, root, reiser4_node_get_level(tree->root)); aal_gauge_touch(fd->gauge); /* Cut the corrupted, unrecoverable parts of the tree off. */ res = reiser4_tree_trav_node(tree, tree->root, repair_filter_node_open, repair_filter_node_check, repair_filter_update_traverse, repair_filter_after_traverse, fd); aal_gauge_done(fd->gauge); return res < 0 ? res : 0; error: repair_filter_bad_ptr(fd); return 0; } /* The pass itself - goes through the existent tree trying to filter all corrupted parts off, and fixing what can be fixed. Account all kind of nodes in corresponding bitmaps. */ errno_t repair_filter(repair_filter_t *fd) { errno_t res = 0; aal_assert("vpf-536", fd != NULL); aal_assert("vpf-814", fd->repair != NULL); aal_assert("vpf-843", fd->repair->fs != NULL); aal_assert("vpf-816", fd->repair->fs->tree != NULL); aal_assert("vpf-815", fd->bm_used != NULL); aal_mess("CHECKING THE STORAGE TREE"); fd->gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], cb_gauge_tree_percent, NULL, 500, NULL); time(&fd->stat.time); res = repair_filter_traverse(fd); aal_gauge_free(fd->gauge); repair_filter_update(fd); if (!res && fd->repair->mode != RM_CHECK) reiser4_fs_sync(fd->repair->fs); return res; } reiser4progs-1.0.7.orig/librepair/journal.c0000644000175000017500000001063511131470543016521 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/journal.c - methods are needed for the work with broken reiser4 journals. */ #include #include /* Callback for journal check method - check if a block, pointed from the journal, is of the special filesystem areas - skipped, block allocator, oid alocator, etc. */ static errno_t cb_journal_check(void *object, region_func_t func, void *data) { reiser4_fs_t *fs = (reiser4_fs_t *)object; aal_assert("vpf-737", fs != NULL); return reiser4_fs_layout(fs, func, data); } /* Checks the opened journal. */ static errno_t repair_journal_check_struct(reiser4_journal_t *journal) { aal_assert("vpf-460", journal != NULL); aal_assert("vpf-736", journal->fs != NULL); return reiser4call(journal, check_struct, cb_journal_check, journal->fs); } /* Open the journal and check it. */ errno_t repair_journal_open(reiser4_fs_t *fs, aal_device_t *journal_device, uint8_t mode, uint32_t options) { reiser4_plug_t *plug; errno_t res = 0; rid_t pid; aal_assert("vpf-445", fs != NULL); aal_assert("vpf-446", fs->format != NULL); aal_assert("vpf-476", journal_device != NULL); /* Try to open the journal. */ if ((fs->journal = reiser4_journal_open(fs, journal_device)) == NULL) { /* failed to open a journal. Build a new one. */ aal_error("Failed to open a journal by its id (0x%x).", reiser4_format_journal_pid(fs->format)); if (mode != RM_BUILD) return RE_FATAL; if ((pid = reiser4_format_journal_pid(fs->format)) == INVAL_PID) { aal_error("Invalid journal plugin id has been found."); return -EINVAL; } if (!(plug = reiser4_factory_ifind(JOURNAL_PLUG_TYPE, pid))) { aal_error("Cannot find journal plugin by its id 0x%x.", pid); return -EINVAL; } if (!(options & (1 << REPAIR_YES))) { if (aal_yesno("Do you want to create a new journal " "(%s)?", plug->label) == EXCEPTION_OPT_NO) { return -EINVAL; } } if (!(fs->journal = reiser4_journal_create(fs, journal_device))) { aal_error("Cannot create a journal by its id (0x%x).", reiser4_format_journal_pid(fs->format)); return -EINVAL; } } else { /* Check the structure of the opened journal or rebuild it if needed. */ if ((res = repair_journal_check_struct(fs->journal))) goto error_journal_close; } return 0; error_journal_close: reiser4_journal_close(fs->journal); fs->journal = NULL; return res; } void repair_journal_invalidate(reiser4_journal_t *journal) { aal_assert("vpf-1555", journal != NULL); reiser4call(journal, invalidate); } void repair_journal_print(reiser4_journal_t *journal, aal_stream_t *stream) { aal_assert("umka-1564", journal != NULL); reiser4call(journal, print, stream, 0); } errno_t repair_journal_pack(reiser4_journal_t *journal, aal_stream_t *stream) { rid_t pid; aal_assert("vpf-1747", journal != NULL); aal_assert("vpf-1748", stream != NULL); pid = journal->ent->plug->p.id.id; aal_stream_write(stream, &pid, sizeof(pid)); return reiser4call(journal, pack, stream); } reiser4_journal_t *repair_journal_unpack(reiser4_fs_t *fs, aal_stream_t *stream) { reiser4_journal_t *journal; reiser4_plug_t *plug; uint32_t blksize; count_t blocks; uint32_t read; blk_t start; rid_t pid; aal_assert("vpf-1753", fs != NULL); aal_assert("vpf-1754", stream != NULL); read = aal_stream_read(stream, &pid, sizeof(pid)); if (read != sizeof(pid)) { aal_error("Can't unpack the journal. Stream is over?"); return NULL; } /* Getting needed plugin from plugin factory by its id */ if (!(plug = reiser4_factory_ifind(JOURNAL_PLUG_TYPE, pid))) { aal_error("Can't find journal plugin " "by its id 0x%x.", pid); return NULL; } /* Allocating memory and finding plugin */ if (!(journal = aal_calloc(sizeof(*journal), 0))) return NULL; journal->fs = fs; journal->device = fs->device; start = reiser4_format_start(fs->format); blocks = reiser4_format_get_len(fs->format); blksize = reiser4_master_get_blksize(fs->master); /* Creating journal entity. */ if (!(journal->ent = plugcall((reiser4_journal_plug_t *)plug, unpack, fs->device, blksize, fs->format->ent, fs->oid->ent, start, blocks, stream))) { aal_error("Can't unpack journal %s on %s.", plug->label, fs->device->name); goto error; } return journal; error: aal_free(journal); return NULL; } reiser4progs-1.0.7.orig/librepair/item.c0000644000175000017500000000427711131470543016012 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/item.c -- common repair item functions. */ #include /* Checks if length has been changed, shrink the node if so. */ static errno_t repair_item_check_fini(reiser4_place_t *place, repair_hint_t *hint) { pos_t pos; aal_assert("vpf-768", place->len >= hint->len); if (place->len == hint->len) return RE_FATAL; pos = place->pos; pos.unit = 0; return reiser4_node_shrink(place->node, &pos, hint->len, 1); } /* Calls the item check method to check the item structure and shrink the node if item length has been changed. Returns values are described in repair_error_t. */ errno_t repair_item_check_struct(reiser4_place_t *place, uint8_t mode) { repair_hint_t hint; errno_t res; aal_assert("vpf-791", place != NULL); aal_assert("vpf-792", place->node != NULL); if (!place->plug->repair->check_struct) return 0; aal_memset(&hint, 0, sizeof(hint)); hint.mode = mode; if ((res = objcall(place, repair->check_struct, &hint))) return res; if (!hint.len) return 0; return repair_item_check_fini(place, &hint); } /* Calls the item check_layout method to check the layout of an item and shrink the node if item length has been changed. Returns values are described in repair_error_codes_t. */ errno_t repair_item_check_layout(reiser4_place_t *place, region_func_t func, void *data, uint8_t mode) { repair_hint_t hint; errno_t res; aal_assert("vpf-793", place != NULL); aal_assert("vpf-794", place->node != NULL); if (!place->plug->repair->check_layout) return 0; aal_memset(&hint, 0, sizeof(hint)); hint.mode = mode; res = place->plug->repair->check_layout(place, &hint, func, data); if (res < 0) return res; if (!hint.len) return 0; return repair_item_check_fini(place, &hint); } /* Prints passed @place into passed @buff */ void repair_item_print(reiser4_place_t *place, aal_stream_t *stream) { aal_assert("umka-1297", place != NULL); aal_assert("umka-1550", stream != NULL); aal_assert("umka-1449", place->plug != NULL); if (!place->plug->debug->print) return; place->plug->debug->print(place, stream, 0); } reiser4progs-1.0.7.orig/librepair/object.c0000644000175000017500000001370511131470543016316 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/object.c - Object consystency recovery code. */ #include #include /* Check the semantic structure of the object. Mark all items as CHECKED. */ errno_t repair_object_check_struct(reiser4_object_t *object, place_func_t place_func, uint8_t mode, void *data) { errno_t res; aal_assert("vpf-1044", object != NULL); if ((res = plugcall(reiser4_psobj(object), check_struct, object, place_func, data, mode)) < 0) { return res; } aal_assert("vpf-1195", mode != RM_BUILD || !(res & RE_FATAL)); aal_memcpy(&object->info.object, &object_start(object)->key, sizeof(object->info.object)); return res; } /* Create the fake object--needed for "/" and "lost+found" recovery when SD is corrupted and not directory plugin gets realized. */ reiser4_object_t *repair_object_fake(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_key_t *key, reiser4_plug_t *plug) { reiser4_object_t *object; aal_assert("vpf-1247", tree != NULL); aal_assert("vpf-1248", key != NULL); aal_assert("vpf-1640", plug != NULL); if (!(object = aal_calloc(sizeof(*object), 0))) return INVAL_PTR; /* Initializing info */ aal_memcpy(&object->info.object, key, sizeof(*key)); object->info.tree = (tree_entity_t *)tree; object->info.pset.plug[PSET_OBJ] = plug; object->info.pset.plug_mask |= (1 << PSET_OBJ); if (parent) { aal_memcpy(&object->info.parent, &parent->info.object, sizeof(object->info.parent)); /* Inherit from the parent. */ if (plugcall(reiser4_psobj(object), inherit, &object->info, &parent->info)) { return NULL; } } else { reiser4_pset_root(&object->info); } /* Create the fake object. */ if (plugcall(reiser4_psobj(object), fake, object)) { aal_free(object); return NULL; } return object; } reiser4_object_t *repair_object_open(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_place_t *place) { reiser4_object_t *object; errno_t res; aal_assert("vpf-1622", place != NULL); if (!(object = reiser4_object_prep(tree, parent, &place->key, place))) { return INVAL_PTR; } if ((res = plugcall(reiser4_psobj(object), recognize, object))) { aal_free(object); return res < 0 ? INVAL_PTR : NULL; } return object; } /* Open the object on the base of given start @key */ reiser4_object_t *repair_object_obtain(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_key_t *key) { reiser4_object_t *object; reiser4_place_t place; lookup_hint_t hint; errno_t res; aal_assert("vpf-1132", tree != NULL); aal_assert("vpf-1134", key != NULL); hint.key = key; hint.level = LEAF_LEVEL; hint.collision = NULL; if (reiser4_tree_lookup(tree, &hint, FIND_EXACT, &place) != PRESENT) return NULL; if (!(object = reiser4_object_prep(tree, parent, key, &place))) { /* FIXME: object_init fails to initialize if found item is not SD, but this is not fatal error. */ return NULL; } if ((res = plugcall(reiser4_psobj(object), recognize, object))) { aal_free(object); return res < 0 ? INVAL_PTR : NULL; } return object; } /* Checks the attach between @parent and @object */ errno_t repair_object_check_attach(reiser4_object_t *parent, reiser4_object_t *object, place_func_t place_func, void *data, uint8_t mode) { aal_assert("vpf-1188", object != NULL); aal_assert("vpf-1099", parent != NULL); if (!reiser4_psobj(object)->check_attach) return 0; return plugcall(reiser4_psobj(object), check_attach, object, parent, place_func, data, mode); } errno_t repair_object_mark(reiser4_object_t *object, uint16_t flag) { errno_t res; aal_assert("vpf-1270", object != NULL); /* Get the start place. */ if ((res = reiser4_object_refresh(object))) { aal_error("Update of the object [%s] failed.", reiser4_print_inode(&object->info.object)); return res; } reiser4_item_set_flag(object_start(object), flag); return 0; } int repair_object_test(reiser4_object_t *object, uint16_t flag) { errno_t res; aal_assert("vpf-1273", object != NULL); /* Get the start place. */ if ((res = reiser4_object_refresh(object))) { aal_error("Update of the object [%s] failed.", reiser4_print_inode(&object->info.object)); return res; } return reiser4_item_test_flag(object_start(object), flag); } errno_t repair_object_clear(reiser4_object_t *object, uint16_t flag) { errno_t res; aal_assert("vpf-1272", object != NULL); /* Get the start place. */ if ((res = reiser4_object_refresh(object))) { aal_error("Update of the object [%s] failed.", reiser4_print_inode(&object->info.object)); return res; } reiser4_item_clear_flag(object_start(object), flag); return 0; } /* This method is intended to refresh all info needed for the futher work with the object. For now it is only updating the parent pointer. Should be called after repair_object_obtain, repair_object_check_sytict. */ errno_t repair_object_refresh(reiser4_object_t *object) { entry_hint_t entry; aal_assert("vpf-1271", object != NULL); if (!reiser4_psobj(object)->lookup) return 0; switch (plugcall(reiser4_psobj(object), lookup, object, "..", &entry)) { case ABSENT: aal_memset(&object->info.parent, 0, sizeof(object->info.parent)); break; case PRESENT: aal_memcpy(&object->info.parent, &entry.object, sizeof(entry.object)); break; default: return -EINVAL; } return 0; } /* Helper function for printing passed @place into @stream. */ static errno_t cb_print_place(reiser4_place_t *place, void *data) { aal_stream_t *stream = (aal_stream_t *)data; repair_item_print(place, stream); aal_stream_write(stream, "\n", 1); return 0; } /* Prints object items into passed stream */ void repair_object_print(reiser4_object_t *object, aal_stream_t *stream) { reiser4_object_metadata(object, cb_print_place, stream); } reiser4progs-1.0.7.orig/librepair/alloc.c0000644000175000017500000000474511131470543016146 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. alloc.c -- repair block allocator code. */ #include errno_t repair_alloc_check_struct(reiser4_alloc_t *alloc, uint8_t mode) { aal_assert("vpf-1659", alloc != NULL); return reiser4call(alloc, check_struct, mode); } errno_t repair_alloc_layout_bad(reiser4_alloc_t *alloc, region_func_t func, void *data) { aal_assert("vpf-1322", alloc != NULL); return reiser4call(alloc, layout_bad, func, data); } void repair_alloc_print(reiser4_alloc_t *alloc, aal_stream_t *stream) { aal_assert("umka-1566", alloc != NULL); aal_assert("umka-1567", stream != NULL); reiser4call(alloc, print, stream, 0); } /* Fetches block allocator data to @stream. */ errno_t repair_alloc_pack(reiser4_alloc_t *alloc, aal_stream_t *stream) { rid_t pid; aal_assert("umka-2614", alloc != NULL); aal_assert("umka-2615", stream != NULL); pid = alloc->ent->plug->p.id.id; aal_stream_write(stream, &pid, sizeof(pid)); return reiser4call(alloc, pack, stream); } /* Loads block allocator data from @stream to alloc entity. */ reiser4_alloc_t *repair_alloc_unpack(reiser4_fs_t *fs, aal_stream_t *stream) { reiser4_alloc_t *alloc; reiser4_plug_t *plug; uint32_t blksize; uint32_t read; rid_t pid; aal_assert("umka-2616", fs != NULL); aal_assert("umka-2617", stream != NULL); read = aal_stream_read(stream, &pid, sizeof(pid)); if (read != sizeof(pid)) { aal_error("Can't unpack the block allocator. Stream is over?"); return NULL; } /* Getting needed plugin from plugin factory by its id */ if (!(plug = reiser4_factory_ifind(ALLOC_PLUG_TYPE, pid))) { aal_error("Can't find block allocator plugin " "by its id 0x%x.", pid); return NULL; } /* Allocating memory for the allocator instance */ if (!(alloc = aal_calloc(sizeof(*alloc), 0))) return NULL; alloc->fs = fs; blksize = reiser4_master_get_blksize(fs->master); /* Query the block allocator plugin for creating allocator entity */ if (!(alloc->ent = plugcall((reiser4_alloc_plug_t *)plug, unpack, fs->device, blksize, stream))) { aal_error("Can't unpack block allocator."); goto error_free_alloc; } return alloc; error_free_alloc: aal_free(alloc); return NULL; } errno_t repair_alloc_open(reiser4_fs_t *fs, uint8_t mode) { uint64_t len; len = reiser4_format_get_len(fs->format); if (!(fs->alloc = reiser4_alloc_open(fs, len))) return -EINVAL; return repair_alloc_check_struct(fs->alloc, mode); } reiser4progs-1.0.7.orig/librepair/tree.c0000644000175000017500000003701011131470543016002 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tree.c -- repair/tree.c -- tree auxiliary code. */ #ifdef HAVE_CONFIG_H # include #endif #include /* This function returns TRUE if passed item @group corresponds to passed @level Hardcoded method, valid for the current tree imprementation only. */ bool_t repair_tree_legal_level(reiser4_item_plug_t *plug, uint8_t level) { if (reiser4_item_branch((reiser4_item_plug_t *)plug)) return level != LEAF_LEVEL; if (plug->p.id.group == EXTENT_ITEM) return level == TWIG_LEVEL; return level == LEAF_LEVEL; } static errno_t cb_data_level(reiser4_plug_t *plug, void *data) { uint8_t *level = (uint8_t *)data; aal_assert("vpf-746", data != NULL); if (plug->id.type != ITEM_PLUG_TYPE) return 0; if (!repair_tree_legal_level((reiser4_item_plug_t *)plug, *level)) return 0; return !reiser4_item_branch((reiser4_item_plug_t *)plug); } bool_t repair_tree_data_level(uint8_t level) { if (level == 0) return 0; return (reiser4_factory_cfind(cb_data_level, &level) != NULL); } /* Get the max real key existed in the tree. Go down through all right-most child to get it. */ static errno_t repair_tree_maxreal_key(reiser4_tree_t *tree, reiser4_node_t *node, reiser4_key_t *key) { reiser4_place_t place; reiser4_node_t *child; errno_t res; aal_assert("vpf-712", node != NULL); aal_assert("vpf-713", key != NULL); place.node = node; place.pos.item = reiser4_node_items(node) - 1; place.pos.unit = MAX_UINT32; if (reiser4_place_fetch(&place)) { aal_error("Node (%llu): Failed to open the item (%u).", node->block->nr, place.pos.item); return -EINVAL; } if (reiser4_item_branch(place.plug)) { blk_t blk; uint32_t blksize; place.pos.unit = reiser4_item_units(&place) - 1; if ((blk = reiser4_item_down_link(&place)) == INVAL_BLK) return -EINVAL; blksize = reiser4_master_get_blksize(tree->fs->master); if (!(child = reiser4_node_open(tree, blk))) return -EINVAL; reiser4_node_lock(child); res = repair_tree_maxreal_key(tree, child, key); reiser4_node_unlock(child); if (reiser4_node_close(child)) return -EINVAL; } else res = reiser4_item_maxreal_key(&place, key); return res; } errno_t repair_tree_parent_lkey(reiser4_tree_t *tree, reiser4_node_t *node, reiser4_key_t *key) { errno_t res; aal_assert("vpf-501", node != NULL); aal_assert("vpf-344", key != NULL); if (node->p.node != NULL) { if ((res = reiser4_place_fetch(&node->p))) return res; aal_memcpy(key, &node->p.key, sizeof(*key)); } else { key->plug = tree->key.plug; reiser4_key_minimal(key); } return 0; } reiser4_node_t *repair_tree_load_node(reiser4_tree_t *tree, reiser4_node_t *parent, blk_t blk, uint32_t mkid) { reiser4_node_t *node; aal_assert("vpf-1500", tree != NULL); aal_assert("vpf-1502", tree->fs != NULL); if (!(node = reiser4_tree_load_node(tree, parent, blk))) return NULL; /* If @check, check the mkfs_id. */ if (mkid && mkid != reiser4_node_get_mstamp(node)) goto error_unload_node; return node; error_unload_node: reiser4_tree_unload_node(tree, node); return NULL; } /* Checks the delimiting keys of the node kept in the parent. */ errno_t repair_tree_dknode_check(reiser4_tree_t *tree, reiser4_node_t *node, uint8_t mode) { reiser4_key_t key_max, dkey; reiser4_place_t place; errno_t res; int comp; aal_assert("vpf-1281", tree != NULL); aal_assert("vpf-248", node != NULL); aal_assert("vpf-250", node->plug != NULL); aal_assert("vpf-1280", node->tree != NULL); /* Initialize to the rightmost position. */ place.node = node; place.pos.unit = MAX_UINT32; place.pos.item = reiser4_node_items(node); /* Get the right delimiting key. */ if ((res = reiser4_tree_place_key(tree, &place, &dkey))) { aal_error("Node (%llu): Failed to get the right " "delimiting key.", node->block->nr); return res; } /* Move to the last item. */ place.pos.item--; if ((res = reiser4_place_fetch(&place)) < 0) return res; /* Get the maxreal key of the last item. */ if ((res = reiser4_item_maxreal_key(&place, &key_max)) < 0) { aal_error("Node (%llu): Failed to get the max real " "key of the last item.", node->block->nr); return res; } /* Fatal error if the maxreal key greater than the right delimiting key. */ if (reiser4_key_compfull(&key_max, &dkey) > 0) { fsck_mess("Node (%llu): The last key [%s] in the node " "is greater then the right delimiting key " "[%s].", node->block->nr, reiser4_print_key(&key_max), reiser4_print_key(&dkey)); return RE_FATAL; } /* Get the left delimiting key. */ if ((res = repair_tree_parent_lkey(tree, node, &dkey))) { aal_error("Node (%llu): Failed to get the left " "delimiting key.", node->block->nr); return res; } /* Move to the 0-th item. */ place.pos.item = 0; if ((res = reiser4_place_fetch(&place))) return res; if (!(comp = reiser4_key_compfull(&dkey, &place.key))) return 0; /* Left delimiting key should match the left key in the node. */ if (comp > 0) { /* The left delimiting key is much then the left key in the node - not legal */ fsck_mess("Node (%llu): The first key [%s] is not equal to the " "left delimiting key [%s].", node->block->nr, reiser4_print_key(&place.key), reiser4_print_key(&dkey)); return RE_FATAL; } /* It is legal to have the left key in the node much then its left delimiting key - due to removing some items from the node, for example. Fix the delemiting key if we have parent. */ if (node->p.node == NULL) return 0; fsck_mess("Node (blk %llu, lev %d): first key [%s] does not match left delimiting key [%s] found in " "parent node (blk %llu, lev %d, pos %u). %s", node->block->nr, reiser4_node_get_level(node), reiser4_print_key(&place.key), reiser4_print_key(&dkey), place_blknr(&node->p), reiser4_node_get_level(node->p.node), place_item_pos(&node->p), mode == RM_BUILD ? " Fixed." : ""); if (mode != RM_BUILD) return RE_FATAL; /* Update the left delimiting key if if less than the key of the 0-th item in the node and this is BUILD mode. */ return reiser4_tree_update_keys(tree, &node->p, &place.key); } /* This function creates nodeptr item on the base of @node and insert it to the tree. */ errno_t repair_tree_attach_node(reiser4_tree_t *tree, reiser4_node_t *node) { reiser4_key_t rkey, key; reiser4_place_t place; lookup_hint_t lhint; lookup_t lookup; errno_t res; aal_assert("vpf-658", tree != NULL); aal_assert("vpf-659", node != NULL); /* If there is no root in the tree yet, set it to @node. */ if (reiser4_tree_fresh(tree)) return reiser4_tree_assign_root(tree, node); aal_memset(&lhint, 0, sizeof(lhint)); lhint.key = &key; lhint.level = LEAF_LEVEL; reiser4_node_leftmost_key(node, lhint.key); /* Key should not exist in the tree yet. */ lookup = reiser4_tree_lookup(tree, &lhint, FIND_EXACT, &place); switch (lookup) { case PRESENT: return -ESTRUCT; case ABSENT: break; default: return lookup; } /* Check that the node does not overlapped anything by keys. */ if (place.node != NULL) { if (reiser4_place_right(&place)) reiser4_place_inc(&place, 1); if ((res = reiser4_tree_place_key(tree, &place, &key))) return res; /* Get the maxreal existing key of the node being inserted. */ if ((res = repair_tree_maxreal_key(tree, node, &rkey))) return res; /* If the most right key from the node being inserted is greater then the key found by lookup, it is not possible to insert the node as a whole. */ if (reiser4_key_compfull(&rkey, &key) >= 0) return -ESTRUCT; } return reiser4_tree_attach_node(tree, node, &place, SF_DEFAULT); } /* Check that conversion is needed. */ static bool_t repair_tree_need_conv(reiser4_tree_t *tree, reiser4_item_plug_t *from, reiser4_item_plug_t *to) { aal_assert("vpf-1293", tree != NULL); aal_assert("vpf-1294", from != NULL); aal_assert("vpf-1295", to != NULL); /* Conversion is not needed for equal plugins. */ if (plug_equal(from, to)) return 0; /* Conversion is needed for equal plugin groups. */ if (from->p.id.group == to->p.id.group) return 1; /* TAIL->EXTENT conversion is needed. */ if (from->p.id.group == TAIL_ITEM && to->p.id.group == EXTENT_ITEM) return 1; /* EXTENT->TAIL conversion is not needed. */ if (from->p.id.group == EXTENT_ITEM && to->p.id.group == TAIL_ITEM) return 0; /* Other kind of conversions are impossible. */ return -EINVAL; } /* Prepare repair convertion and perform it. */ static errno_t repair_tree_conv(reiser4_tree_t *tree, reiser4_place_t *dst, reiser4_item_plug_t *plug) { conv_hint_t hint; /* Set bytes, plug, offset and count in @hint */ aal_memset(&hint, 0, sizeof(hint)); hint.plug = plug; aal_memcpy(&hint.offset, &dst->key, sizeof(dst->key)); hint.count = objcall(dst, object->size); hint.ins_hole = 1; return reiser4_flow_convert(tree, &hint); } /* Lookup for the correct @place place by the @start key in the @tree. */ static errno_t repair_tree_lookup(reiser4_tree_t *tree, reiser4_place_t *dst, reiser4_place_t *src, reiser4_key_t *key) { reiser4_key_t dkey, end; lookup_hint_t lhint; reiser4_place_t prev; errno_t res; int skip = 0; aal_assert("vpf-1364", tree != NULL); aal_assert("vpf-1365", dst != NULL); aal_assert("vpf-1367", src != NULL); aal_assert("vpf-1689", key != NULL); aal_memset(&lhint, 0, sizeof(lhint)); lhint.level = LEAF_LEVEL; lhint.key = key; lhint.collision = NULL; lhint.hint = NULL; res = reiser4_tree_lookup(tree, &lhint, FIND_EXACT, dst); if (res != ABSENT) return res; /* Absent. If non-existent unit or item, there is nothing mergable from the right side--lookup would go down there in that case. */ if (reiser4_place_right(dst)) /* Step to right. */ reiser4_place_inc(dst, 1); aal_memset(&prev, 0, sizeof(prev)); if (reiser4_place_rightmost(dst)) { prev = *dst; reiser4_node_lock(prev.node); if ((res = reiser4_tree_next_place(tree, dst, dst))) { aal_error("Failed to get the next node."); reiser4_node_unlock(prev.node); return res; } reiser4_node_unlock(prev.node); /* No right node. */ if (!dst->node) skip = 1; } else { if (reiser4_place_fetch(dst)) return -EIO; } if (skip == 0) { dkey = dst->key; if ((res = reiser4_item_maxreal_key(src, &end))) return res; /* If @end key is not less than the lookuped, items are overlapped. Othewise move to the previous pos. */ if ((res = reiser4_key_compfull(&end, &dkey)) >= 0) return PRESENT; } if (prev.node) *dst = prev; /* Do not care about the */ dst->plug = NULL; return ABSENT; } static errno_t cb_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { return plugcall(hint->plug, repair->prep_insert_raw, place, hint); } static errno_t cb_insert_raw(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint) { return objcall(node, insert_raw, pos, hint); } #if 0 /* Debugging. */ uint64_t maxreal_offset(reiser4_node_t *node, uint32_t item) { reiser4_place_t place; reiser4_key_t key; pos_t pos = {item, MAX_UINT32}; if (!node) return MAX_UINT64; if (reiser4_node_items(node) <= item) return MAX_UINT64; if (reiser4_place_open(&place, node, &pos)) return MAX_UINT64; if (reiser4_item_maxreal_key(&place, &key)) return MAX_UINT64; return key.body[3]; } #endif /* Insert the item into the tree overwriting an existent in the tree item if needed. Does not insert branches. */ errno_t repair_tree_insert(reiser4_tree_t *tree, reiser4_place_t *src, region_func_t func, void *data) { reiser4_place_t dst; lookup_hint_t lhint; trans_hint_t hint; uint32_t scount; uint8_t level; errno_t res; aal_assert("vpf-654", tree != NULL); aal_assert("vpf-655", src != NULL); aal_assert("vpf-657", src->node != NULL); #ifdef ENABLE_DEBUG if (reiser4_tree_fresh(tree)) { aal_bug("vpf-1518", "Failed to insert into the fresh tree."); } #endif if (reiser4_item_branch(src->plug)) return -EINVAL; scount = reiser4_item_units(src); src->pos.unit = 0; /* Init the src maxreal key. */ aal_memset(&hint, 0, sizeof(hint)); hint.specific = src; hint.plug = src->plug; hint.place_func = NULL; hint.region_func = func; hint.data = data; aal_memcpy(&hint.offset, &src->key, sizeof(src->key)); level = reiser4_node_get_level(src->node); while (1) { /* FIXME: it is possible to speed it up */ if ((res = repair_tree_lookup(tree, &dst, src, &hint.offset)) < 0) { return res; } /* Convert @dst if needed. */ if (dst.plug) { bool_t conv; conv = repair_tree_need_conv(tree, dst.plug, src->plug); if (conv < 0) { /* Convertion is not possible. */ fsck_mess("Node (%llu), item (%u): the item (%s) " "[%s] is overlapped by keys with the " "item (%s) [%s] being inserted [node " "%llu, item %u]. Skip insertion.", place_blknr(&dst), dst.pos.item, dst.plug->p.label, reiser4_print_key(&dst.key), src->plug->p.label, reiser4_print_key(&src->key), place_blknr(src), src->pos.item); return RE_FATAL; } if (conv) { res = repair_tree_conv(tree, &dst, src->plug); if (res) return res; /* Repeat lookup after @dst conversion. */ continue; } /* Convertion is not needed, places are overlapped, adjust the position. */ if (dst.pos.unit == MAX_UINT32) dst.pos.unit = 0; } /* Insert_raw can insert the whole item (!dst.plug) or if dst & src items are of the same plugin. */ if (!dst.plug || plug_equal(dst.plug, src->plug)) { hint.shift_flags = SF_DEFAULT; /* If we are in the middle of the unit, set HOLD_POS to not lose the unit it if some space is needed. */ if (dst.plug) { reiser4_key_t ukey; reiser4_item_get_key(&dst, &ukey); res = reiser4_key_compfull(&ukey, &hint.offset); if (res <= 0) hint.shift_flags |= SF_HOLD_POS; } res = reiser4_tree_modify(tree, &dst, &hint, level, cb_prep_insert_raw, cb_insert_raw); if (res) goto error; } else if (dst.plug->p.id.group == TAIL_ITEM) { /* Do not overwrite tail items as they do not have holes. Only a hole can be overwritten. */ return 0; } else { /* For not equal plugins do coping. */ fsck_mess("Node (%llu), item (%u): the item (%s) [%s] " "is overlapped by keys with the item (%s) " "[%s] being inserted [node %llu, item %u]. " "Copying is not ready yet, skip insertion.", place_blknr(&dst), dst.pos.item, dst.plug->p.label, reiser4_print_key(&dst.key), src->plug->p.label, reiser4_print_key(&src->key), place_blknr(src), src->pos.item); return RE_FATAL; } if (!src->plug->balance->lookup) break; lhint.key = &hint.maxkey; /* Lookup by end_key. */ if ((res = objcall(src, balance->lookup, &lhint, FIND_EXACT)) < 0) { return res; } if (src->pos.unit >= scount) break; aal_memcpy(&hint.offset, &hint.maxkey, sizeof(hint.offset)); } return 0; error: if (dst.pos.unit == MAX_UINT32) { aal_error("Node (%llu), item (%u): insertion to the " "node (%llu), item (%u) failed.", place_blknr(src), src->pos.item, place_blknr(&dst), dst.pos.item); } else { aal_error("Node (%llu), item (%u): merging with node " "(%llu), item (%u) by the key [%s] failed.", place_blknr(src), src->pos.item, place_blknr(&dst), dst.pos.item, reiser4_print_inode(&hint.offset)); } return res; } reiser4progs-1.0.7.orig/librepair/format.c0000644000175000017500000002124211131470543016333 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. libprogs/format.c - methods are needed for handle the fs format. */ #include static int cb_check_plugname(char *name, void *data) { reiser4_plug_t **plug = (reiser4_plug_t **)data; if (!name) return 0; *plug = reiser4_factory_nfind(name); if ((*plug)->id.type != KEY_PLUG_TYPE) *plug = NULL; return *plug ? 1 : 0; } count_t repair_format_len_old(aal_device_t *device, uint32_t blksize) { return (aal_device_len(device) * device->blksize / blksize); } /* This is the copy of the repair_formaat_check_len, however it calculates the amount of allowable blocks differently, actually not correctly, but how it was created in old progs versions, to not force users to build-sb and ossibly lost thier data. */ errno_t repair_format_check_len_old(aal_device_t *device, uint32_t blksize, count_t blocks) { count_t dev_len; aal_assert("vpf-1564", device != NULL); dev_len = repair_format_len_old(device, blksize); if (blocks > dev_len) { aal_error("Device %s is too small (%llu) for filesystem %llu " "blocks long.", device->name, dev_len, blocks); return -EINVAL; } if (blocks < REISER4_FS_MIN_SIZE(blksize)) { aal_error("Requested filesystem size (%llu) is too small. " "Reiser4 required minimal size %u blocks long.", blocks, REISER4_FS_MIN_SIZE(blksize)); return -EINVAL; } return 0; } static int cb_check_count(int64_t val, void *data) { reiser4_fs_t *fs = (reiser4_fs_t *)data; uint32_t blksize; if (val < 0) return 0; blksize = reiser4_master_get_blksize(fs->master); return reiser4_format_check_len(fs->device, blksize, val) ? 0 : 1; } /* Try to open format if not yet and check it. */ errno_t repair_format_check_struct(reiser4_fs_t *fs, uint8_t mode, uint32_t options) { reiser4_format_ent_t *format; reiser4_plug_t *plug; format_hint_t hint; count_t blocks; bool_t over; errno_t res; rid_t pid; aal_assert("vpf-165", fs != NULL); aal_assert("vpf-171", fs->device != NULL); aal_assert("vpf-834", fs->master != NULL); pid = reiser4_master_get_format(fs->master); /* If format is not opened but the master has been changed, try to open format again -- probably the master format plug id has been changed. */ if (!fs->format && pid < FORMAT_LAST_ID && reiser4_master_isdirty(fs->master)) { fs->format = reiser4_format_open(fs); } /* If format is still not opened, return the error not in the BUILD mode. */ if (!fs->format && mode != RM_BUILD) return RE_FATAL; /* Prepare the format hint for the futher checks. */ aal_memset(&hint, 0, sizeof(hint)); /* If the policy/key/etc plugin is overridden in the profile or there is no opened backup not format, policy is taken from the profile. Otherwise from the backup if opened or from the format. */ over = reiser4_profile_overridden(PROF_POLICY); plug = reiser4_profile_plug(PROF_POLICY); hint.policy = ((reiser4_policy_plug_t *)plug)->p.id.id; hint.mask |= over ? (1 << PM_POLICY) : 0; over = reiser4_profile_overridden(PROF_KEY); plug = reiser4_profile_plug(PROF_KEY); if (over) { hint.mask |= (1 << PM_KEY); } else if (!fs->backup && mode == RM_BUILD) { char buff[256]; plug = reiser4_profile_plug(PROF_KEY); aal_memset(buff, 0, sizeof(buff)); aal_memcpy(buff, plug->label, aal_strlen(plug->label)); if (!(options & (1 << REPAIR_YES))) { aal_ui_get_alpha(buff, cb_check_plugname, &plug, "Enter the key plugin name"); } hint.mask |= (1 << PM_KEY); } hint.key = plug->id.id; hint.blksize = reiser4_master_get_blksize(fs->master); hint.blocks = repair_format_len_old(fs->device, hint.blksize); /* Check the block count if the backup is not opened. */ if (!fs->backup) { if (fs->format) { blocks = reiser4_format_get_len(fs->format); if (repair_format_check_len_old(fs->device, hint.blksize, blocks)) { /* FS length is not valid. */ if (mode != RM_BUILD) return RE_FATAL; blocks = MAX_UINT64; } if (blocks == reiser4_format_len(fs->device, hint.blksize)) { hint.blocks = reiser4_format_len(fs->device, hint.blksize); } if (blocks != MAX_UINT64 && blocks != hint.blocks) { aal_warn("Number of blocks found in the super " "block (%llu) is not equal to the size" " of the partition (%llu).%s", blocks, hint.blocks, mode != RM_BUILD ? " Assuming this is correct.": ""); } } else { blocks = MAX_UINT64; } if (blocks != hint.blocks && mode == RM_BUILD) { /* Confirm that size is correct. */ blocks = blocks != MAX_UINT64 ? blocks : reiser4_format_len(fs->device, hint.blksize); if (!(options & (1 << REPAIR_YES))) { blocks = aal_ui_get_numeric(blocks, cb_check_count, fs, "Enter the correct " "block count please"); } hint.blocks = blocks; } } /* If there still is no format opened, create a new one or regenerate it from the backup if exists. */ if (!fs->format) { if (!(plug = reiser4_factory_ifind(FORMAT_PLUG_TYPE, pid))) { aal_fatal("Failed to find a format plugin " "by its on-disk id (%u).", pid); return -EINVAL; } if (fs->backup) { format = plugcall((reiser4_format_plug_t *)plug, regenerate, fs->device, &fs->backup->hint); } else { format = plugcall((reiser4_format_plug_t *)plug, create, fs->device, &hint); } if (!format) { aal_error("Failed to %s the format '%s' on '%s'.", fs->backup ? "regenerate" : "create", plug->label, fs->device->name); return -EINVAL; } else { aal_warn("The format '%s' is %s on '%s'.", plug->label, fs->backup ? "regenerated from backup" : "created", fs->device->name); } } else { format = fs->format->ent; } /* Check the format structure. If there is no backup and format, then @fent has been just created, nothing to check anymore. */ if (fs->backup || fs->format) { res = plugcall(format->plug, check_struct, format, fs->backup ? &fs->backup->hint : NULL, &hint, mode); } else { res = 0; } if (!fs->format) { if (!(fs->format = aal_calloc(sizeof(reiser4_format_t), 0))) { aal_error("Can't allocate the format."); plugcall((reiser4_format_plug_t *)plug, close, format); return -ENOMEM; } fs->format->fs = fs; fs->format->ent = format; } return res; } errno_t repair_format_update(reiser4_format_t *format) { aal_assert("vpf-829", format != NULL); if (format->ent->plug->update == NULL) return 0; return format->ent->plug->update(format->ent); } /* Fetches format data to @stream. */ errno_t repair_format_pack(reiser4_format_t *format, aal_stream_t *stream) { aal_assert("umka-2604", format != NULL); return reiser4call(format, pack, stream); } /* Prints @format to passed @stream */ void repair_format_print(reiser4_format_t *format, aal_stream_t *stream) { aal_assert("umka-1560", format != NULL); reiser4call(format, print, stream, 0); } /* Loads format data from @stream to format entity. */ reiser4_format_t *repair_format_unpack(reiser4_fs_t *fs, aal_stream_t *stream) { rid_t pid; uint32_t blksize; reiser4_plug_t *plug; reiser4_format_t *format; aal_assert("umka-2606", fs != NULL); aal_assert("umka-2607", stream != NULL); if (aal_stream_read(stream, &pid, sizeof(pid)) != sizeof(pid)) { aal_error("Can't unpack disk format. Stream is over?"); return NULL; } /* Getting needed plugin from plugin factory */ if (!(plug = reiser4_factory_ifind(FORMAT_PLUG_TYPE, pid))) { aal_error("Can't find disk-format plugin by " "its id 0x%x.", pid); return NULL; } /* Allocating memory for format instance. */ if (!(format = aal_calloc(sizeof(*format), 0))) return NULL; format->fs = fs; format->fs->format = format; blksize = reiser4_master_get_blksize(fs->master); if (!(format->ent = plugcall((reiser4_format_plug_t *)plug, unpack, fs->device, blksize, stream))) { aal_error("Can't unpack disk-format."); goto error_free_format; } return format; error_free_format: aal_free(format); return NULL; } errno_t repair_format_check_backup(aal_device_t *device, backup_hint_t *hint) { reiser4_master_sb_t *master; reiser4_plug_t *plug; errno_t res; aal_assert("vpf-1732", hint != NULL); master = (reiser4_master_sb_t *) (hint->block.data + hint->off[BK_MASTER]); if (!(plug = reiser4_factory_ifind(FORMAT_PLUG_TYPE, get_ms_format(master)))) { return RE_FATAL; } if ((res = plugcall((reiser4_format_plug_t *)plug, check_backup, hint))) return res; return (repair_format_check_len_old(device, get_ms_blksize(master), hint->blocks)) ? RE_FATAL : 0; } reiser4progs-1.0.7.orig/librepair/node.c0000644000175000017500000001705111131470543015773 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/node.c - methods are needed for node recovery. */ #include /* Opens the node if it has correct mkid stamp. */ reiser4_node_t *repair_node_open(reiser4_tree_t *tree, blk_t blk, uint32_t mkid) { reiser4_node_t *node; aal_assert("vpf-708", tree != NULL); if (!(node = reiser4_node_open(tree, blk))) return NULL; /* Extra checks are needed. */ if (mkid && mkid != reiser4_node_get_mstamp(node)) goto error_node_free; return node; error_node_free: reiser4_node_close(node); return NULL; } /* Checks all the items of the node. */ static errno_t repair_node_items_check(reiser4_node_t *node, place_func_t func, uint8_t mode, void *data) { reiser4_key_t key, prev; trans_hint_t hint; errno_t res, ret; uint32_t count; reiser4_place_t place; pos_t *pos; aal_assert("vpf-229", node != NULL); aal_assert("vpf-231", node->plug != NULL); res = 0; pos = &place.pos; place.node = node; count = reiser4_node_items(node); aal_memset(&prev, 0, sizeof(prev)); for (pos->item = 0; pos->item < count; pos->item++) { pos->unit = MAX_UINT32; /* Open the item, checking its plugin id. */ if (reiser4_place_fetch(&place)) return -EINVAL; aal_memcpy(&key, &place.key, sizeof(key)); if ((ret = objcall(&key, check_struct) < 0)) return ret; if (ret) { /* Key has some corruptions and cannot be recovered. */ fsck_mess("Node (%llu): The key [%s] of the item " "(%u) is broken.%s", node->block->nr, reiser4_print_key(&place.key), pos->item, mode == RM_BUILD ? " Removed." : ""); goto error_remove_item; } else if (reiser4_key_compfull(&key, &place.key)) { /* @Key has been fixed. */ fsck_mess("Node (%llu): The key [%s] of the item (%u) " "is broken. %s [%s].", node->block->nr, reiser4_print_key(&place.key), pos->item, (ret && mode == RM_CHECK) ? "Should be" : "Fixed to", reiser4_print_key(&key)); if (mode == RM_CHECK) res |= RE_FIXABLE; else { reiser4_node_update_key(node, pos, &key); reiser4_node_mkdirty(node); } } /* Check the item structure. */ if ((ret = repair_item_check_struct(&place, mode)) < 0) return ret; /* Remove the item if fatal error. */ if (ret & RE_FATAL) { fsck_mess("Node (%llu), item (%u), [%s]: broken item " "found.%s", node->block->nr, pos->item, reiser4_print_key(&key), mode == RM_BUILD ? " Remove it." : ""); goto error_remove_item; } res |= ret; if (prev.plug) { if (reiser4_key_compfull(&prev, &key) > 0) { fsck_mess("Node (%llu), items (%u) and " "(%u): Wrong order of keys.", node->block->nr, pos->item - 1, pos->item); return RE_FATAL; } } prev = key; if ((ret = reiser4_item_maxreal_key(&place, &key))) return ret; /* Check that the maxreal key is not less than the place key */ if (reiser4_key_compfull(&prev, &key) > 0) { fsck_mess("Node (%llu), item (%u): has the wrong key " "or too large body: from [%s] to [%s].", node->block->nr, pos->item, reiser4_print_key(&prev), reiser4_print_key(&key)); goto error_remove_item; } if (func && (ret = func(&place, data))) return ret; prev = key; continue; error_remove_item: if (mode != RM_BUILD) { res |= RE_FATAL; continue; } aal_memset(&hint, 0, sizeof(hint)); hint.count = 1; hint.place_func = NULL; hint.region_func = NULL; hint.shift_flags = SF_DEFAULT; if ((ret = reiser4_node_remove(node, pos, &hint))) return ret; pos->item--; count = reiser4_node_items(node); } return res; } errno_t repair_node_check_level(reiser4_node_t *node, uint8_t mode) { reiser4_place_t place; uint32_t count; uint8_t level; errno_t res; pos_t *pos; aal_assert("vpf-494", node != NULL); aal_assert("vpf-220", node->plug != NULL); level = reiser4_node_get_level(node); count = reiser4_node_items(node); place.node = node; pos = &place.pos; res = 0; level = reiser4_node_get_level(node); /* Level of the node must be > 0 */ if (!level) { fsck_mess("Node (%llu): illegal level found (%u).", node->block->nr, level); return RE_FATAL; } pos->unit = MAX_UINT32; for (pos->item = 0; pos->item < count; pos->item++) { /* Open the item, checking its plugin id. */ if ((res = reiser4_place_fetch(&place))) return res; /* Check that the item is legal for this node. If not, it is not recoverable corruption for now. FIXME-VITALY: how to recover valuable data from here? */ if (!repair_tree_legal_level(place.plug, reiser4_node_get_level(node))) { fsck_mess("Node (%llu): Node level (%u) does not match " "to the item type (%s).", node->block->nr, reiser4_node_get_level(node), place.plug->p.label); return RE_FATAL; } } return 0; } /* Checks the node content. */ errno_t repair_node_check_struct(reiser4_node_t *node, place_func_t func, uint8_t mode, void *data) { errno_t res; aal_assert("vpf-494", node != NULL); aal_assert("vpf-220", node->plug != NULL); res = objcall(node, check_struct, mode); if (repair_error_fatal(res)) return res; res |= repair_node_items_check(node, func, mode, data); return res; } errno_t repair_node_clear_flags(reiser4_node_t *node) { pos_t *pos; uint32_t count; reiser4_place_t place; aal_assert("vpf-1401", node != NULL); aal_assert("vpf-1403", node->plug != NULL); place.node = node; count = reiser4_node_items(node); pos = &place.pos; pos->unit = MAX_UINT32; for (pos->item = 0; pos->item < count; pos->item++) { if (reiser4_place_fetch(&place)) return -EINVAL; reiser4_item_clear_flags(&place); } return 0; } /* Packes @node to @stream. */ errno_t repair_node_pack(reiser4_node_t *node, aal_stream_t *stream) { aal_assert("umka-2622", node != NULL); aal_assert("umka-2623", stream != NULL); return objcall(node, pack, stream); } /* Create node from passed @stream. */ reiser4_node_t *repair_node_unpack(reiser4_tree_t *tree, aal_stream_t *stream) { blk_t blk; rid_t pid; reiser4_node_t *node; uint32_t size; aal_block_t *block; reiser4_plug_t *plug; aal_device_t *device; aal_assert("umka-2625", stream != NULL); aal_assert("umka-2624", tree != NULL); aal_assert("vpf-1656", tree->fs != NULL); aal_assert("vpf-1657", tree->fs->device != NULL); if (aal_stream_read(stream, &pid, sizeof(pid)) != sizeof(pid)) goto error_eostream; if (aal_stream_read(stream, &blk, sizeof(blk)) != sizeof(blk)) goto error_eostream; /* Finding the node plugin by its id */ if (!(plug = reiser4_factory_ifind(NODE_PLUG_TYPE, pid))) { aal_error("Can't find node plugin by its id 0x%x.", pid); return NULL; } size = reiser4_tree_get_blksize(tree); device = tree->fs->device; /* Allocate new node of @size at @nr. */ if (!(block = aal_block_alloc(device, size, blk))) return NULL; aal_block_fill(block, 0); /* Requesting the plugin for initialization node entity. */ if (!(node = plugcall((reiser4_node_plug_t *)plug, unpack, block, tree->key.plug, stream))) { goto error_free_block; } return node; error_free_block: aal_block_free(block); return NULL; error_eostream: aal_error("Can't unpack the node. Stream is over?"); return NULL; } /* Print passed @node to the specified @stream */ void repair_node_print(reiser4_node_t *node, aal_stream_t *stream) { aal_assert("umka-1537", node != NULL); aal_assert("umka-1538", stream != NULL); plugcall(node->plug, print, node, stream, -1, -1, 0); } reiser4progs-1.0.7.orig/librepair/semantic.c0000644000175000017500000005562111131470543016656 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/semantic.c -- semantic pass recovery code. */ #include static void repair_semantic_lost_name(reiser4_object_t *object, char *name, int namelen) { uint8_t len1, len2; char *key; len1 = aal_strlen(LOST_PREFIX); key = reiser4_print_inode(&object->info.object); len2 = aal_strlen(key); if (len1 + len2 >= namelen) len2 = namelen - len1 - 1; aal_memcpy(name, LOST_PREFIX, len1); aal_memcpy(name + len1, key, len2); name[len1 + len2] = 0; } /* Callback for repair_object_check_struct. Mark the passed item as CHECKED. */ static errno_t cb_register_item(reiser4_place_t *place, void *data) { aal_assert("vpf-1115", place != NULL); if (reiser4_item_test_flag(place, OF_CHECKED)) { fsck_mess("Node (%llu), item (%u), [%s]: item registering " "failed, it belongs to another object already.", place_blknr(place), place->pos.item, reiser4_print_key(&place->key)); return -EINVAL; } reiser4_item_set_flag(place, OF_CHECKED); return 0; } static void repair_semantic_register_oid(repair_semantic_t *sem, oid_t oid) { if (sem->stat.oid < oid) sem->stat.oid = oid; } static errno_t repair_semantic_check_struct(repair_semantic_t *sem, reiser4_object_t *object) { errno_t res = 0; oid_t oid; aal_assert("vpf-1169", sem != NULL); aal_assert("vpf-1170", object != NULL); oid = reiser4_key_get_objectid(&object->info.object); /* Check struct if not the BUILD mode, if the fake object or if has not been checked yet. */ if (sem->repair->mode != RM_BUILD || !object_start(object)->node || !reiser4_item_test_flag(object_start(object), OF_CHECKED)) { place_func_t place_func = sem->repair->mode == RM_BUILD ? cb_register_item : NULL; res = repair_object_check_struct(object, place_func, sem->repair->mode, sem); if (res < 0) return res; if (!repair_error_fatal(res)) { repair_semantic_register_oid(sem, oid); sem->stat.reached_files++; } repair_error_count(sem->repair, res); } /* Update the @object->info.parent. */ res |= repair_object_refresh(object); return res; } static errno_t repair_semantic_check_attach(repair_semantic_t *sem, reiser4_object_t *parent, reiser4_object_t *object) { place_func_t place_func; errno_t res; aal_assert("vpf-1182", sem != NULL); aal_assert("vpf-1183", object != NULL); aal_assert("vpf-1255", parent != NULL); place_func = sem->repair->mode == RM_BUILD ? cb_register_item : NULL; /* Even if this object is ATTACHED already it may allow many names to itself -- check the attach with this @parent. */ res = repair_object_check_attach(parent, object, place_func, sem, sem->repair->mode); if (res < 0) return res; repair_error_count(sem->repair, res); if (res & RE_FATAL) return res; if (sem->repair->mode != RM_BUILD) return res; /* Increment the link. */ if ((res = plugcall(reiser4_psobj(object), link, object))) return res; /* If @parent is "lost+found", do not mark as ATTACHED. */ if (sem->lost && !reiser4_key_compshort(&parent->info.object, &sem->lost->info.object)) return 0; return repair_object_mark(object, OF_ATTACHED); } static errno_t repair_semantic_add_entry(reiser4_object_t *parent, reiser4_object_t *object, char *name) { entry_hint_t entry; errno_t res; aal_memset(&entry, 0, sizeof(entry)); aal_strncpy(entry.name, name, sizeof(entry.name)); aal_memcpy(&entry.object, &object->info.object, sizeof(entry.object)); entry.place_func = cb_register_item; entry.data = NULL; if ((res = reiser4_object_add_entry(parent, &entry))) aal_error("Can't add entry %s to %s.", name, reiser4_print_inode(&parent->info.object)); return res; } static errno_t repair_semantic_link_lost(repair_semantic_t *sem, reiser4_object_t *parent, reiser4_object_t *object) { errno_t res; char buff[REISER4_MAX_BLKSIZE]; aal_assert("vpf-1178", sem != NULL); aal_assert("vpf-1179", parent != NULL); aal_assert("vpf-1180", object != NULL); /* Make the lost name. */ repair_semantic_lost_name(object, buff, REISER4_MAX_BLKSIZE); /* Detach if possible. */ if ((res = reiser4_object_detach(object, NULL))) return res; /* Add the entry to the @parent. */ if ((res = repair_semantic_add_entry(parent, object, buff))) return res; /* Check the attach of the @object to the @parent. */ if ((res = repair_semantic_check_attach(sem, parent, object))) return res; return 0; } /* If the @object keeps the info about its parent, look for it and recover the link between them. Continue it untill an object with unknown or unreachable parent is found. */ static reiser4_object_t *repair_semantic_uplink(repair_semantic_t *sem, reiser4_object_t *object) { bool_t checked; reiser4_object_t *parent, *found; reiser4_place_t *pstart; entry_hint_t entry; errno_t res; aal_assert("vpf-1184", object != NULL); if (!object->info.parent.plug) return NULL; parent = repair_object_obtain((reiser4_tree_t *)object->info.tree, NULL, &object->info.parent); if (parent == INVAL_PTR) return INVAL_PTR; if (parent == NULL) goto error_object_detach; pstart = object_start(parent); /* If ATTACHING -- parent is in the loop, break it here. */ if (reiser4_item_test_flag(pstart, OF_ATTACHING)) { reiser4_object_close(parent); goto error_object_detach; } checked = reiser4_item_test_flag(pstart, OF_CHECKED); if (checked) { /* If parent is "lost+found" (already checked), detach from it. */ if (!reiser4_key_compshort(&parent->info.object, &sem->lost->info.object)) { reiser4_object_close(parent); goto error_object_detach; } /* Init all needed info for the object. */ if ((res = repair_object_refresh(parent))) goto error_parent_close; if ((res = repair_semantic_link_lost(sem, parent, object))) goto error_parent_close; /* Parent was checked and traversed already, stop here to not traverse it another time. */ reiser4_object_close(parent); return NULL; } sem->stat.statdatas++; aal_gauge_set_value(sem->gauge, sem->stat.statdatas * 100 / sem->stat.files); aal_gauge_touch(sem->gauge); /* Some parent was found, check it and attach to it. */ if ((res = repair_semantic_check_struct(sem, parent)) < 0) goto error_parent_close; aal_assert("vpf-1261", res == 0); /* Check that parent has a link to the object. */ while ((res = reiser4_object_readdir(parent, &entry)) > 0) { if (reiser4_key_compshort(&object->info.object, &entry.object)) break; } if (!res) { char buff[REISER4_MAX_BLKSIZE]; /* EOF was reached. Add entry to the parent. */ repair_semantic_lost_name(object, buff, REISER4_MAX_BLKSIZE); if ((res = repair_semantic_add_entry(parent, object, buff))) goto error_parent_close; /* Do not check attach here, as the pointer to parent will be returned and it will be traversed, all attaches will be checked there. */ } else if (res < 0) goto error_parent_close; /* Get the start place correct. */ if ((res = repair_object_mark(object, OF_ATTACHING))) goto error_parent_close; /* Get the @parent's parent. */ found = repair_semantic_uplink(sem, parent); /* Get the start place correct. */ if ((res = repair_object_clear(object, OF_ATTACHING))) goto error_parent_close; /* If nothing above the parent is found, return parent. */ if (!found) return parent; reiser4_object_close(parent); return found; error_object_detach: /* Detach if possible. */ res = reiser4_object_detach(object, NULL); return res < 0 ? INVAL_PTR : NULL; error_parent_close: reiser4_object_close(parent); return res < 0 ? INVAL_PTR : NULL; } static errno_t repair_semantic_uptraverse(repair_semantic_t *sem, reiser4_object_t *parent, reiser4_object_t *object); static reiser4_object_t *cb_object_traverse(reiser4_object_t *parent, entry_hint_t *entry, void *data) { repair_semantic_t *sem = (repair_semantic_t *)data; reiser4_object_t *object; bool_t checked, attached; reiser4_place_t *start; errno_t res = 0; aal_assert("vpf-1172", parent != NULL); aal_assert("vpf-1173", entry != NULL); /* Traverse names only. Other entries should be recovered at check_struct and check_attach time. */ if (entry->type != ET_NAME) return NULL; /* Try to recognize the object by the key. */ object = repair_object_obtain((reiser4_tree_t *)parent->info.tree, parent, &entry->object); if (object == INVAL_PTR) return INVAL_PTR; if (object == NULL) { fsck_mess("Directory [%s]: can't find the object " "[%s] pointed by the entry [%s].%s", reiser4_print_inode(&parent->info.object), reiser4_print_inode(&entry->object), entry->name, sem->repair->mode != RM_CHECK ? " Entry is removed." : ""); if (sem->repair->mode != RM_CHECK) goto error_rem_entry; sem->repair->fixable++; return NULL; } start = object_start(object); checked = reiser4_item_test_flag(start, OF_CHECKED); attached = reiser4_item_test_flag(start, OF_ATTACHED); if (!checked) { uint64_t val; sem->stat.statdatas++; val = sem->stat.statdatas * 100 /sem->stat.files; aal_gauge_set_value(sem->gauge, val > 100 ? 100 : val); aal_gauge_touch(sem->gauge); } res = repair_semantic_check_struct(sem, object); if (repair_error_fatal(res)) goto error_close_object; /* If @object is not attached yet, [ a) was just checked; b) is linked to "lost+found" ]. If not ATTACHED @object knows about its parent, this parent matches @parent, otherwise do uptraverse(). */ while (sem->repair->mode == RM_BUILD && !attached) { /* If @object knows nothing about its parent, just attach it to the @parent. */ if (!object->info.parent.plug) break; /* If parent of the @object matches @parent, just check_attach. */ if (!reiser4_key_compshort(&object->info.parent, &parent->info.object)) break; if (!checked) { /* If @object was just checked, probably its real parent can be found, figure it out. */ res = repair_semantic_uptraverse(sem, NULL, object); if (res) goto error_close_object; } else { /* If @object is checked and not attached: (1) if parent matches "lost+found", unlink; (2) if not, do not unlink it as it seems the only possible case here is to check the object and to uptraverse it and reach it from some other parent. */ char buff[REISER4_MAX_BLKSIZE]; if (!reiser4_key_compshort(&object->info.parent, &sem->lost->info.object)) { repair_semantic_lost_name(object, buff, REISER4_MAX_BLKSIZE); res = reiser4_object_unlink(sem->lost, buff); if (res) goto error_close_object; } } break; } /* Check the attach with @parent. */ if ((res = repair_semantic_check_attach(sem, parent, object)) < 0) goto error_close_object; /* If @object cannot be attached to @parent, remove this entry. */ if (res & RE_FATAL && sem->repair->mode == RM_BUILD) { sem->repair->fatal--; goto error_rem_entry; } /* If object has been traversed already, close the object here to avoid another traversing. */ if (sem->repair->mode == RM_BUILD) { if (reiser4_item_test_flag(start, OF_TRAVERSED)) { reiser4_object_close(object); return NULL; } else { reiser4_item_set_flag(start, OF_TRAVERSED); } } return object; error_rem_entry: res = reiser4_object_rem_entry(parent, entry); sem->stat.rm_entries++; if (res < 0) { aal_error("Semantic traverse failed to remove the " "entry \"%s\" [%s] pointing to [%s].", entry->name, reiser4_print_inode(&entry->offset), reiser4_print_inode(&entry->object)); } error_close_object: if (object) reiser4_object_close(object); return res < 0 ? INVAL_PTR : NULL; } /* Uplink + traverse. Looking for the most upper parent of the @object; if found, link that parent to the "lost+found", if no parent of the @object is found, link @object to the @parent. If @parent is found, traverse from there, if not, do not traverse from the @object. */ static errno_t repair_semantic_uptraverse(repair_semantic_t *sem, reiser4_object_t *parent, reiser4_object_t *object) { reiser4_object_t *o = NULL; reiser4_object_t *p = NULL; reiser4_object_t *upper; errno_t res; aal_assert("vpf-1191", sem != NULL); aal_assert("vpf-1192", object != NULL); if ((upper = repair_semantic_uplink(sem, object)) == INVAL_PTR) return -EINVAL; if (upper) { o = upper; p = sem->lost; } else if (parent) { o = object; p = parent; } if (!o) return 0; /* Link @object to the @parent if not attached yet. */ if ((res = repair_object_test(o, OF_ATTACHED)) < 0) goto error_close_upper; if (!res && (res = repair_semantic_link_lost(sem, p, o))) goto error_close_upper; /* Traverse from the upper found object. */ res = reiser4_object_traverse(o, cb_object_traverse, sem); error_close_upper: if (upper) reiser4_object_close(upper); return res; } static errno_t cb_tree_scan(reiser4_place_t *place, void *data) { repair_semantic_t *sem = (repair_semantic_t *)data; reiser4_object_t *object; errno_t res; aal_assert("vpf-1171", place != NULL); aal_assert("vpf-1037", sem != NULL); /* Objects w/out SD get recovered only when reached from the parent. */ if (!reiser4_item_statdata(place)) return 0; aal_gauge_touch(sem->gauge); /* If this item was checked already, skip it. */ if (reiser4_item_test_flag(place, OF_CHECKED)) return 0; sem->stat.statdatas++; aal_gauge_set_value(sem->gauge, sem->stat.statdatas * 100 / sem->stat.files); /* Try to open the object by its SD. */ object = repair_object_open(sem->repair->fs->tree, NULL, place); if (object == INVAL_PTR) return -EINVAL; else if (object == NULL) return 0; /* Some object was opened. Check its structure and traverse from it. */ res = repair_semantic_check_struct(sem, object); if (repair_error_fatal(res)) goto error_close_object; sem->stat.lost_files++; /* Try to attach it somewhere -- at least to lost+found. */ if ((res = repair_semantic_uptraverse(sem, sem->lost, object))) goto error_close_object; reiser4_object_close(object); return res < 0 ? res : 1; error_close_object: reiser4_object_close(object); /* Return the error or that another lookup is needed. */ return res < 0 ? res : 1; } /* Trying to recognize a directory by the given @key. If fails a fake one is created for BUILD mode. */ static reiser4_object_t *repair_semantic_dir_open(repair_semantic_t *sem, reiser4_object_t *parent, reiser4_key_t *key) { reiser4_object_t *object; reiser4_tree_t *tree; reiser4_plug_t *plug; aal_assert("vpf-1250", sem != NULL); aal_assert("vpf-1251", key != NULL); tree = sem->repair->fs->tree; if ((object = repair_object_obtain(tree, parent, key)) == INVAL_PTR) return INVAL_PTR; if (object) { /* Check that the object was recognized by the dir plugin. */ if (reiser4_psobj(object)->p.id.group == DIR_OBJECT) return object; fsck_mess("The directory [%s] is recognized by the " "%s plugin which is not a directory one.", reiser4_print_inode(key), reiser4_psobj(object)->p.label); reiser4_object_close(object); } else { /* No plugin was recognized. */ fsck_mess("Failed to recognize the plugin for the directory " "[%s].", reiser4_print_inode(key)); } if (sem->repair->mode != RM_BUILD) return NULL; plug = reiser4_profile_plug(PROF_DIRFILE); fsck_mess("Trying to recover the directory [%s] with the default " "plugin--%s.", reiser4_print_inode(key), plug->label); sem->stat.files++; return repair_object_fake(tree, parent, key, plug); } static errno_t repair_semantic_object_check(repair_semantic_t *sem, reiser4_object_t *parent, reiser4_object_t *object, int not_attach) { errno_t res; aal_assert("vpf-1266", sem != NULL); aal_assert("vpf-1268", object != NULL); aal_assert("vpf-1419", parent != NULL); sem->stat.statdatas++; aal_gauge_set_value(sem->gauge, sem->stat.statdatas * 100 / sem->stat.files); aal_gauge_touch(sem->gauge); /* Check the object. */ res = repair_semantic_check_struct(sem, object); if (repair_error_fatal(res)) return res; while (sem->repair->mode == RM_BUILD) { /* Check the attach before. */ res = repair_object_check_attach(parent, object, cb_register_item, sem, RM_FIX); if (res < 0) return res; else if (res == 0) break; fsck_mess("Object [%s]: detaching.", reiser4_print_inode(&object->info.object)); if ((res = reiser4_object_detach(object, NULL))) return res; fsck_mess("Object [%s]: attaching to [%s].", reiser4_print_inode(&object->info.object), reiser4_print_inode(&object->info.parent)); break; } if (not_attach) return 0; return repair_semantic_check_attach(sem, parent, object); } static errno_t repair_semantic_root_prepare(repair_semantic_t *sem) { reiser4_fs_t *fs; errno_t res; aal_assert("vpf-1264", sem != NULL); fs = sem->repair->fs; /* Force the root dir to be recognized. */ sem->root = repair_semantic_dir_open(sem, NULL, &fs->tree->key); if (sem->root == NULL) { sem->repair->fatal++; fsck_mess("No root directory opened."); return RE_FATAL; } else if (sem->root == INVAL_PTR) { sem->root = NULL; return -EINVAL; } if (fs->backup && fs->backup->hint.version > 0) { /* Check the fs-default plugin set by the backup. */ res = repair_pset_root_check(sem->repair->fs, sem->root, sem->repair->mode); if (res != 0) goto error; } if ((res = repair_semantic_object_check(sem, sem->root, sem->root, 0))) { goto error; } return 0; error: repair_error_count(sem->repair, res); reiser4_object_close(sem->root); sem->root = NULL; return res; } static errno_t repair_semantic_lost_prepare(repair_semantic_t *sem) { reiser4_key_t lost; entry_hint_t entry; reiser4_fs_t *fs; errno_t lookup; errno_t res; uint8_t len; aal_assert("vpf-1252", sem != NULL); aal_assert("vpf-1265", sem->root != NULL); fs = sem->repair->fs; /* Look for the entry "lost+found" in the "/". */ if ((lookup = reiser4_object_lookup(sem->root, "lost+found", &entry)) < 0) return lookup; /* Prepare the lost+found key. */ if (lookup == ABSENT) { if ((res = repair_fs_lost_key(fs, &lost))) return res; fsck_mess("No 'lost+found' entry found. " "Building a new object with the key %s.", reiser4_print_inode(&lost)); } else { aal_memcpy(&lost, &entry.object, sizeof(lost)); } /* Try to open the "lost+found" object by its key. */ sem->lost = repair_semantic_dir_open(sem, sem->root, &lost); if (sem->lost == INVAL_PTR) { sem->lost = NULL; return -EINVAL; } else if (sem->lost == NULL) { sem->repair->fatal++; fsck_mess("No 'lost+found' directory opened."); return RE_FATAL; } if ((res = repair_semantic_object_check(sem, sem->root, sem->lost, 1))) goto error_close_lost; if (lookup == ABSENT) { /* Add the entry to the @parent. */ if ((res = repair_semantic_add_entry(sem->root, sem->lost, "lost+found"))) return res; } len = aal_strlen(LOST_PREFIX); /* Remove all "lost_found_" names from "lost+found" directory. This is needed to not have any special case later -- when some object gets linked to "lost+found" it is not marked as ATTCHED to relink it later to some another object having the valid name if such is found. */ while (reiser4_object_readdir(sem->lost, &entry) > 0) { if (aal_memcmp(entry.name, LOST_PREFIX, len)) continue; if (( res = reiser4_object_rem_entry(sem->lost, &entry))) goto error_close_lost; } return 0; error_close_lost: reiser4_object_close(sem->lost); sem->lost = NULL; return res; } static void repair_semantic_update(repair_semantic_t *sem) { repair_semantic_stat_t *stat; aal_stream_t stream; char *time_str; stat = &sem->stat; aal_stream_init(&stream, NULL, &memory_stream); if (stat->reached_files) { aal_stream_format(&stream, "\tFound %llu objects%s.\n", stat->reached_files, sem->repair->mode == RM_BUILD ? "" : " (some could be " "encountered more then once)"); } if (stat->lost_files) { aal_stream_format(&stream, "\tLost&found %llu objects.\n", stat->lost_files); } if (stat->shared) aal_stream_format(&stream, "\tObjects relocated to another " "object id %llu\n", stat->shared); if (stat->rm_entries) aal_stream_format(&stream, "\tRemoved names pointing to " "nowhere %llu\n", stat->rm_entries); if (stat->broken) aal_stream_format(&stream, "\tUnrecoverable objects found " "%llu\n", stat->broken); time_str = ctime(&sem->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, "\tTime interval: %s - ", time_str); time(&sem->stat.time); time_str = ctime(&sem->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, time_str); aal_mess(stream.entity); aal_stream_fini(&stream); } errno_t repair_semantic(repair_semantic_t *sem) { reiser4_tree_t *tree; errno_t res = 0; aal_assert("vpf-1025", sem != NULL); aal_assert("vpf-1026", sem->repair != NULL); aal_assert("vpf-1027", sem->repair->fs != NULL); aal_assert("vpf-1028", sem->repair->fs->tree != NULL); tree = sem->repair->fs->tree; if (reiser4_tree_fresh(tree)) { aal_fatal("No reiser4 metadata were found. " "Semantic pass is skipped."); sem->repair->fatal++; goto error; } if ((res = reiser4_tree_load_root(tree))) goto error; aal_mess("CHECKING THE SEMANTIC TREE"); sem->gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], NULL, NULL, 500, NULL); aal_gauge_set_value(sem->gauge, 0); aal_gauge_touch(sem->gauge); time(&sem->stat.time); if (tree->root == NULL) { res = -EINVAL; goto error_update; } /* Open "/" directory. */ if ((res = repair_semantic_root_prepare(sem))) goto error_update; if ((res = reiser4_pset_tree(tree, 0))) goto error_close_root; /* Open "lost+found" directory in BUILD mode. */ if (sem->repair->mode == RM_BUILD) { if ((res = repair_semantic_lost_prepare(sem))) goto error_close_root; } /* Traverse "/" and recover all reachable subtree. */ res = reiser4_object_traverse(sem->root, cb_object_traverse, sem); if (res) goto error_close_lost; reiser4_object_close(sem->root); sem->root = NULL; /* Connect lost objects to their parents -- if parents can be identified -- or to "lost+found". */ if (sem->repair->mode == RM_BUILD) { if ((res = reiser4_tree_scan(tree, NULL, cb_tree_scan, sem))) goto error_close_lost; } error_close_lost: if (sem->lost) { reiser4_object_close(sem->lost); sem->lost = NULL; } error_close_root: if (sem->root) { reiser4_object_close(sem->root); sem->root = NULL; } error_update: aal_gauge_done(sem->gauge); aal_gauge_free(sem->gauge); repair_semantic_update(sem); error: if ((res >= 0) && sem->repair->mode != RM_CHECK) reiser4_fs_sync(sem->repair->fs); return res < 0 ? res : 0; } reiser4progs-1.0.7.orig/librepair/backup.c0000644000175000017500000003340311131470543016312 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. backup.c -- filesystem backup methods. */ #include static errno_t cb_pack(blk_t blk, uint64_t count, void *data) { reiser4_fs_t *fs = (reiser4_fs_t *)data; aal_stream_t *stream = (aal_stream_t *)fs->data; count_t size; aal_block_t *block; /* Open the block to be packed. */ size = reiser4_master_get_blksize(fs->master); if (!(block = aal_block_load(fs->device, size, blk))) { aal_error("Failed to load a block (%llu) of " "the fs metadata backup.", blk); return -EIO; } aal_stream_write(stream, block->data, block->size); aal_block_free(block); return 0; } errno_t repair_backup_pack(reiser4_fs_t *fs, aal_stream_t *stream) { aal_assert("vpf-1411", fs != NULL); aal_assert("vpf-1412", stream != NULL); fs->data = stream; return reiser4_backup_layout(fs, cb_pack, fs); } static errno_t cb_unpack(blk_t blk, uint64_t count, void *data) { reiser4_fs_t *fs = (reiser4_fs_t *)data; aal_stream_t *stream = (aal_stream_t *)fs->data; count_t size; aal_block_t *block; /* Allocate the block to be unpacked. */ size = reiser4_master_get_blksize(fs->master); if (!(block = aal_block_alloc(fs->device, size, blk))) { aal_error("Failed to allocate a block (%llu) " "for the fs metadata backup.", blk); return -ENOMEM; } /* Read from the stream to the allocated block and write the block. */ if (aal_stream_read(stream, block->data, size) != (int64_t)size) goto error_free_block; aal_block_write(block); aal_block_free(block); return 0; error_free_block: aal_error("Can't unpack the block (%llu). Stream is over?", blk); aal_block_free(block); return -EIO; } errno_t repair_backup_unpack(reiser4_fs_t *fs, aal_stream_t *stream) { aal_assert("vpf-1413", fs != NULL); aal_assert("vpf-1414", stream != NULL); fs->data = stream; return reiser4_backup_layout(fs, cb_unpack, fs); } static int repair_backup_hint_cmp(backup_hint_t *list, backup_hint_t *hint, int size) { if (list->block.size < hint->block.size) return -1; if (list->block.size > hint->block.size) return 1; return aal_memcmp(list->block.data, hint->block.data, size); } static backup_hint_t *repair_backup_hint_create(backup_hint_t *hint, aal_device_t *device, uint32_t size, int zero) { backup_hint_t *newbh; if (!hint && !size) return NULL; /* Backup block looks correct. Save it. */ if (!(newbh = aal_calloc(sizeof(*newbh), 0))) return NULL; if (hint) { aal_memcpy(newbh, hint, sizeof(*hint)); if (aal_block_init(&newbh->block, newbh->block.device, newbh->block.size, newbh->block.nr)) { goto error; } aal_memcpy(newbh->block.data, hint->block.data, hint->block.size); } else { if (aal_block_init(&newbh->block, device, size, 0)) { goto error; } } if (zero) { aal_block_fill(&newbh->block, 0); } return newbh; error: aal_free(newbh); return NULL; } static errno_t cb_save_backup(uint64_t blk, uint64_t count, void *data) { reiser4_backup_t *backup; backup_hint_t *hint; backup_hint_t *cur; aal_list_t *blocks; aal_list_t *at; errno_t res; int cmp = 1; backup = (reiser4_backup_t *)data; blocks = (aal_list_t *)backup->data; backup->hint.block.nr = blk; backup->hint.blocks = backup->hint.count = backup->hint.total = 0; /* Read the pointed block. */ if (aal_block_read(&backup->hint.block)) return -EIO; /* Check if this is a consistent backup block. */ if ((res = repair_fs_check_backup(backup->fs->device, &backup->hint))) return res < 0 ? res : 0; /* Backup block looks correct. Save it. */ aal_list_foreach_forward(blocks, at) { cur = (backup_hint_t *)at->data; cmp = repair_backup_hint_cmp(cur, &backup->hint, cur->block.size); /* Such a backup is found already, increment the counter. */ if (!cmp) cur->count++; if (cmp >= 0 || !at->next) break; } if (cmp) { if (!(hint = repair_backup_hint_create(&backup->hint, NULL, 0, 0))) { return -ENOMEM; } hint->count = 1; at = (cmp > 0) ? aal_list_prepend(at, hint) : aal_list_append(at, hint); if (!blocks || blocks == at->next) blocks = at; } backup->data = blocks; return 0; } static errno_t cb_backup_count(uint64_t blk, uint64_t count, void *data) { backup_hint_t *hint = (backup_hint_t *)data; hint->total++; return 0; } static void repair_backup_hint_close(backup_hint_t *hint) { aal_block_fini(&hint->block); aal_free(hint); } static errno_t cb_blocks_free(void *h, void *data) { backup_hint_t *hint = (backup_hint_t *)h; aal_block_fini(&hint->block); aal_free(hint); return 0; } extern errno_t reiser4_backup_layout_body(reiser4_alloc_t *alloc, uint32_t blksize, uint64_t len, region_func_t func, void *data); /* This method reads all possible locations of backup blocks and make a decision what block is a correct one and what is a corrupted one. It must work even if master or format-specific super block cannot be opened. Algorithm. (1) Read all possible locations of backup block for all block allocator plugins and for all block sizes. (2) For every read block, check the consistency: check magics, valid plugin ids, block size, etc. (3) Make a list of backups that could be correct backups with counters for every backup version. (4) Create a fresh backup on the fs metadata (master sb, etc). (5) Make a decision what version is the correct as the maximum of function: f = [ 66 % * MATCHES / COUNT ] + [ 33 % * META ] MATCHES - count of matched block contents; TOTAL - total block count for this backup type (it depends on allocator plugin, block size); META - 1 if read block matches the fresh backup, 0 if not; When the most valuable backup block is choosed and master + format are opened, but they do not match each other, another decision if the backup or the current fs metadata is correct is taken: +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+ | + | + | + | - | | + | + | - | + | | + | - | + | - | | + | - | - | - | | - | + | + | + | | - | + | - | + | | - | - | + | + | | - | - | - | + | +---+---+---+---+ where columns are: (1) Matched backup block count == 1 (fs len is taken from backup). (2) Total backup block count == Matched backup block count (--||--). (3) Total backup block count == 1 (fs len is taken from the __FORMAT__). (4) If backup gets opened. */ reiser4_backup_t *repair_backup_open(reiser4_fs_t *fs, uint8_t mode) { reiser4_backup_t *backup; reiser4_alloc_t alloc; reiser4_plug_t *plug; backup_hint_t *ondisk; backup_hint_t *hint; backup_hint_t *app; aal_list_t *list; aal_list_t *at; uint32_t blksize; uint64_t blocks; uint8_t max; errno_t res; int found; rid_t id; aal_assert("vpf-1728", fs != NULL); /* Allocating and initializing the backup. */ if (!(backup = aal_calloc(sizeof(*backup), 0))) return NULL; backup->fs = fs; backup->data = list = NULL; ondisk = NULL; for (blksize = REISER4_MIN_BLKSIZE; blksize <= REISER4_MAX_BLKSIZE; blksize *= 2) { if (aal_block_init(&backup->hint.block, fs->device, blksize, 0)) { aal_error("Can't initialize the block."); goto error_free_backup; } aal_block_fill(&backup->hint.block, 0); blocks = repair_format_len_old(fs->device, blksize); for (id = 0; id < ALLOC_LAST_ID; id++) { plug = reiser4_factory_ifind(ALLOC_PLUG_TYPE, id); /* Plug must be found. */ if (!plug) { aal_error("Can't find the allocator plugin " "by its id 0x%x.", id); goto error_fini_backup; } /* Allocate a block alloc entity. */ if (!(alloc.ent = plugcall((reiser4_alloc_plug_t *)plug, create, fs->device, blksize, blocks))) { aal_error("Can't create the allocator '%s' on " "%s.", plug->label, fs->device->name); goto error_fini_backup; } /* Walk backup layout. */ if (reiser4_backup_layout_body(&alloc, blksize, blocks, cb_save_backup, backup)) { goto error_free_alloc; } /* For every new found backup block calculate the total amount of backup blocks on the device of the lengths kept in the backup. */ list = backup->data; aal_list_foreach_forward(list, at) { hint = (backup_hint_t *)at->data; /* Has been calculated already. */ if (hint->total) continue; /* Walk backup layout. */ if (reiser4_backup_layout_body(&alloc, blksize, hint->blocks, cb_backup_count, hint)) { goto error_free_alloc; } /* If we found more backup blocks than the max possible count of such blocks, descrease @count to the max value. */ if (hint->count > hint->total) hint->count = hint->total; } /* Close alloc entity. */ plugcall((reiser4_alloc_plug_t *)plug, close, alloc.ent); } aal_block_fini(&backup->hint.block); } /* If no one valid backup block is found. */ if (list == NULL) goto error_free_backup; /* All valid backup blocks are gathered into the list. Make a decision if possible what is the correct backup block. */ if (fs->master && fs->format) { /* If master & format are opened, create a fresh backup and compare found backups with the currect fs metadata. */ blocks = reiser4_master_get_blksize(fs->master); if (!(ondisk = repair_backup_hint_create(NULL, fs->device, blocks, 1))) { aal_error("Can't create a backup hint."); goto error_free_backup; } if (reiser4_fs_backup(fs, ondisk)) { aal_error("Can't backup the fs on %s.", fs->device->name); repair_backup_hint_close(ondisk); goto error_free_backup; } /* Check if this is a consistent backup block. */ if ((res = repair_fs_check_backup(fs->device, ondisk))) { if (res < 0) { aal_error("Failed to check the backup."); goto error_free_ondisk; } repair_backup_hint_close(ondisk); ondisk = NULL; } if (ondisk) { blksize = reiser4_master_get_blksize(fs->master); id = reiser4_format_alloc_pid(fs->format); plug = reiser4_factory_ifind(ALLOC_PLUG_TYPE, id); /* Plug must be found. */ if (!plug) { aal_error("Can't find the allocator plugin " "by its id 0x%x.", id); goto error_free_ondisk; } /* Allocathe a block alloc entity. */ if (!(alloc.ent = plugcall((reiser4_alloc_plug_t *)plug, create, fs->device, blksize, ondisk->blocks))) { aal_error("Can't create the allocator '%s' on " "%s.", plug->label, fs->device->name); goto error_free_ondisk; } if (reiser4_backup_layout_body(&alloc, blksize, ondisk->blocks, cb_backup_count, ondisk)) { goto error_free_alloc; } plugcall((reiser4_alloc_plug_t *)plug, close, alloc.ent); } } max = 0; app = NULL; found = 0; aal_list_foreach_forward(list, at) { int matched; int weight; hint = (backup_hint_t *)at->data; matched = 0; /* Compare with the ondisk backup if needed. */ if (ondisk) { /* Compare only untill the pset, as @ondisk does not have the */ matched = repair_backup_hint_cmp(hint, ondisk, ondisk->off[BK_PSET]) ? 0 : 1; if (!found) found = matched; } weight = hint->count * 66 / hint->total + matched * 33; if (weight > max || (weight == max && matched)) { max = weight; app = hint; /* Set @found to 2 if some previous, not the current backup, matches @ondisk hint. The chosen backup does not match the fs metadata. */ if (found && !matched) found = 2; } } /* If no backup block is found. */ if (!app) goto error_free_ondisk; if (app->total != app->count) { fsck_mess("Only %llu of %llu backup blocks are found.", app->count, app->total); if (mode != RM_BUILD) goto error_free_ondisk; } /* If only 1 block of the backup is found and it does not match the @ondisk data */ if (ondisk && found != 1 && app->count == 1) { /* Some more backup blocks must present. */ if (app->count != app->total) goto error_free_ondisk; /* The only 1 backup block must present according to both this backup block and the @ondisk data, take @ondisk as the correct version. */ //if (ondisk->total == 1) // goto error_free_ondisk; } if (found != 1) { fsck_mess("Found backup does not match to the on-disk " "filesystem metadata."); } if (ondisk) { repair_backup_hint_close(ondisk); ondisk = NULL; } /* Some backup version is chosen, create a backup on it. */ aal_memcpy(&backup->hint, app, sizeof(*app)); if (aal_block_init(&backup->hint.block, fs->device, backup->hint.block.size, 0)) { aal_error("Can't initialize the backup block."); goto error_free_backup; } aal_memcpy(backup->hint.block.data, app->block.data, backup->hint.block.size); if (app->total != app->count) reiser4_backup_mkdirty(backup); aal_list_free(list, cb_blocks_free, NULL); return backup; error_free_alloc: plugcall((reiser4_alloc_plug_t *)plug, close, alloc.ent); error_fini_backup: if (backup->hint.block.data) aal_block_fini(&backup->hint.block); error_free_ondisk: if (ondisk) repair_backup_hint_close(ondisk); error_free_backup: aal_list_free(list, cb_blocks_free, NULL); aal_free(backup); return NULL; } reiser4_backup_t *repair_backup_reopen(reiser4_fs_t *fs) { reiser4_backup_t *backup; if (!(backup = reiser4_backup_create(fs))) return NULL; if (!fs->backup) return backup; if (!repair_backup_hint_cmp(&backup->hint, &fs->backup->hint, backup->hint.block.size)) { /* Backup matches, nothing has been fixed. */ reiser4_backup_close(backup); return fs->backup; } /* Backup has been changed. */ reiser4_backup_close(fs->backup); fs->backup = NULL; return backup; } reiser4progs-1.0.7.orig/librepair/filesystem.c0000644000175000017500000003244411131470543017235 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/filesystem.c - methods are needed mostly by fsck for work with broken filesystems. */ #include /* Opens the filesystem - master, format, block and oid allocators - without opening a journal. */ errno_t repair_fs_open(repair_data_t *repair, aal_device_t *hdevice, aal_device_t *jdevice) { reiser4_fs_t *fs; errno_t res = 0; uint64_t len; aal_assert("vpf-851", repair != NULL); aal_assert("vpf-159", hdevice != NULL); aal_assert("vpf-1556", jdevice != NULL); len = repair_format_len_old(hdevice, 512); if (repair_format_check_len_old(hdevice, 512, len)) { repair_error_count(repair, RE_FATAL); return 0; } /* Allocating memory and initializing fields */ if (!(fs = repair->fs = aal_calloc(sizeof(*repair->fs), 0))) return -ENOMEM; fs->device = hdevice; /* Try to open master & format -- evth what gets backed up. */ fs->master = reiser4_master_open(fs->device); if (fs->master) { fs->format = reiser4_format_open(fs); } /* Try to open the reiser4 backup. */ if (!(fs->backup = repair_backup_open(fs, repair->mode))) { if (repair->mode != RM_BUILD) { aal_fatal("Failed to open the reiser4 backup."); res = RE_FATAL; goto error_fs_close; } } res |= repair_master_check_struct(fs, repair->mode, repair->flags); if (fs->format) { /* Mater could be changed, reopen the format after that. */ reiser4_format_close(fs->format); fs->format = reiser4_format_open(fs); } if (repair_error_fatal(res)) { aal_fatal("Failed to open the master super block."); goto error_fs_close; } res |= repair_format_check_struct(fs, repair->mode, repair->flags); if (repair_error_fatal(res)) { aal_fatal("Failed to open the format."); goto error_fs_close; } /* FIXME-VITALY: if status has io flag set and there is no bad block file given to fsck -- do not continue -- when bad block support will be written. */ res |= repair_status_open(fs, repair->mode); if (repair_error_fatal(res)) { aal_fatal("Failed to open the status block."); goto error_fs_close; } res |= repair_alloc_open(fs, repair->mode); if (repair_error_fatal(res)) { aal_fatal("Failed to open the block allocator."); goto error_status_close; } if (!(fs->oid = reiser4_oid_open(fs))) { aal_fatal("Failed to open an object id allocator."); res = -EINVAL; goto error_alloc_close; } res |= repair_journal_open(fs, jdevice, repair->mode, repair->flags); if (repair_error_fatal(res)) { aal_fatal("Failed to open the journal."); goto error_oid_close; } if (!(fs->tree = reiser4_tree_init(fs))) { aal_fatal("Failed to init the fs-global plugin set."); res = -ENOMEM; goto error_journal_close; } repair_error_count(repair, res); return 0; error_journal_close: reiser4_journal_close(fs->journal); fs->journal = NULL; error_oid_close: reiser4_oid_close(fs->oid); error_alloc_close: reiser4_alloc_close(fs->alloc); fs->alloc = NULL; error_status_close: reiser4_status_close(fs->status); fs->status = NULL; error_fs_close: if (fs->backup) reiser4_backup_close(fs->backup); if (fs->format) reiser4_format_close(fs->format); if (fs->master) reiser4_master_close(fs->master); aal_free(fs); repair->fs = NULL; repair_error_count(repair, res); return res < 0 ? res : 0; } errno_t repair_fs_replay(reiser4_fs_t *fs) { errno_t res; res = reiser4_journal_replay(fs->journal); if (repair_error_fatal(res)) { aal_fatal("Failed to replay the journal."); return res; } res |= repair_format_update(fs->format); if (repair_error_fatal(res)) { aal_fatal("Failed to update the format after journal " "replaying."); return res; } return 0; } /* Pack passed @fs to @stream. */ errno_t repair_fs_pack(reiser4_fs_t *fs, reiser4_bitmap_t *bitmap, aal_stream_t *stream) { count_t len; errno_t res; blk_t blk; aal_assert("umka-2630", fs != NULL); aal_assert("umka-2647", stream != NULL); aal_assert("umka-2647", bitmap != NULL); aal_stream_write(stream, MASTER_PACK_SIGN, 4); if ((res = repair_master_pack(fs->master, stream))) return res; aal_stream_write(stream, FORMAT_PACK_SIGN, 4); if ((res = repair_format_pack(fs->format, stream))) return res; aal_stream_write(stream, ALLOC_PACK_SIGN, 4); if ((res = repair_alloc_pack(fs->alloc, stream))) return res; aal_stream_write(stream, STATUS_PACK_SIGN, 4); if ((res = repair_status_pack(fs->status, stream))) return res; aal_stream_write(stream, BACKUP_PACK_SIGN, 4); if ((res = repair_backup_pack(fs, stream))) return res; aal_stream_write(stream, JOURNAL_PACK_SIGN, 4); if ((res = repair_journal_pack(fs->journal, stream))) return res; len = reiser4_format_get_len(fs->format); /* Loop though the all data blocks, check if they belong to tree and if so try to open a formated node on it. */ for (blk = 0; blk < len; blk++) { reiser4_node_t *node; errno_t res; /* We're not interested in unused blocks yet. */ if (!reiser4_bitmap_test(bitmap, blk)) continue; /* We're not interested in other blocks, but tree nodes. */ if (reiser4_fs_belongs(fs, blk) != O_UNKNOWN) continue; /* Try to open @blk block and find out is it formatted one or not. */ if (!(node = reiser4_node_open(fs->tree, blk))) continue; res = repair_node_check_struct(node, NULL, RM_CHECK, NULL); if (res > 0) { aal_stream_write(stream, BLOCK_PACK_SIGN, 4); /* Packing @node to @stream. */ if ((res = repair_fs_block_pack(node->block, stream))) return res; } else if (res == 0) { aal_stream_write(stream, NODE_PACK_SIGN, 4); /* Packing @node to @stream. */ if ((res = repair_node_pack(node, stream))) return res; } else { reiser4_node_close(node); return res; } /* Close node. */ reiser4_node_close(node); } return 0; } static errno_t cb_mark_used(uint64_t start, uint64_t count, void *data) { reiser4_bitmap_t *bitmap = (reiser4_bitmap_t *)data; reiser4_bitmap_mark_region(bitmap, start, count); return 0; } /* Unpack filesystem from @stream to @device. */ reiser4_fs_t *repair_fs_unpack(aal_device_t *device, reiser4_bitmap_t *bitmap, aal_stream_t *stream) { uint64_t bn; uint32_t bs; reiser4_fs_t *fs; char sign[5] = {0}; aal_block_t *block; reiser4_node_t *node; aal_assert("umka-2633", device != NULL); aal_assert("umka-2648", stream != NULL); if (!(fs = aal_calloc(sizeof(*fs), 0))) return NULL; fs->device = device; if (aal_stream_read(stream, &sign, 4) != 4) { aal_error("Can't unpack master super block. Stream is over?"); goto error_free_fs; } if (aal_strncmp(sign, MASTER_PACK_SIGN, 4)) { aal_error("Invalid master sign %s is " "detected in stream.", sign); goto error_free_fs; } if (!(fs->master = repair_master_unpack(device, stream))) goto error_free_fs; if (aal_stream_read(stream, &sign, 4) != 4) { aal_error("Can't unpack format super block. Stream is over?"); goto error_free_master; } if (aal_strncmp(sign, FORMAT_PACK_SIGN, 4)) { aal_error("Invalid format sign %s is " "detected in stream.", sign); goto error_free_master; } if (!(fs->format = repair_format_unpack(fs, stream))) goto error_free_master; /* Write into the very last block on the fs to make the output of the proper size. */ bn = reiser4_format_get_len(fs->format) - 1; bs = reiser4_master_get_blksize(fs->master); if (!(block = aal_block_alloc(device, bs, bn))) { aal_error("Can't allocate the very last block (%llu) " "on the fs: %s", bn, device->error); goto error_free_format; } if (aal_block_write(block)) { aal_error("Can't write the very last block (%llu) " "on the fs: %s", bn, device->error); aal_block_free(block); goto error_free_format; } aal_block_free(block); if (!(fs->oid = reiser4_oid_open(fs))) goto error_free_format; if (!(fs->tree = reiser4_tree_init(fs))) goto error_free_oid; if (aal_stream_read(stream, &sign, 4) != 4) { aal_error("Can't unpack block allocator. Stream is over?"); goto error_free_tree; } if (aal_strncmp(sign, ALLOC_PACK_SIGN, 4)) { aal_error("Invalid block alloc sign %s is " "detected in stream.", sign); goto error_free_tree; } if (!(fs->alloc = repair_alloc_unpack(fs, stream))) goto error_free_tree; if (aal_stream_read(stream, &sign, 4) != 4) { aal_error("Can't unpack status block. Stream is over?"); goto error_free_alloc; } if (aal_strncmp(sign, STATUS_PACK_SIGN, 4)) { aal_error("Invalid status block sign %s is " "detected in stream.", sign); goto error_free_alloc; } if (!(fs->status = repair_status_unpack(device, bs, stream))) goto error_free_alloc; if (aal_stream_read(stream, &sign, 4) != 4) { aal_error("Can't unpack backup blocks. Stream is over?"); goto error_free_status; } if (aal_strncmp(sign, BACKUP_PACK_SIGN, 4)) { aal_error("Invalid backup sign %s is " "detected in stream.", sign); goto error_free_status; } if (repair_backup_unpack(fs, stream)) goto error_free_status; if (aal_stream_read(stream, &sign, 4) != 4) { aal_error("Can't unpack journal blocks. Stream is over?"); goto error_free_backup; } if (aal_strncmp(sign, JOURNAL_PACK_SIGN, 4)) { aal_error("Invalid journal sign %s is " "detected in stream.", sign); goto error_free_backup; } if (!(fs->journal = repair_journal_unpack(fs, stream))) goto error_free_backup; /* If @bitmap is given, save there unpacked blocks of the fs. */ if (bitmap) { uint64_t len = reiser4_format_get_len(fs->format); /* Resize the bitmap. */ reiser4_bitmap_resize(bitmap, len); if (reiser4_fs_layout(fs, cb_mark_used, bitmap)) { aal_error("Can't to mark all frozen fs " "blocks as used in the bitmap."); goto error_free_journal; } } while (1) { int pack; if (aal_stream_read(stream, &sign, 4) != 4) { if (aal_stream_eof(stream)) break; else goto error_free_journal; } node = NULL; block = NULL; if (!aal_strncmp(sign, NODE_PACK_SIGN, 4)) { node = repair_node_unpack(fs->tree, stream); pack = 1; } else if (!aal_strncmp(sign, BLOCK_PACK_SIGN, 4)) { block = repair_fs_block_unpack(fs, stream); pack = 0; } else { aal_error("Invalid object %s is detected in stream. " "Node is expected.", sign); goto error_free_journal; } if ((pack && !node) || (!pack && !block)) { goto error; } if (pack && reiser4_node_sync(node)) goto error; else if (!pack && aal_block_write(block)) goto error; if (bitmap) { reiser4_bitmap_mark(bitmap, pack ? node->block->nr : block->nr); } if (pack) { reiser4_node_close(node); } else { aal_block_free(block); } } return fs; error: if (block) aal_block_free(block); if (node) reiser4_node_close(node); error_free_journal: reiser4_journal_close(fs->journal); error_free_backup: /* Backup is not openned, just raw blocks are copied. */ error_free_status: reiser4_status_close(fs->status); error_free_alloc: reiser4_alloc_close(fs->alloc); error_free_tree: reiser4_tree_close(fs->tree); error_free_oid: reiser4_oid_close(fs->oid); error_free_format: reiser4_format_close(fs->format); error_free_master: reiser4_master_close(fs->master); error_free_fs: aal_free(fs); return NULL; } errno_t repair_fs_lost_key(reiser4_fs_t *fs, reiser4_key_t *key) { oid_t locality; oid_t objectid; aal_assert("vpf-1553", fs != NULL); aal_assert("vpf-1554", key != NULL); key->plug = (reiser4_key_plug_t *)fs->tree->ent.tset[TSET_KEY]; locality = reiser4_oid_root_objectid(fs->oid); objectid = repair_oid_lost_objectid(fs->oid); return reiser4_key_build_generic(key, KEY_STATDATA_TYPE, locality, 0, objectid, 0); } /* Fs is not opened yet. A block is read and it could be a backup one. This method figure out if it is. */ errno_t repair_fs_check_backup(aal_device_t *device, backup_hint_t *hint) { errno_t res; aal_assert("vpf-1730", hint != NULL); aal_assert("vpf-1730", hint->block.data != NULL); /* Check the backup version. */ if (((char *)hint->block.data)[0] != 0) return RE_FATAL; /* Master backup starts on 1st byte. Note: Every backuper must set hint->off[next index] correctly. */ hint->off[BK_MASTER] = 1; /* Check the master backup structure. */ if ((res = repair_master_check_backup(hint))) return res; /* Backup the format backup structure. */ if ((res = repair_format_check_backup(device, hint))) return res; return repair_pset_check_backup(hint); } errno_t repair_fs_block_pack(aal_block_t *block, aal_stream_t *stream) { aal_assert("vpf-1749", block != NULL); aal_assert("vpf-1750", stream != NULL); aal_stream_write(stream, &block->nr, sizeof(block->nr)); aal_stream_write(stream, block->data, block->size); return 0; } aal_block_t *repair_fs_block_unpack(reiser4_fs_t *fs, aal_stream_t *stream) { aal_block_t *block; count_t size; count_t read; blk_t blk; aal_assert("vpf-1751", fs != NULL); aal_assert("vpf-1752", stream != NULL); if (aal_stream_read(stream, &blk, sizeof(blk)) != sizeof(blk)) return NULL; size = reiser4_master_get_blksize(fs->master); /* Allocate new node of @size at @nr. */ if (!(block = aal_block_alloc(fs->device, size, blk))) return NULL; read = aal_stream_read(stream, block->data, block->size); if (read != block->size) goto error; return block; error: aal_block_free(block); return NULL; } reiser4progs-1.0.7.orig/librepair/status.c0000644000175000017500000001073511131470543016373 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. status.c -- repair status block functions. */ #include #include /* Try to open status and check it. */ errno_t repair_status_open(reiser4_fs_t *fs, uint8_t mode) { uint32_t blksize; aal_assert("vpf-398", fs != NULL); blksize = reiser4_master_get_blksize(fs->master); /* Try to open the disk format. */ if ((fs->status = reiser4_status_open(fs->device, blksize))) return 0; /* Status open failed. Create a new one. */ if (!(fs->status = reiser4_status_create(fs->device, blksize))) return -EINVAL; if (mode == RM_CHECK) { fs->status->dirty = 0; return RE_FIXABLE; } else aal_warn("Creating a new status block."); return 0; } void repair_status_clear(reiser4_status_t *status) { aal_assert("vpf-1342", status != NULL); aal_memset(STATUS(status), 0, sizeof(reiser4_status_sb_t)); status->dirty = 1; } void repair_status_state(reiser4_status_t *status, uint64_t state) { aal_assert("vpf-1341", status != NULL); /* if the same as exists, return. */ if (state == get_ss_status(STATUS(status))) return; /* if some valuable state different from existent, clear all other stuff as it becomes obsolete. */ if (!state) { /* If evth is ok, clear all info as obsolete. */ aal_memset((char *)STATUS(status) + SS_MAGIC_SIZE, 0, sizeof(reiser4_status_sb_t) - SS_MAGIC_SIZE); } else { /* Set the state w/out clearing evth. */ set_ss_status(STATUS(status), state); } status->dirty = 1; } errno_t repair_status_pack(reiser4_status_t *status, aal_stream_t *stream) { uint32_t size; aal_assert("umka-2612", status != NULL); aal_assert("umka-2613", stream != NULL); /* Write data size. */ size = sizeof(status->ent); aal_stream_write(stream, &size, sizeof(size)); /* Write status data to @stream. */ aal_stream_write(stream, &status->ent, size); return 0; } reiser4_status_t *repair_status_unpack(aal_device_t *device, uint32_t blksize, aal_stream_t *stream) { uint32_t size; reiser4_status_t *status; aal_assert("umka-981", device != NULL); aal_assert("umka-2611", stream != NULL); /* Read size and check for validness. */ if (aal_stream_read(stream, &size, sizeof(size)) != sizeof(size)) { aal_error("Can't unpack the status block. Stream is over?"); return NULL; } /* Allocating the memory for status super block struct */ if (!(status = aal_calloc(sizeof(*status), 0))) return NULL; if (size != sizeof(status->ent)) { aal_error("Invalid size %u is detected in stream.", size); goto error_free_status; } /* Read status data from @stream. */ if (aal_stream_read(stream, &status->ent, size) != (int32_t)size) { aal_error("Can't unpack the status block. Stream is over?"); goto error_free_status; } status->dirty = 1; status->device = device; status->blksize = blksize; return status; error_free_status: aal_free(status); return NULL; } void repair_status_print(reiser4_status_t *status, aal_stream_t *stream) { uint64_t state, extended; int i; aal_assert("umka-2493", status != NULL); aal_assert("umka-2494", stream != NULL); aal_stream_format(stream, "FS status block (%lu):\n", REISER4_STATUS_BLOCKNR(status->blksize)); state = get_ss_status(STATUS(status)); extended = get_ss_extended(STATUS(status)); if (!state) { aal_stream_format(stream, "FS marked consistent\n"); return; } if (state & FS_CORRUPTED) { aal_stream_format(stream, "FS marked corruped\n"); state &= ~FS_CORRUPTED; } if (state & (1 << FS_DAMAGED)) { aal_stream_format(stream, "FS marked damaged\n"); state &= ~FS_DAMAGED; } if (state & FS_DESTROYED) { aal_stream_format(stream, "FS marked destroyed\n"); state &= ~FS_DESTROYED; } if (state & FS_IO) { aal_stream_format(stream, "FS marked having io " "problems\n"); state &= ~FS_IO; } if (state) { aal_stream_format(stream, "Some unknown status " "flags found: %0xllx\n", state); } if (extended) { aal_stream_format(stream, "Extended status: %0xllx\n", get_ss_extended(STATUS(status))); } if (*status->ent.ss_message != '\0') { aal_stream_format(stream, "Status message:\t%s\n", STATUS(status)->ss_message); } if (!STATUS(status)->ss_stack[0]) return; aal_stream_format(stream, "Status backtrace:\n"); for (i = 0; i < SS_STACK_SIZE; i++) { if (!ss_stack(STATUS(status), i)) { aal_stream_format(stream, "\t%d: 0xllx\n", i, STATUS(status)->ss_stack[i]); } } } reiser4progs-1.0.7.orig/librepair/twig_scan.c0000644000175000017500000001157511131470543017031 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. librepair/twig_scan.c - methods are needed for the second fsck pass. Description: fsck on this pass zeroes extent pointers which point to an already used block. Builds a map of used blocks. */ #include /* Check unfm block pointer if it points to an already used block (leaf, format area) or out of format area. Return 1 if it does, 0 - does not, -1 error. */ static errno_t cb_item_region_check(blk_t start, uint64_t count, void *data) { repair_ts_t *ts = (repair_ts_t *)data; aal_assert("vpf-385", ts != NULL); aal_assert("vpf-567", ts->bm_met != NULL); /* This must be fixed at the first pass. */ if (start >= ts->bm_met->total || count > ts->bm_met->total || start >= ts->bm_met->total - count) { ts->stat.bad_unfm_ptrs++; return RE_FATAL; } /* Check that the pointed region is free. */ if (reiser4_bitmap_test_region(ts->bm_met, start, count, 0) == 0) { ts->stat.bad_unfm_ptrs++; return RE_FIXABLE; } if (ts->bm_used) reiser4_bitmap_mark_region(ts->bm_used, start, count); reiser4_bitmap_mark_region(ts->bm_met, start, count); return 0; } /* Callback for the traverse which calls item_ops.check_layout method if layout exists for all items which can contain data, not tree index data only. Shrink the node if item lenght is changed. */ static errno_t cb_check_layout(reiser4_place_t *place, void *data) { repair_ts_t *ts = (repair_ts_t *)data; reiser4_node_t *node; errno_t res; aal_assert("vpf-384", place != NULL); aal_assert("vpf-727", place->node != NULL); aal_assert("vpf-797", data != NULL); node = place->node; if (reiser4_item_branch(place->plug)) return 0; if ((res = repair_item_check_layout(place, cb_item_region_check, ts, ts->repair->mode)) < 0) return res; if (res & RE_FATAL) { if (ts->repair->mode == RM_BUILD) { trans_hint_t hint; fsck_mess("Node (%llu), item (%u), [%s]: broken " "item layout. Remove the item.", node->block->nr, place->pos.item, reiser4_print_key(&place->key)); hint.count = 1; hint.place_func = NULL; hint.region_func = NULL; hint.shift_flags = SF_DEFAULT; res = reiser4_node_remove(node, &place->pos, &hint); if (res < 0) return res; place->pos.item--; } else { ts->repair->fatal++; } } else if (res & RE_FIXABLE) { ts->repair->fixable++; } return 0; } static void repair_twig_scan_update(repair_ts_t *ts) { aal_stream_t stream; char *time_str; aal_assert("vpf-885", ts != NULL); aal_stream_init(&stream, NULL, &memory_stream); aal_stream_format(&stream, "\tRead twigs %llu\n", ts->stat.read_twigs); if (ts->stat.fixed_twigs) { aal_stream_format(&stream, "\tCorrected nodes %llu\n", ts->stat.fixed_twigs); } if (ts->stat.bad_unfm_ptrs) { aal_stream_format(&stream, "\t%s extent pointers %llu\n", ts->repair->mode != RM_CHECK ? "Fixed invalid" : "Invaid", ts->stat.bad_unfm_ptrs); } time_str = ctime(&ts->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, "\tTime interval: %s - ", time_str); time(&ts->stat.time); time_str = ctime(&ts->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, time_str); aal_mess(stream.entity); aal_stream_fini(&stream); } /* The pass itself, goes through all twigs, check block pointers which items may have and account them in proper bitmaps. */ errno_t repair_twig_scan(repair_ts_t *ts) { reiser4_node_t *node; aal_gauge_t *gauge; uint64_t total; blk_t blk = 0; errno_t res; aal_assert("vpf-533", ts != NULL); aal_assert("vpf-534", ts->repair != NULL); aal_assert("vpf-845", ts->repair->fs != NULL); aal_mess("CHECKING EXTENT REGIONS."); gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], NULL, NULL, 500, NULL); aal_gauge_touch(gauge); time(&ts->stat.time); total = reiser4_bitmap_marked(ts->bm_twig); while ((blk = reiser4_bitmap_find_marked(ts->bm_twig, blk)) != INVAL_BLK) { ts->stat.read_twigs++; aal_gauge_set_value(gauge, ts->stat.read_twigs * 100 / total); aal_gauge_touch(gauge); if (!(node = reiser4_node_open(ts->repair->fs->tree, blk))) { aal_error("Twig scan pass failed to open " "the twig (%llu)", blk); res = -EINVAL; goto error; } /* Lookup the node. */ if ((res = reiser4_node_trav(node, cb_check_layout, ts))) goto error_node_free; if (reiser4_node_isdirty(node)) ts->stat.fixed_twigs++; if (!reiser4_node_locked(node)) reiser4_node_fini(node); blk++; } aal_gauge_done(gauge); aal_gauge_free(gauge); repair_twig_scan_update(ts); if (ts->repair->mode != RM_CHECK) reiser4_fs_sync(ts->repair->fs); return 0; error_node_free: reiser4_node_close(node); error: aal_gauge_done(gauge); aal_gauge_free(gauge); repair_twig_scan_update(ts); return res; } reiser4progs-1.0.7.orig/librepair/Makefile.am0000644000175000017500000000145511131470543016737 0ustar fzfzlibrepair_sources = filesystem.c tree.c master.c format.c status.c backup.c pset.c \ journal.c alloc.c node.c item.c object.c filter.c disk_scan.c \ twig_scan.c add_missing.c semantic.c cleanup.c repair.c oid.c lib_LTLIBRARIES = librepair.la noinst_LTLIBRARIES = librepair-static.la librepair_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -release $(LT_RELEASE) librepair_la_LIBADD = $(top_builddir)/libreiser4/libreiser4.la librepair_la_SOURCES = $(librepair_sources) librepair_la_CFLAGS = @GENERIC_CFLAGS@ librepair_static_la_LIBADD = $(top_builddir)/libreiser4/libreiser4-static.la librepair_static_la_SOURCES = $(librepair_sources) librepair_static_la_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include reiser4progs-1.0.7.orig/librepair/add_missing.c0000644000175000017500000002304111131470543017323 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. repair/add_missing.c -- the common methods for insertion leaves and extent item from twigs unconnected from the tree. */ #include /* Callback for item_ops->layout method to mark all the blocks, items points to, in the allocator. */ static errno_t cb_item_mark_region(uint64_t start, uint64_t count, void *data) { repair_am_t *am = (repair_am_t *)data; aal_assert("vpf-735", data != NULL); if (start != 0) { /* These blocks are marked in allocator as it already has all blocks forbidden for allocation marked. Just mark them as used now. */ reiser4_bitmap_mark_region(am->bm_used, start, count); } return 0; } /* Callback for traverse through all items of the node. Calls for the item, determined by place, layout method, if it is not the branch and has pointers to some blocks. */ static errno_t cb_layout(reiser4_place_t *place, void *data) { aal_assert("vpf-649", place != NULL); aal_assert("vpf-748", !reiser4_item_branch(place->plug)); if (!place->plug->object->layout) return 0; /* All these blocks should not be used in the allocator and should be forbidden for allocation. Check it somehow first. */ return objcall(place, object->layout, cb_item_mark_region, data); } static void repair_add_missing_update(repair_am_t *am) { repair_am_stat_t *stat; aal_stream_t stream; char *time_str; aal_assert("vpf-886", am != NULL); stat = &am->stat; aal_stream_init(&stream, NULL, &memory_stream); aal_stream_format(&stream, "\tTwigs: read %llu, inserted %llu, " "by item %llu, empty %llu\n", stat->read_twigs, stat->by_twig, stat->by_item_twigs, stat->empty); aal_stream_format(&stream, "\tLeaves: read %llu, inserted %llu, by " "item %llu\n", stat->read_leaves, stat->by_leaf, stat->by_item_leaves); time_str = ctime(&am->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, "\tTime interval: %s - ", time_str); time(&am->stat.time); time_str = ctime(&am->stat.time); time_str[aal_strlen(time_str) - 1] = '\0'; aal_stream_format(&stream, time_str); aal_mess(stream.entity); aal_stream_fini(&stream); } static errno_t repair_am_node_prepare(repair_am_t *am, reiser4_node_t *node) { reiser4_place_t place; trans_hint_t hint; uint32_t count; errno_t res; /* Remove all metadata items from the node before insertion. */ place.node = node; place.pos.unit = MAX_UINT32; count = reiser4_node_items(node); for (place.pos.item = 0; place.pos.item < count; place.pos.item++) { if ((res = reiser4_place_fetch(&place))) { aal_error("Node (%llu), item (%u): failed to open the " "item.",node->block->nr, place.pos.item); return res; } /* If this is an index item of the tree, remove it. */ if (!reiser4_item_branch(place.plug)) continue; hint.count = 1; hint.place_func = NULL; hint.region_func = NULL; hint.shift_flags = SF_DEFAULT; if ((res = reiser4_node_remove(place.node, &place.pos, &hint))) return res; place.pos.item--; count--; } return 0; } static errno_t repair_am_blk_free(repair_am_t *am, blk_t blk) { aal_assert("vpf-1330", am != NULL); return reiser4_alloc_release(am->repair->fs->alloc, blk, 1); } static errno_t repair_am_blk_used(repair_am_t *am, blk_t blk) { aal_assert("vpf-1330", am != NULL); /* These blocks are marked in allocator as it already has all blocks forbidden for allocation marked. Just mark them as used now. */ reiser4_bitmap_mark_region(am->bm_used, blk, 1); return 0; } typedef struct stat_bitmap { uint64_t read, by_node, by_item, empty; } stat_bitmap_t; static errno_t repair_am_nodes_insert(repair_am_t *am, reiser4_bitmap_t *bitmap, stat_bitmap_t *stat) { reiser4_node_t *node; uint64_t total; errno_t res; blk_t blk; aal_assert("vpf-1282", am != NULL); aal_assert("vpf-1283", bitmap != NULL); aal_assert("vpf-1284", stat != NULL); total = reiser4_bitmap_marked(bitmap); blk = 0; /* Try to insert the whole twig/leaf at once. If it can be inserted only after splitting the node found by lookup into 2 nodes -- it will be done instead of following item by item insertion. */ while ((blk = reiser4_bitmap_find_marked(bitmap, blk)) != INVAL_BLK) { node = reiser4_node_open(am->repair->fs->tree, blk); stat->read++; aal_gauge_set_value(am->gauge, stat->read * 100 / total); aal_gauge_touch(am->gauge); if (node == NULL) { aal_error("Add Missing pass failed to " "open the node (%llu)", blk); return -EINVAL; } /* Prepare the node for the insertion. */ if ((res = repair_am_node_prepare(am, node))) goto error_close_node; if (reiser4_node_items(node) == 0) { reiser4_bitmap_clear(bitmap, node->block->nr); repair_am_blk_free(am, node->block->nr); reiser4_node_close(node); stat->empty++; blk++; continue; } res = repair_tree_attach_node(am->repair->fs->tree, node); if (res < 0 && res != -ESTRUCT) { aal_error("Add missing pass failed to attach " "the node (%llu) to the tree.", blk); goto error_close_node; } else if (res == 0) { /* Has been inserted. */ reiser4_bitmap_clear(bitmap, node->block->nr); repair_am_blk_used(am, node->block->nr); stat->by_node++; res = reiser4_node_trav(node, cb_layout, am); if (res) goto error_close_node; } else { /* uninsertable case - insert by item later. */ reiser4_node_fini(node); } blk++; } return 0; error_close_node: reiser4_node_close(node); return res; } static errno_t repair_am_items_insert(repair_am_t *am, reiser4_bitmap_t *bitmap, stat_bitmap_t *stat) { uint32_t count; reiser4_node_t *node; uint64_t total; errno_t res; blk_t blk; aal_assert("vpf-1285", am != NULL); aal_assert("vpf-1286", bitmap != NULL); aal_assert("vpf-1287", stat != NULL); total = reiser4_bitmap_marked(bitmap); blk = 0; /* Insert extents from the twigs/all items from leaves which are not in the tree yet item-by-item into the tree, overwrite existent data which is in the tree already if needed. FIXME: overwriting should be done on the base of flush_id. */ while ((blk = reiser4_bitmap_find_marked(bitmap, blk)) != INVAL_BLK) { reiser4_place_t place; pos_t *pos = &place.pos; aal_assert("vpf-897", !reiser4_bitmap_test(am->bm_used, blk)); node = reiser4_node_open(am->repair->fs->tree, blk); if (node == NULL) { aal_error("Add Missing pass failed to " "open the node (%llu)", blk); return -EINVAL; } count = reiser4_node_items(node); place.node = node; stat->by_item++; aal_gauge_set_value(am->gauge, stat->by_item * 100 / total); aal_gauge_touch(am->gauge); for (pos->item = 0; pos->item < count; pos->item++) { pos->unit = MAX_UINT32; if ((res = reiser4_place_fetch(&place))) { aal_error("Node (%llu), item (%u): " "cannot open the item " "place.", blk, pos->item); goto error_close_node; } res = repair_tree_insert(am->repair->fs->tree, &place, cb_item_mark_region, am); if (res < 0) goto error_close_node; if (res && place.plug->p.id.group == STAT_ITEM) { /* If insertion cannot be performed for the statdata item, descement file counter. */ (*am->stat.files)--; } } reiser4_bitmap_clear(bitmap, node->block->nr); repair_am_blk_free(am, node->block->nr); reiser4_node_close(node); blk++; } return 0; error_close_node: reiser4_node_close(node); return res; } /* The pass inself, adds all the data which are not in the tree yet and which were found on the partition during the previous passes. */ errno_t repair_add_missing(repair_am_t *am) { reiser4_bitmap_t *bitmap; stat_bitmap_t stat; uint32_t bnum; errno_t res; aal_assert("vpf-595", am != NULL); aal_assert("vpf-846", am->repair != NULL); aal_assert("vpf-847", am->repair->fs != NULL); aal_assert("vpf-848", am->bm_twig != NULL); aal_assert("vpf-849", am->bm_leaf != NULL); aal_mess("INSERTING UNCONNECTED NODES"); am->gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], NULL, NULL, 500, NULL); time(&am->stat.time); /* 2 loops - 1 for twigs, another for leaves. */ for (bnum = 0; bnum < 2; bnum++) { if (bnum) { bitmap = am->bm_leaf; aal_gauge_rename(am->gauge, "3. Leaves: "); } else { bitmap = am->bm_twig; aal_gauge_rename(am->gauge, "1. Twigs: "); } /* Debugging of item coping. */ if (am->repair->flags & (1 << REPAIR_DEBUG)) goto debug; aal_memset(&stat, 0, sizeof(stat)); aal_gauge_set_value(am->gauge, 0); aal_gauge_touch(am->gauge); if ((res = repair_am_nodes_insert(am, bitmap, &stat))) goto error; if (bnum) { am->stat.read_leaves = stat.read; am->stat.by_leaf = stat.by_node; } else { am->stat.read_twigs = stat.read; am->stat.by_twig = stat.by_node; am->stat.empty = stat.empty; } aal_gauge_done(am->gauge); debug: if (bnum) { aal_gauge_rename(am->gauge, "4. Leaves by item: "); } else { aal_gauge_rename(am->gauge, "2. Twigs by item: "); } aal_memset(&stat, 0, sizeof(stat)); aal_gauge_set_value(am->gauge, 0); aal_gauge_touch(am->gauge); if ((res = repair_am_items_insert(am, bitmap, &stat))) goto error; if (bnum) am->stat.by_item_leaves = stat.by_item; else am->stat.by_item_twigs = stat.by_item; aal_gauge_done(am->gauge); } aal_gauge_free(am->gauge); repair_add_missing_update(am); reiser4_fs_sync(am->repair->fs); return 0; error: aal_gauge_done(am->gauge); aal_gauge_free(am->gauge); reiser4_fs_sync(am->repair->fs); return res; } reiser4progs-1.0.7.orig/libmisc/0000777000175000017500000000000011134133447014355 5ustar fzfzreiser4progs-1.0.7.orig/libmisc/exception.c0000644000175000017500000001261211131470543016513 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. exception.c -- common for all progs exception handler and related functions. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include /* Strings for all exception types */ static char *type_names[] = { "", "Info ", "", "Warn ", "Error", "Fatal", "Bug " }; #define TYPES_COUNT (sizeof(type_names) / sizeof(void *)) /* This function returns number of specified turned on options */ static int misc_exception_option_count( aal_exception_option_t options, /* options to be inspected */ int start) /* options will be inspected started from */ { int i, count = 0; for (i = start; i < aal_log2(EXCEPTION_OPT_LAST); i++) count += ((1 << i) & options) ? 1 : 0; return count; } /* This function makes search for option by its name in passed available option set. */ static aal_exception_option_t misc_exception_oneof( char *name, /* option name to be checked */ aal_exception_option_t options) /* aavilable options */ { int i; if (!name || aal_strlen(name) == 0) return EXCEPTION_OPT_UNHANDLED; for (i = 0; i < aal_log2(EXCEPTION_OPT_LAST); i++) { if ((1 << i) & options) { char str1[256], str2[256]; char *opt = aal_exception_option_name(1 << i); aal_memset(str1, 0, sizeof(str1)); aal_memset(str2, 0, sizeof(str2)); misc_upper_case(str1, opt); misc_upper_case(str2, name); if (aal_strncmp(str1, str2, aal_strlen(str2)) == 0 || (aal_strlen(str2) == 1 && str1[0] == name[0])) { return 1 << i; } } } return EXCEPTION_OPT_UNHANDLED; } /* Constructs exception message. */ static void misc_exception_print_wrap(aal_exception_t *exception, void *stream) { char buff[4096]; aal_memset(buff, 0, sizeof(buff)); if (exception->type != EXCEPTION_TYPE_MESSAGE && exception->type < TYPES_COUNT) { aal_snprintf(buff, sizeof(buff), "%s: ", type_names[exception->type]); } aal_strncat(buff, exception->message, aal_strlen(exception->message)); misc_print_wrap(stream, buff); } /* This function prints exception options awailable to be choosen, takes user enter and converts it into aal_exception_option_t type. */ static aal_exception_option_t misc_exception_prompt( aal_exception_option_t options, /* exception options can be selected */ void *stream) { int i; char *option; char prompt[256]; if (misc_exception_option_count(options, 0) == 0) return EXCEPTION_OPT_UNHANDLED; aal_memset(prompt, 0, sizeof(prompt)); aal_strncat(prompt, "(", 1); for (i = 1; i < aal_log2(EXCEPTION_OPT_LAST); i++) { if ((1 << i) & options) { char *opt = aal_exception_option_name(1 << i); int count = misc_exception_option_count(options, i + 1); aal_strncat(prompt, opt, aal_strlen(opt)); if (i < aal_log2(EXCEPTION_OPT_LAST) - 1 && count > 0) aal_strncat(prompt, "/", 1); else aal_strncat(prompt, "): ", 3); } } if (!(option = misc_readline(prompt, stream)) || aal_strlen(option) == 0) return EXCEPTION_OPT_UNHANDLED; return misc_exception_oneof(option, options); } /* Streams assigned with exception type are stored here */ static void *streams[10]; /* Current misc gauge. Used for correct pausing when exception */ extern aal_gauge_t *current_gauge; /* Common exception handler for all reiser4progs. It implements exception handling in "question-answer" maner and used for all communications with user. */ aal_exception_option_t misc_exception_handler( aal_exception_t *exception) /* exception to be processed */ { #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) int i; aal_list_t *variant = NULL; #endif int tty; void *stream = stderr; aal_exception_option_t opt = EXCEPTION_OPT_UNHANDLED; if (misc_exception_option_count(exception->options, 0) == 1) { if (!(stream = streams[exception->type])) return exception->options; } if ((tty = fileno(stream)) == -1) return EXCEPTION_OPT_UNHANDLED; if (current_gauge && stream == stderr) aal_gauge_pause(current_gauge); else { if (isatty(tty)) misc_wipe_line(stream); } misc_exception_print_wrap(exception, stream); if (misc_exception_option_count(exception->options, 0) == 1) return exception->options; #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) for (i = 1; i < aal_log2(EXCEPTION_OPT_LAST); i++) { if ((1 << i) & exception->options) { char *name = aal_exception_option_name(1 << i); variant = aal_list_append(variant, name); } } variant = aal_list_first(variant); misc_set_variant(variant); #endif do { opt = misc_exception_prompt(exception->options, stream); } while (opt == EXCEPTION_OPT_UNHANDLED); #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) aal_list_free(variant, NULL, NULL); misc_set_variant(NULL); #endif return opt; } /* This function sets up exception streams */ void misc_exception_set_stream( aal_exception_type_t type, /* type to be assigned with stream */ void *stream) /* stream to be assigned */ { streams[type] = stream; } /* This function gets exception streams */ void *misc_exception_get_stream( aal_exception_type_t type) /* type exception stream will be obtained for */ { return streams[type]; } reiser4progs-1.0.7.orig/libmisc/Makefile.in0000644000175000017500000004701011134132270016411 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libmisc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libmisc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(top_builddir)/libaux/libaux-static.la am_libmisc_la_OBJECTS = libmisc_la-misc.lo libmisc_la-profile.lo \ libmisc_la-exception.lo libmisc_la-gauge.lo libmisc_la-ui.lo \ libmisc_la-mpressure.lo libmisc_la_OBJECTS = $(am_libmisc_la_OBJECTS) libmisc_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libmisc_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libmisc_la_SOURCES) DIST_SOURCES = $(libmisc_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = libmisc.la libmisc_la_SOURCES = misc.c profile.c exception.c gauge.c ui.c \ mpressure.c libmisc_la_LIBADD = @AAL_LIBS@ $(UUID_LIBS) @PROGS_LIBS@ \ $(top_builddir)/libaux/libaux-static.la libmisc_la_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libmisc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu libmisc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libmisc.la: $(libmisc_la_OBJECTS) $(libmisc_la_DEPENDENCIES) $(libmisc_la_LINK) $(libmisc_la_OBJECTS) $(libmisc_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmisc_la-exception.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmisc_la-gauge.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmisc_la-misc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmisc_la-mpressure.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmisc_la-profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmisc_la-ui.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libmisc_la-misc.lo: misc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -MT libmisc_la-misc.lo -MD -MP -MF $(DEPDIR)/libmisc_la-misc.Tpo -c -o libmisc_la-misc.lo `test -f 'misc.c' || echo '$(srcdir)/'`misc.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libmisc_la-misc.Tpo $(DEPDIR)/libmisc_la-misc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc.c' object='libmisc_la-misc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -c -o libmisc_la-misc.lo `test -f 'misc.c' || echo '$(srcdir)/'`misc.c libmisc_la-profile.lo: profile.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -MT libmisc_la-profile.lo -MD -MP -MF $(DEPDIR)/libmisc_la-profile.Tpo -c -o libmisc_la-profile.lo `test -f 'profile.c' || echo '$(srcdir)/'`profile.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libmisc_la-profile.Tpo $(DEPDIR)/libmisc_la-profile.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='profile.c' object='libmisc_la-profile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -c -o libmisc_la-profile.lo `test -f 'profile.c' || echo '$(srcdir)/'`profile.c libmisc_la-exception.lo: exception.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -MT libmisc_la-exception.lo -MD -MP -MF $(DEPDIR)/libmisc_la-exception.Tpo -c -o libmisc_la-exception.lo `test -f 'exception.c' || echo '$(srcdir)/'`exception.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libmisc_la-exception.Tpo $(DEPDIR)/libmisc_la-exception.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='exception.c' object='libmisc_la-exception.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -c -o libmisc_la-exception.lo `test -f 'exception.c' || echo '$(srcdir)/'`exception.c libmisc_la-gauge.lo: gauge.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -MT libmisc_la-gauge.lo -MD -MP -MF $(DEPDIR)/libmisc_la-gauge.Tpo -c -o libmisc_la-gauge.lo `test -f 'gauge.c' || echo '$(srcdir)/'`gauge.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libmisc_la-gauge.Tpo $(DEPDIR)/libmisc_la-gauge.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gauge.c' object='libmisc_la-gauge.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -c -o libmisc_la-gauge.lo `test -f 'gauge.c' || echo '$(srcdir)/'`gauge.c libmisc_la-ui.lo: ui.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -MT libmisc_la-ui.lo -MD -MP -MF $(DEPDIR)/libmisc_la-ui.Tpo -c -o libmisc_la-ui.lo `test -f 'ui.c' || echo '$(srcdir)/'`ui.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libmisc_la-ui.Tpo $(DEPDIR)/libmisc_la-ui.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ui.c' object='libmisc_la-ui.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -c -o libmisc_la-ui.lo `test -f 'ui.c' || echo '$(srcdir)/'`ui.c libmisc_la-mpressure.lo: mpressure.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -MT libmisc_la-mpressure.lo -MD -MP -MF $(DEPDIR)/libmisc_la-mpressure.Tpo -c -o libmisc_la-mpressure.lo `test -f 'mpressure.c' || echo '$(srcdir)/'`mpressure.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libmisc_la-mpressure.Tpo $(DEPDIR)/libmisc_la-mpressure.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpressure.c' object='libmisc_la-mpressure.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmisc_la_CFLAGS) $(CFLAGS) -c -o libmisc_la-mpressure.lo `test -f 'mpressure.c' || echo '$(srcdir)/'`mpressure.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/libmisc/mpressure.c0000644000175000017500000000173211131470543016543 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. mpressure.c -- memory pressure detect functions common for all reiser4progs. */ #ifdef HAVE_CONFIG_H # include #endif #include /* This is somehow opaque and seem like a magic digit. But the reasons to choose this value are the following: (1) Make flushing not so often, as this is not productive. (2) Try to make a disk layout better. It depends on how often tree is adjusted and thigs are allocated (node pointers and extents). So, this value is such as able to help some hipotetical big extent to fit into device region between two bitmap blocks. */ static uint32_t watermark = 5120; void misc_mpressure_setup(uint32_t value) { watermark = value; } /* This function detects if mempry pressure is here. */ int misc_mpressure_detect(reiser4_tree_t *tree) { return tree->nodes->real + tree->blocks->real > watermark; } reiser4progs-1.0.7.orig/libmisc/Makefile.am0000644000175000017500000000047411131470543016410 0ustar fzfznoinst_LTLIBRARIES = libmisc.la libmisc_la_SOURCES = misc.c profile.c exception.c gauge.c ui.c \ mpressure.c libmisc_la_LIBADD = @AAL_LIBS@ $(UUID_LIBS) @PROGS_LIBS@ \ $(top_builddir)/libaux/libaux-static.la libmisc_la_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include reiser4progs-1.0.7.orig/libmisc/profile.c0000644000175000017500000000234311131470543016155 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. pprofile.c -- methods for working with reiser4 profile. */ #include #include errno_t misc_profile_override(char *override) { while (1) { char *entry, *c; char name[256]; char value[256]; if (!(entry = aal_strsep(&override, ","))) break; if (!aal_strlen(entry)) continue; if (!(c = aal_strchr(entry, '='))) { aal_error("Invalid profile override " "entry detected %s.", entry); return -EINVAL; } aal_memset(name, 0, sizeof(name)); aal_memset(value, 0, sizeof(value)); aal_strncpy(name, entry, c - entry); if (c + 1 == '\0') { aal_error("Invalid profile override " "entry detected %s.", entry); return -EINVAL; } aal_strncpy(value, c + 1, entry + aal_strlen(entry) - c); if (reiser4_profile_override(name, value)) return -EINVAL; } return 0; } /* Prints default plugin profiles. */ void misc_profile_print(void) { aal_stream_t stream; aal_stream_init(&stream, stdout, &file_stream); aal_stream_format(&stream, "Default profile:\n"); reiser4_profile_print(&stream); aal_stream_format(&stream, "\n"); aal_stream_fini(&stream); } reiser4progs-1.0.7.orig/libmisc/misc.c0000644000175000017500000001476711131470543015465 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. misc.c -- some common tools for all reiser4 utilities. */ #include #include #include #include #include #include #include #include #include #include #include #include #define KB 1024 #define MB (KB * KB) #define GB (KB * MB) #if defined(HAVE_LIBUUID) && defined(HAVE_UUID_UUID_H) # include #endif /* Converts passed @sqtr into long long value. In the case of error, INVAL_DIG will be returned. */ long long misc_str2long(const char *str, int base) { char *error; long long result = 0; if (!str) return INVAL_DIG; result = strtol(str, &error, base); if (errno == ERANGE || *error) return INVAL_DIG; return result; } /* Converts human readable size string like "256M" into KB. In the case of error, INVAL_DIG will be returned. */ long long misc_size2long(const char *str) { int valid; char label; long long result; char number[255]; if (str) { aal_memset(number, 0, 255); aal_strncpy(number, str, sizeof(number)); label = number[aal_strlen(number) - 1]; valid = toupper(label) == toupper('K') || toupper(label) == toupper('M') || toupper(label) == toupper('G'); if (valid) number[aal_strlen(number) - 1] = '\0'; if ((result = misc_str2long(number, 10)) == INVAL_DIG) return result; if (toupper(label) == toupper('K')) return result; if (toupper(label) == toupper('M')) return result * KB; if (toupper(label) == toupper('G')) return result * MB; return result; } return INVAL_DIG; } /* Lookup the @file in the @mntfile. @file is mntent.mnt_fsname if @fsname is set; mntent.mnt_dir otherwise. Return the mnt entry from the @mntfile. Warning: if the root fs is mounted RO, the content of /etc/mtab may be not correct. */ static struct mntent *misc_mntent_lookup(const char *mntfile, const char *file, int path) { struct mntent *mnt; int name_match = 0; struct stat st; dev_t rdev = 0; dev_t dev = 0; ino_t ino = 0; char *name; FILE *fp; aal_assert("vpf-1674", mntfile != NULL); aal_assert("vpf-1675", file != NULL); if (stat(file, &st) == 0) { /* Devices is stated. */ if (S_ISBLK(st.st_mode)) { rdev = st.st_rdev; } else { dev = st.st_dev; ino = st.st_ino; } } if ((fp = setmntent(mntfile, "r")) == NULL) return INVAL_PTR; while ((mnt = getmntent(fp)) != NULL) { /* Check if names match. */ name = path ? mnt->mnt_dir : mnt->mnt_fsname; if (aal_strcmp(file, name) == 0) name_match = 1; if (stat(name, &st)) continue; /* If names do not match, check if stats match. */ if (!name_match) { if (rdev && S_ISBLK(st.st_mode)) { if (rdev != st.st_rdev) continue; } else if (dev && !S_ISBLK(st.st_mode)) { if (dev != st.st_dev || ino != st.st_ino) continue; } else { continue; } } /* If not path and not block device do not check anything more. */ if (!path && !rdev) break; if (path) { /* Either names or stats match. Make sure the st_dev of the path is same as @mnt_fsname device rdev. */ if (stat(mnt->mnt_fsname, &st) == 0 && dev == st.st_rdev) break; } else { /* Either names or stats match. Make sure the st_dev of the mount entry is same as the given device rdev. */ if (stat(mnt->mnt_dir, &st) == 0 && rdev == st.st_dev) break; } } endmntent (fp); return mnt; } static int misc_root_mounted(const char *device) { struct stat rootst, devst; aal_assert("vpf-1676", device != NULL); if (stat("/", &rootst) != 0) return -1; if (stat(device, &devst) != 0) return -1; if (!S_ISBLK(devst.st_mode) || devst.st_rdev != rootst.st_dev) return 0; return 1; } static int misc_file_ro(char *file) { if (utime(file, 0) == -1) { if (errno == EROFS) return 1; } return 0; } struct mntent *misc_mntent(const char *device) { int proc = 0, path = 0, root = 0; struct mntent *mnt; struct statfs stfs; aal_assert("vpf-1677", device != NULL); /* Check if the root. */ if (misc_root_mounted(device) == 1) root = 1; #ifdef __linux__ /* Check if /proc is procfs. */ if (statfs("/proc", &stfs) == 0 && stfs.f_type == 0x9fa0) { proc = 1; if (root) { /* Lookup the "/" entry in /proc/mounts. Special case as root entry can present as: rootfs / rootfs rw 0 0 Look up the mount point in this case. */ mnt = misc_mntent_lookup("/proc/mounts", "/", 1); } else { /* Lookup the @device /proc/mounts */ mnt = misc_mntent_lookup("/proc/mounts", device, 0); } if (mnt == INVAL_PTR) proc = 0; else if (mnt) return mnt; } #endif /* __linux__ */ #if defined(MOUNTED) || defined(_PATH_MOUNTED) #ifndef MOUNTED #define MOUNTED _PATH_MOUNTED #endif /* Check in MOUNTED (/etc/mtab) if RW. */ if (!misc_file_ro(MOUNTED)) { path = 1; if (root) { mnt = misc_mntent_lookup(MOUNTED, "/", 1); } else { mnt = misc_mntent_lookup(MOUNTED, device, 0); } if (mnt == INVAL_PTR) path = 0; else if (mnt) return mnt; } #endif /* defined(MOUNTED) || defined(_PATH_MOUNTED) */ /* If has not been checked in neither /proc/mounts nor /etc/mtab (or errors have occurred), return INVAL_PTR, NULL otherwise. */ return (!proc && !path) ? INVAL_PTR : NULL; } int misc_dev_mounted(const char *device) { struct mntent *mnt; /* Check for the "/" first to avoid any possible problem with reflecting the root fs info in mtab files. */ if (misc_root_mounted(device) == 1) { return misc_file_ro("/") ? MF_RO : MF_RW; } /* Lookup the mount entry. */ if ((mnt = misc_mntent(device)) == NULL) { return MF_NOT_MOUNTED; } else if (mnt == INVAL_PTR) { return 0; } return hasmntopt(mnt, MNTOPT_RO) ? MF_RO : MF_RW; } void misc_upper_case(char *dst, const char *src) { int i = 0; const char *s; s = src; while (*s) dst[i++] = toupper(*s++); dst[i] = '\0'; } static errno_t cb_print_plug(reiser4_plug_t *plug, void *data) { uint8_t w1; w1 = 18 - aal_strlen(plug->label); printf("\"%s\"%*s(id:0x%x type:0x%x) [%s]\n", plug->label, w1, " ", plug->id.id, plug->id.type, plug->desc); return 0; } void misc_plugins_print(void) { printf("Known plugins:\n"); reiser4_factory_foreach(cb_print_plug, NULL); printf("\n"); } void misc_uuid_unparse(char *uuid, char *string) { #if defined(HAVE_LIBUUID) && defined(HAVE_UUID_UUID_H) uuid_unparse(uuid, string); #endif } reiser4progs-1.0.7.orig/libmisc/gauge.c0000644000175000017500000000424511131470543015610 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. gauge.c -- common for all progs gauge fucntions. */ #include #include #include #include #include #define GAUGE_BITS_SIZE 4 aal_gauge_t *current_gauge = NULL; static int misc_gauge_time(aal_gauge_time_t *time) { struct timeval t; uint64_t delta; uint64_t usec; if (!time->gap) return 1; gettimeofday(&t, NULL); usec = t.tv_usec / 1000; if ((uint64_t)t.tv_sec < time->sec) goto next; if (((uint64_t)t.tv_sec == time->sec) && (usec < time->misec)) goto next; delta = (t.tv_sec - time->sec) * 1000 + (usec - time->misec); if (delta > time->gap) goto next; return 0; next: time->sec = t.tv_sec; time->misec = usec; return 1; } static inline void misc_gauge_blit(void) { static short bitc = 0; static const char bits[] = "|/-\\"; fprintf(stderr, "%c", bits[bitc]); bitc++; bitc %= GAUGE_BITS_SIZE; } void misc_progress_handler(aal_gauge_t *gauge) { if (!isatty(2)) return; setlinebuf(stderr); if (gauge->state == GS_ACTIVE || gauge->state == GS_RESUME) { /* Show gauge once per rate->time.interval. */ if (!misc_gauge_time(&gauge->time)) return; } misc_wipe_line(stderr); if (gauge->state == GS_PAUSE) goto done; if (gauge->label[0] != '\0') fprintf(stderr, "\r%s", gauge->label); if (gauge->state == GS_DONE) { current_gauge = NULL; if (gauge->label[0] != '\0') fprintf(stderr, "done\n"); goto done; } if (gauge->state == GS_START) { current_gauge = gauge; misc_gauge_time(&gauge->time); goto done; } if (gauge->value_func) gauge->value_func(gauge); if (gauge->value != -1) { uint32_t width, count; width = misc_screen_width(); if (width < 10) goto done; width -= 10; if (width > 50) width = 50; fprintf(stderr, "["); count = width * gauge->value / 100; width -= count; while (count--) { fprintf(stderr, "="); } misc_gauge_blit(); while(width--) { fprintf(stderr, " "); } fprintf(stderr, "] %lld%%", gauge->value); } else { misc_gauge_blit(); } done: fflush(stderr); } reiser4progs-1.0.7.orig/libmisc/ui.c0000644000175000017500000001343411131470543015135 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ui.c -- common for all progs function for work with libreadline. */ #include #include #include #include #ifdef HAVE_CONFIG_H # include #endif #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) #ifndef HAVE_RL_COMPLETION_MATCHES # define OLD_READLINE (1) #endif #include #include #ifndef HAVE_RL_COMPLETION_MATCHES # define rl_completion_matches completion_matches #endif #ifndef rl_compentry_func_t # define rl_compentry_func_t void #endif static aal_list_t *variant = NULL; #endif /* defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) */ #include extern aal_exception_option_t misc_exception_handler(aal_exception_t *exception); /* This function gets user enter */ char *misc_readline( char *prompt, /* prompt to be printed */ void *stream) /* stream to be used */ { char *line; aal_assert("umka-1021", prompt != NULL); aal_assert("umka-1536", stream != NULL); #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) rl_instream = stdin; rl_outstream = stream; if ((line = readline(prompt)) && aal_strlen(line)) { HIST_ENTRY *last_entry = current_history(); if (!last_entry || aal_strncmp(last_entry->line, line, aal_strlen(line))) add_history(line); } #else fprintf(stream, prompt); if (!(line = aal_calloc(256, 0))) return NULL; fgets(line, 256, stdin); #endif if (line) { uint32_t len = aal_strlen(line); if (len) { if (line[len - 1] == '\n' || line[len - 1] == '\040') line[len - 1] = '\0'; } } return line; } /* Gets screen width */ uint16_t misc_screen_width(void) { struct winsize winsize; if (ioctl(2, TIOCGWINSZ, &winsize)) return 0; return winsize.ws_col == 0 ? 80 : winsize.ws_col; } void misc_wipe_line(void *stream) { int i, width = misc_screen_width(); fprintf(stream, "\r"); for (i = 0; i < width - 2; i++) fprintf(stream, " "); fprintf(stream, "\r"); } /* Constructs exception message */ void misc_print_wrap(void *stream, char *text) { char *string, *word; uint32_t screen_width; uint32_t line_width; if (!stream || !text) return; if (!(screen_width = misc_screen_width())) screen_width = 80; for (line_width = 0; (string = aal_strsep(&text, "\n")); ) { for (; (word = aal_strsep(&string, " ")); ) { if (line_width + aal_strlen(word) > screen_width) { fprintf(stream, "\n"); line_width = 0; } fprintf(stream, word); line_width += aal_strlen(word); if (line_width + 1 < screen_width) { fprintf(stream, " "); line_width++; } } fprintf(stream, "\n"); line_width = 0; } } #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) static char *misc_generator(char *text, int state) { char *opt; char s[80], s1[80]; static aal_list_t *cur = NULL; if (!state) cur = variant; while (cur) { aal_memset(s, 0, sizeof(s)); aal_memset(s1, 0, sizeof(s1)); opt = (char *)cur->data; cur = cur->next; misc_upper_case(s, opt); misc_upper_case(s1, text); if (!aal_strncmp(s, s1, aal_strlen(s1))) return aal_strndup(opt, aal_strlen(opt)); } return NULL; } static char **misc_complete(char *text, int start, int end) { rl_compentry_func_t *gen = (rl_compentry_func_t *)misc_generator; return rl_completion_matches(text, gen); } void misc_set_variant(aal_list_t *list) { variant = list; } aal_list_t *misc_get_variant(void) { return variant; } #endif /* Common alpha handler. Params are the same as in numeric handler */ static void misc_alpha_handler( const char *prompt, char *defvalue, aal_check_alpha_func_t check_func, void *data) { char *line; char buff[255]; aal_assert("umka-1133", prompt != NULL); aal_memset(buff, 0, sizeof(buff)); aal_snprintf(buff, sizeof(buff), "%s [%s]: ", prompt, defvalue); while (1) { if (aal_strlen((line = misc_readline(buff, stderr))) == 0) { if (!check_func || check_func(defvalue, data)) return; } if (!check_func || check_func(line, data)) break; } aal_memcpy(defvalue, line, aal_strlen(line)); } /* Common for all misc ui get numeric handler */ static int64_t misc_numeric_handler( const char *prompt, /* prompt message */ int64_t defvalue, /* default value */ aal_check_numeric_func_t check_func, /* user's check method */ void *data) /* opaque data for check_func */ { char buff[255]; int64_t value = 0; aal_assert("umka-1132", prompt != NULL); aal_memset(buff, 0, sizeof(buff)); aal_snprintf(buff, sizeof(buff), "%s [%lli]: ", prompt, defvalue); while (1) { char *line; if (aal_strlen((line = misc_readline(buff, stderr))) == 0) return defvalue; if ((value = misc_size2long(line)) == INVAL_DIG) { aal_error("Invalid numeric has been detected (%s). " "Number is expected (1, 1K, 1M, 1G)", line); continue; } if (!check_func || check_func(value, data)) break; } return value; } void misc_print_banner(char *name) { char *banner; fprintf(stderr, "%s %s\n", name, VERSION); if (!(banner = aal_calloc(255, 0))) return; aal_snprintf(banner, 255, BANNER); misc_print_wrap(stderr, banner); fprintf(stderr, "\n"); aal_free(banner); } static void _init(void) __attribute__((constructor)); static void _init(void) { #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H) rl_initialize(); rl_attempted_completion_function = (CPPFunction *)misc_complete; #endif aal_exception_set_handler(misc_exception_handler); aal_ui_set_numeric_handler(misc_numeric_handler); aal_ui_set_alpha_handler(misc_alpha_handler); /* Setting up the gauges */ aux_gauge_set_handler(misc_progress_handler, GT_PROGRESS); } reiser4progs-1.0.7.orig/README0000644000175000017500000000206711131470543013612 0ustar fzfzCopyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by reiser4progs/COPYING. REISER4PROGS It contains the library for reiser4 filesystem access and manipulation and reiser4 utilities. Send reiser4progs bug reports, requests for help, feature requests, comments, etc. to reiserfs-list@namesys.com. If you are using the latest reiser4progs and it fails provide as much information as possible: your hardware, kernel, patches, settings, reiser4progs version, printed messages, logfile, syslog messages if there is any related information. If you would like advice on using this software, support is available for $25 at www.namesys.com/support.html. FSCK.REISER4 WARNING This is an experimental software yet, MAKE A BACKUP BEFORE USING IT! Do not run rebuild unless something is broken. If you have bad sectors on a drive it is usually a bad idea to continue using it. Then you probably should get a working hard drive, copy the file system from the bad drive to the good one -- dd_rescue is a good tool for that -- and only then run this program. reiser4progs-1.0.7.orig/CUSTOM_INSTALL_README0000644000175000017500000001146411131470543016073 0ustar fzfzTo build the package you need to make the following actions: aclocal && autoheader && autoconf && automake --add-missing (optional) ./configure [OPTIONS] make make install Configure script is accepting the following keys: --enable-Werror enable build with gcc -Werror (default=off) --disable-debug disable asserts debug information (default=on) --enable-libminimal enable building minimal footprint library (default=off) --enable-full-static turns static build type to "fully static" binaries --enable-part-static turns static build type to "partially static" binaries --enable-mkfs-static enable mkfs to be built statically with selected static build type. --enable-fsck-static enable fsck to be built statically with selected static build type. --enable-cpfs-static enable cpfs to be built statically with selected static build type. --enable-resizefs-static enable resizefs to be built statically with selected static build type. --enable-debugfs-static enable debugfs to be built statically with selected static build type. --enable-measurefs-static enable measurefs to be built statically with selected static build type. --disable-symlinks disable symlinks support in minimal library (default=on) --disable-special disable special files support in minimal library (default=on) --disable-large-keys disable large keys in minimal library (default=on) --disable-short-keys disable short keys in minimal library (default=on) --disable-r5-hash disable r5 hash plugin in minimal library (default=on) --disable-fnv1-hash disable fnv1 hash plugin in minimal library (default=on) --disable-rupasov-hash disable rupasov hash plugin in minimal library (default=on) --disable-tea-hash disable tea hash plugin in minimal library (default=on) --enable-deg-hash disable degenerate hash plugin in minimal library (default=off) --with-uuid add support uuid generating and checking (default=auto) --with-readline add support fancy command line editing (default=auto) --with-libaal=PATH directory libaal was installed in Reiser4 support in GNU GRUB. reiser4progs package has ability to be built with so called "minimal footprint" libreiser4 library, which purpose is to provide reiser4 read only support for enviromnents without libc, (that is without memory manager, string functions, etc.), like GNU GRUB works in. In order to build such a library, apply --enable-libminimal key to ./configure script in configuring time and type "make". This library is pretty small and does not contain balancing code, journal code, block allocator, etc. As GNU GRUB has strong limitation for its binary images (used for embeding just after mbr and used for reading main GRUB core), we strongly recomend you do not build in unused hash plugins and extra checks code into "minimal" library. Most common configure command is the following: ./configure --enable-libminimal \ --disable-fnv1-hash \ --disable-rupasov-hash \ --disable-tea-hash \ --disable-deg-hash \ --disable-short-keys \ --disable-special \ --disable-dot_o_fibre \ --disable-ext_3_fibre \ --disable-lexic_fibre This assumes that r5 hash, large keys and ext1 fibration plugins are used -- and they are not disabled here. In the case configure script unable to find libaal, check the following: (1) Make sure, that your system has installed libaal of the correct version (configure script says about expected version). (2) Make sure, that you have one copy of libaal in the system. (3) Make sure, that you have specified correct libaal directory using --with-libaal option (if you have used it). Default location is $prefix/lib. (4) Make sure, that /etc/ld.so.conf contains correct path to the directory libaal was installed in. (5) Make sure, that dynamic linker cache is up to date. Running ldconfig will not be overkill here. If you have checked all listed above, everything seems correct, and you're still unable to build reiser4progs, send an email to reiserfs-list@namesys.com. reiser4progs-1.0.7.orig/configure0000755000175000017500000313177211134132266014652 0ustar fzfz#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="libreiser4/libreiser4.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias build build_cpu build_vendor build_os host host_cpu host_vendor host_os LT_RELEASE LT_CURRENT LT_REVISION LT_AGE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA am__isrc CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE UUID_LIBS CPP LN_S RANLIB SED GREP EGREP ECHO AR CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS AAL_LIBS AAL_MINIMAL_LIBS ENABLE_MINIMAL_TRUE ENABLE_MINIMAL_FALSE PROGS_LIBS MINIMAL_CFLAGS GENERIC_CFLAGS PROGS_LDFLAGS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP F77 FFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-full-static build all static --enable-part-static build all static but libc --enable-Werror enable build with gcc -Werror --enable-debug enable asserts and debug information --disable-libminimal disable minimal footprint library --disable-symlinks disable symlinks support in minimal library --disable-special disable special files support in minimal library --disable-r5-hash disable r5 hash plugin in minimal library --disable-fnv1-hash disable fnv1 hash plugin in minimal library --disable-rupasov-hash disable rupasov hash plugin in minimal library --disable-tea-hash disable tea hash plugin in minimal library --enable-deg-hash enable degenerate hash plugin in minimal library --disable-short-keys disable short keys in minimal library --disable-large-keys disable large keys in minimal library --disable-dot_o_fibre disable dot_o_fibre plugin in minimal library --disable-ext_1_fibre disable ext_1_fibre plugin in minimal library --disable-ext_3_fibre disable ext_3_fibre plugin in minimal library --disable-lexic_fibre disable lexic_fibre plugin in minimal library --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-largefile omit support for large files Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-libaal prefix of where libaal was installed --with-uuid support uuid generating and checking --with-readline support fancy command line editing --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac LIBREISER4_MAJOR_VERSION=1 LIBREISER4_MINOR_VERSION=0 LIBREISER4_MICRO_VERSION=7 LIBREISER4_INTERFACE_AGE=0 LIBREISER4_BINARY_AGE=0 LIBREISER4_VERSION=$LIBREISER4_MAJOR_VERSION.$LIBREISER4_MINOR_VERSION.$LIBREISER4_MICRO_VERSION LT_RELEASE=$LIBREISER4_MAJOR_VERSION.$LIBREISER4_MINOR_VERSION LT_CURRENT=`expr $LIBREISER4_MICRO_VERSION - $LIBREISER4_INTERFACE_AGE` LT_REVISION=$LIBREISER4_INTERFACE_AGE LT_AGE=`expr $LIBREISER4_BINARY_AGE - $LIBREISER4_INTERFACE_AGE` PACKAGE=reiser4progs VERSION=$LIBREISER4_VERSION am__api_version='1.10' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { echo "$as_me:$LINENO: result: $MKDIR_P" >&5 echo "${ECHO_T}$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=$PACKAGE VERSION=$VERSION cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers config.h" { echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE cat >>confdefs.h <<_ACEOF #define LIBREISER4_MAX_INTERFACE_VERSION $LIBREISER4_BINARY_AGE _ACEOF cat >>confdefs.h <<_ACEOF #define LIBREISER4_MIN_INTERFACE_VERSION $LIBREISER4_INTERFACE_AGE _ACEOF # Macro for checking libaal # Check whether --with-libaal was given. if test "${with_libaal+set}" = set; then withval=$with_libaal; fi LIBS="" CFLAGS="$CFLAGS" if test x$with_libaal != x; then LIBS="-L$with_libaal/lib" LDFLAGS="$LDFLAGS -L$with_libaal/lib" CFLAGS="$CFLAGS -I$with_libaal/include" CPPFLAGS="-I$with_libaal/include" fi # Check whether --with-uuid was given. if test "${with_uuid+set}" = set; then withval=$with_uuid; else with_uuid=yes fi # Check for libuuid if test "$with_uuid" = yes; then OLD_LIBS="$LIBS" LIBS="" DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { echo "$as_me:$LINENO: checking for uuid_generate in -luuid" >&5 echo $ECHO_N "checking for uuid_generate in -luuid... $ECHO_C" >&6; } if test "${ac_cv_lib_uuid_uuid_generate+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-luuid $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char uuid_generate (); int main () { return uuid_generate (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_uuid_uuid_generate=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_uuid_uuid_generate=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_uuid_uuid_generate" >&5 echo "${ECHO_T}$ac_cv_lib_uuid_uuid_generate" >&6; } if test $ac_cv_lib_uuid_uuid_generate = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBUUID 1 _ACEOF LIBS="-luuid $LIBS" else { echo "$as_me:$LINENO: WARNING: libuuid could not be found which is required \ for the --with-uuid " >&5 echo "$as_me: WARNING: libuuid could not be found which is required \ for the --with-uuid " >&2;} with_uuid=no fi UUID_LIBS="$LIBS" LIBS="$OLD_LIBS" fi # Check whether --with-readline was given. if test "${with_readline+set}" = set; then withval=$with_readline; else with_readline=yes fi PROGS_LIBS="" # Check for readline if test "x$with_readline" = xyes; then OLD_LIBS="$LIBS" LIBS="" { echo "$as_me:$LINENO: checking for readline in -lreadline" >&5 echo $ECHO_N "checking for readline in -lreadline... $ECHO_C" >&6; } if test "${ac_cv_lib_readline_readline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lreadline -lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char readline (); int main () { return readline (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_readline_readline=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_readline_readline=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_readline_readline" >&5 echo "${ECHO_T}$ac_cv_lib_readline_readline" >&6; } if test $ac_cv_lib_readline_readline = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBREADLINE 1 _ACEOF LIBS="-lreadline $LIBS" else { echo "$as_me:$LINENO: WARNING: GNU Readline could not be found which is required \ for the --with-readline " >&5 echo "$as_me: WARNING: GNU Readline could not be found which is required \ for the --with-readline " >&2;} with_readline=no fi PROGS_LIBS="$PROGS_LIBS $LIBS" LIBS="$OLD_LIBS" fi # Check for ncurses if test "x$with_readline" = xyes; then OLD_LIBS="$LIBS" LIBS="" { echo "$as_me:$LINENO: checking for library containing tgetent" >&5 echo $ECHO_N "checking for library containing tgetent... $ECHO_C" >&6; } if test "${ac_cv_search_tgetent+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tgetent (); int main () { return tgetent (); ; return 0; } _ACEOF for ac_lib in '' ncurses; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_tgetent=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_tgetent+set}" = set; then break fi done if test "${ac_cv_search_tgetent+set}" = set; then : else ac_cv_search_tgetent=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_tgetent" >&5 echo "${ECHO_T}$ac_cv_search_tgetent" >&6; } ac_res=$ac_cv_search_tgetent if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" PROGS_LIBS="$PROGS_LIBS $LIBS" else { echo "$as_me:$LINENO: WARNING: ncurses could not be found which is required for the \ --with-readline option (which is enabled by default). " >&5 echo "$as_me: WARNING: ncurses could not be found which is required for the \ --with-readline option (which is enabled by default). " >&2;} with_readline=no fi LIBS="$OLD_LIBS" fi # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi PROGS_LDFLAGS="" # Check whether --enable-full-static was given. if test "${enable_full_static+set}" = set; then enableval=$enable_full_static; else enable_full_static=no fi if test x$enable_full_static = xyes; then PROGS_LDFLAGS=-all-static fi # Check whether --enable-part-static was given. if test "${enable_part_static+set}" = set; then enableval=$enable_part_static; else enable_part_static=no fi if test x$enable_part_static = xyes; then PROGS_LDFLAGS="-Wl,-lc,-static -static" fi # Check whether --enable-Werror was given. if test "${enable_Werror+set}" = set; then enableval=$enable_Werror; else enable_Werror=no fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then enableval=$enable_debug; else enable_debug=no fi # Check whether --enable-libminimal was given. if test "${enable_libminimal+set}" = set; then enableval=$enable_libminimal; else enable_libminimal=yes fi # Check whether --enable-symlinks was given. if test "${enable_symlinks+set}" = set; then enableval=$enable_symlinks; else enable_symlinks=yes fi # Check whether --enable-special was given. if test "${enable_special+set}" = set; then enableval=$enable_special; else enable_special=yes fi # Check whether --enable-r5_hash was given. if test "${enable_r5_hash+set}" = set; then enableval=$enable_r5_hash; else enable_r5_hash=yes fi # Check whether --enable-fnv1_hash was given. if test "${enable_fnv1_hash+set}" = set; then enableval=$enable_fnv1_hash; else enable_fnv1_hash=yes fi # Check whether --enable-rupasov_hash was given. if test "${enable_rupasov_hash+set}" = set; then enableval=$enable_rupasov_hash; else enable_rupasov_hash=yes fi # Check whether --enable-tea_hash was given. if test "${enable_tea_hash+set}" = set; then enableval=$enable_tea_hash; else enable_tea_hash=yes fi # Check whether --enable-deg_hash was given. if test "${enable_deg_hash+set}" = set; then enableval=$enable_deg_hash; else enable_deg_hash=no fi # Check whether --enable-short_keys was given. if test "${enable_short_keys+set}" = set; then enableval=$enable_short_keys; else enable_short_keys=yes fi # Check whether --enable-large_keys was given. if test "${enable_large_keys+set}" = set; then enableval=$enable_large_keys; else enable_large_keys=yes fi # Check whether --enable-dot_o_fibre was given. if test "${enable_dot_o_fibre+set}" = set; then enableval=$enable_dot_o_fibre; else enable_dot_o_fibre=yes fi # Check whether --enable-ext_1_fibre was given. if test "${enable_ext_1_fibre+set}" = set; then enableval=$enable_ext_1_fibre; else enable_ext_1_fibre=yes fi # Check whether --enable-ext_3_fibre was given. if test "${enable_ext_3_fibre+set}" = set; then enableval=$enable_ext_3_fibre; else enable_ext_3_fibre=yes fi # Check whether --enable-lexic_fibre was given. if test "${enable_lexic_fibre+set}" = set; then enableval=$enable_lexic_fibre; else enable_lexic_fibre=yes fi # Checks for programs. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6; } fi { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done MINIMAL_CFLAGS="" GENERIC_CFLAGS="" # make libc threadsafe (not required for us for awhile, but useful other users of # libreiser4) GENERIC_CFLAGS="$GENERIC_CFLAGS -D_REENTRANT" # Check whether --enable-static was given. if test "${enable_static+set}" = set; then enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi { echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED { echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6; } { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi { echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac { echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi { echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6; } NM="$lt_cv_path_NM" { echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6178 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= { echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments { echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } else { echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6; } fi # Check for command to grab the raw symbol name followed by C symbol from nm. { echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux* | k*bsd*-gnu) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6; } else { echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6; } fi { echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic was given. if test "${with_pic+set}" = set; then withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8685: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8689: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8975: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8979: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9079: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9083: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`echo $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6; } if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= { echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ;; *) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) { echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else { echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ fix_srcfile_path \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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 of the License, 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; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags was given. if test "${with_tags+set}" = set; then withval=$with_tags; tagnames="$withval" fi if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' else ld_shlibs_CXX=no fi ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13948: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13952: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; } if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14052: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14056: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; rdos*) lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15614: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15618: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; } if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15718: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15722: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix[3-9]*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs_F77=no fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6; } if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ fix_srcfile_path_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17905: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:17909: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; rdos*) lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18195: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18199: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; } if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18299: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:18303: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix[3-9]*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs_GCJ=no fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6; } if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ fix_srcfile_path_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ fix_srcfile_path_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion if test "$with_uuid" = yes; then for ac_header in uuid/uuid.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else { echo "$as_me:$LINENO: WARNING: The headers for libuuid could not be found which \ are required for the --with-uuid option. " >&5 echo "$as_me: WARNING: The headers for libuuid could not be found which \ are required for the --with-uuid option. " >&2;} fi done fi if test "x$with_readline" = xyes; then for ac_header in readline/readline.h readline/history.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else { echo "$as_me:$LINENO: WARNING: The headers for GNU Readline could not be found which \ are required for the --with-readline option. " >&5 echo "$as_me: WARNING: The headers for GNU Readline could not be found which \ are required for the --with-readline option. " >&2;} fi done fi # Checks for header files. ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi for ac_header in printf.h errno.h fcntl.h mntent.h stdint.h stdlib.h \ string.h sys/ioctl.h sys/mount.h sys/vfs.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures and compiler characteristics. { echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } if test "${ac_cv_c_bigendian+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # See if sys/param.h defines the BYTE_ORDER macro. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then # It does; now see whether it defined to BIG_ENDIAN or not. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_bigendian=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # It does not; compile a test program. if test "$cross_compiling" = yes; then # try to guess the endianness by grepping values into an object file ac_cv_c_bigendian=unknown cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } int main () { _ascii (); _ebcdic (); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_bigendian=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in yes) cat >>confdefs.h <<\_ACEOF #define WORDS_BIGENDIAN 1 _ACEOF ;; no) ;; *) { { echo "$as_me:$LINENO: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" >&5 echo "$as_me: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} { (exit 1); exit 1; }; } ;; esac # Checks for library functions. if test "x$with_readline" = xyes; then OLD_LIBS="$LIBS" LIBS="$LIBS $PROGS_LIBS" for ac_func in rl_completion_matches do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done LIBS="$OLD_LIBS" fi # Checks for typedefs, structures, and compiler characteristics. { echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const _ACEOF fi { echo "$as_me:$LINENO: checking for inline" >&5 echo $ECHO_N "checking for inline... $ECHO_C" >&6; } if test "${ac_cv_c_inline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_inline=$ac_kw else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef size_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6; } if test $ac_cv_type_size_t = yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { echo "$as_me:$LINENO: checking for struct stat.st_rdev" >&5 echo $ECHO_N "checking for struct stat.st_rdev... $ECHO_C" >&6; } if test "${ac_cv_member_struct_stat_st_rdev+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static struct stat ac_aggr; if (ac_aggr.st_rdev) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_rdev=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static struct stat ac_aggr; if (sizeof ac_aggr.st_rdev) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_rdev=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_rdev=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_rdev" >&5 echo "${ECHO_T}$ac_cv_member_struct_stat_st_rdev" >&6; } if test $ac_cv_member_struct_stat_st_rdev = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_RDEV 1 _ACEOF fi # Checks for library functions. if test $ac_cv_c_compiler_gnu = yes; then { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6; } if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then ac_cv_func_lstat_dereferences_slashed_symlink=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_lstat_dereferences_slashed_symlink=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { echo "$as_me:$LINENO: checking whether stat accepts an empty string" >&5 echo $ECHO_N "checking whether stat accepts an empty string... $ECHO_C" >&6; } if test "${ac_cv_func_stat_empty_string_bug+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_stat_empty_string_bug=yes else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return stat ("", &sbuf) == 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_stat_empty_string_bug=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_stat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_stat_empty_string_bug" >&5 echo "${ECHO_T}$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 _ACEOF fi for ac_func in register_printf_function statfs getmntent hasmntopt memset strerror \ strtol time uname sysconf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # The options -falign-* are supported by gcc 3.0 or later. # Probably it is sufficient to only check for -falign-loops. { echo "$as_me:$LINENO: checking whether -falign-loops works" >&5 echo $ECHO_N "checking whether -falign-loops works... $ECHO_C" >&6; } if test "${falign_loop_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-falign-loops=1" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then falign_loop_flag=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 falign_loop_flag=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$saved_CPPFLAGS" fi { echo "$as_me:$LINENO: result: $falign_loop_flag" >&5 echo "${ECHO_T}$falign_loop_flag" >&6; } # Checking for compiler warning options { echo "$as_me:$LINENO: checking whether -Wuninitialized works" >&5 echo $ECHO_N "checking whether -Wuninitialized works... $ECHO_C" >&6; } if test "${uninitialized+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-O1 -Wuninitialized" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then uninitialized=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 uninitialized=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$saved_CPPFLAGS" fi { echo "$as_me:$LINENO: result: $uninitialized" >&5 echo "${ECHO_T}$uninitialized" >&6; } { echo "$as_me:$LINENO: checking whether -Wno-unused-parameter works" >&5 echo $ECHO_N "checking whether -Wno-unused-parameter works... $ECHO_C" >&6; } if test "${no_unused_parameter+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-Wno-unused-parameter" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then no_unused_parameter=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 no_unused_parameter=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$saved_CPPFLAGS" fi { echo "$as_me:$LINENO: result: $no_unused_parameter" >&5 echo "${ECHO_T}$no_unused_parameter" >&6; } { echo "$as_me:$LINENO: checking whether -Wredundant-decls works" >&5 echo $ECHO_N "checking whether -Wredundant-decls works... $ECHO_C" >&6; } if test "${redundant_decls+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-Wredundant-decls" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then redundant_decls=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 redundant_decls=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$saved_CPPFLAGS" fi { echo "$as_me:$LINENO: result: $redundant_decls" >&5 echo "${ECHO_T}$redundant_decls" >&6; } if test "x$with_readline" = xyes && test "x$redundant_decls" == xyes; then saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-Werror -Wredundant-decls" { echo "$as_me:$LINENO: checking whether -Wredundant-decls works with readline.h" >&5 echo $ECHO_N "checking whether -Wredundant-decls works with readline.h... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then redundant_decls=yes; { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 redundant_decls=no; { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$saved_CPPFLAGS" fi # Force no alignment to save space. if test "x$falign_loop_flag" = xyes; then ALIGN_FLAGS="-falign-jumps=1 -falign-loops=1 -falign-functions=1 \ -falign-labels=1 -fno-inline -fstrength-reduce" else ALIGN_FLAGS="-malign-jumps=1 -malign-loops=1 -malign-functions=1" fi # Check for large file # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } if test "${ac_cv_sys_largefile_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_largefile_CC=' -n32'; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } if test "${ac_cv_sys_file_offset_bits+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_file_offset_bits=no; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_file_offset_bits=64; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -f conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } if test "${ac_cv_sys_large_files+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_large_files=no; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_large_files=1; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 echo "${ECHO_T}$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -f conftest* fi fi if test x${ac_cv_sys_file_offset_bits} = xno; then { echo "$as_me:$LINENO: WARNING: Can't detect right _FILE_OFFSET_BITS. Will be forced to 64bit." >&5 echo "$as_me: WARNING: Can't detect right _FILE_OFFSET_BITS. Will be forced to 64bit." >&2;} ac_cv_sys_file_offset_bits=64 fi GENERIC_CFLAGS="$GENERIC_CFLAGS -D_FILE_OFFSET_BITS=${ac_cv_sys_file_offset_bits}" { echo "$as_me:$LINENO: checking for off_t" >&5 echo $ECHO_N "checking for off_t... $ECHO_C" >&6; } if test "${ac_cv_type_off_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include typedef off_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_off_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_off_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 echo "${ECHO_T}$ac_cv_type_off_t" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of off_t" >&5 echo $ECHO_N "checking size of off_t... $ECHO_C" >&6; } if test "${ac_cv_sizeof_off_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include typedef off_t ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include typedef off_t ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include typedef off_t ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include typedef off_t ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include typedef off_t ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_off_t=$ac_lo;; '') if test "$ac_cv_type_off_t" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (off_t) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_off_t=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include typedef off_t ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_off_t=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_off_t" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (off_t) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_off_t=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_off_t" >&5 echo "${ECHO_T}$ac_cv_sizeof_off_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_OFF_T $ac_cv_sizeof_off_t _ACEOF OLD_LIBS="$LIBS" { echo "$as_me:$LINENO: checking for aal_device_open in -laal" >&5 echo $ECHO_N "checking for aal_device_open in -laal... $ECHO_C" >&6; } if test "${ac_cv_lib_aal_aal_device_open+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-laal $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char aal_device_open (); int main () { return aal_device_open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_aal_aal_device_open=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_aal_aal_device_open=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_aal_aal_device_open" >&5 echo "${ECHO_T}$ac_cv_lib_aal_aal_device_open" >&6; } if test $ac_cv_lib_aal_aal_device_open = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBAAL 1 _ACEOF LIBS="-laal $LIBS" else { { echo "$as_me:$LINENO: error: libaal not found; install libaal available at \ http://www.namesys.com/snapshots" >&5 echo "$as_me: error: libaal not found; install libaal available at \ http://www.namesys.com/snapshots" >&2;} { (exit 1); exit 1; }; } exit fi # Check for headers and library if test "${ac_cv_header_aal_libaal_h+set}" = set; then { echo "$as_me:$LINENO: checking for aal/libaal.h" >&5 echo $ECHO_N "checking for aal/libaal.h... $ECHO_C" >&6; } if test "${ac_cv_header_aal_libaal_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_aal_libaal_h" >&5 echo "${ECHO_T}$ac_cv_header_aal_libaal_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking aal/libaal.h usability" >&5 echo $ECHO_N "checking aal/libaal.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking aal/libaal.h presence" >&5 echo $ECHO_N "checking aal/libaal.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: aal/libaal.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: aal/libaal.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: aal/libaal.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: aal/libaal.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: aal/libaal.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: aal/libaal.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: aal/libaal.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: aal/libaal.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: aal/libaal.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: aal/libaal.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for aal/libaal.h" >&5 echo $ECHO_N "checking for aal/libaal.h... $ECHO_C" >&6; } if test "${ac_cv_header_aal_libaal_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_aal_libaal_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_aal_libaal_h" >&5 echo "${ECHO_T}$ac_cv_header_aal_libaal_h" >&6; } fi if test $ac_cv_header_aal_libaal_h = yes; then : else { { echo "$as_me:$LINENO: error: not found" >&5 echo "$as_me: error: not found" >&2;} { (exit 1); exit 1; }; } exit fi { echo "$as_me:$LINENO: checking for libaal version = 1.0.5" >&5 echo $ECHO_N "checking for libaal version = 1.0.5... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libaal_version (); int main () { return libaal_version (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6; } { { echo "$as_me:$LINENO: error: libaal can't execute test" >&5 echo "$as_me: error: libaal can't execute test" >&2;} { (exit 1); exit 1; }; } fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext # Get major, minor, and micro version from arg MINIMUM-VERSION libaal_config_major_version=`echo 1.0.5 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` libaal_config_minor_version=`echo 1.0.5 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` libaal_config_micro_version=`echo 1.0.5 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` OLD_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -static" # Compare MINIMUM-VERSION with libaal version if test "$cross_compiling" = yes; then echo $ac_n "cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main() { const char *version; int major, minor, micro; if (!(version = libaal_version())) exit(1); if (sscanf(version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", version); exit(1); } if ((major >= $libaal_config_major_version) && ((major == $libaal_config_major_version) && (minor >= $libaal_config_minor_version)) && ((major == $libaal_config_major_version) && (minor == $libaal_config_minor_version) && (micro >= $libaal_config_micro_version))) { return 0; } printf("\nAn old version of libaal (%s) was found.\n", version); printf("You need a libaal of the version %d.%d.%d or newer.\n", $libaal_config_major_version, $libaal_config_minor_version, $libaal_config_micro_version); printf("You can get it at http://www.namesys.com/snapshots\n"); return 1; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ; exit fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi CFLAGS=$OLD_CFLAGS # Execute ACTION-IF-FOUND AAL_LIBS="$LIBS" LIBS="$OLD_LIBS" if test x$enable_libminimal = xyes; then OLD_LIBS="$LIBS" { echo "$as_me:$LINENO: checking for aal_device_open in -laal-minimal" >&5 echo $ECHO_N "checking for aal_device_open in -laal-minimal... $ECHO_C" >&6; } if test "${ac_cv_lib_aal_minimal_aal_device_open+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-laal-minimal $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char aal_device_open (); int main () { return aal_device_open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_aal_minimal_aal_device_open=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_aal_minimal_aal_device_open=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_aal_minimal_aal_device_open" >&5 echo "${ECHO_T}$ac_cv_lib_aal_minimal_aal_device_open" >&6; } if test $ac_cv_lib_aal_minimal_aal_device_open = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBAAL_MINIMAL 1 _ACEOF LIBS="-laal-minimal $LIBS" else { { echo "$as_me:$LINENO: error: libaal-minimal not found; install libaal available at \ http://www.namesys.com/snapshots" >&5 echo "$as_me: error: libaal-minimal not found; install libaal available at \ http://www.namesys.com/snapshots" >&2;} { (exit 1); exit 1; }; } exit fi # Check for headers and library if test "${ac_cv_header_aal_libaal_h+set}" = set; then { echo "$as_me:$LINENO: checking for aal/libaal.h" >&5 echo $ECHO_N "checking for aal/libaal.h... $ECHO_C" >&6; } if test "${ac_cv_header_aal_libaal_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_aal_libaal_h" >&5 echo "${ECHO_T}$ac_cv_header_aal_libaal_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking aal/libaal.h usability" >&5 echo $ECHO_N "checking aal/libaal.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking aal/libaal.h presence" >&5 echo $ECHO_N "checking aal/libaal.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: aal/libaal.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: aal/libaal.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: aal/libaal.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: aal/libaal.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: aal/libaal.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: aal/libaal.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: aal/libaal.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: aal/libaal.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: aal/libaal.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: aal/libaal.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: aal/libaal.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for aal/libaal.h" >&5 echo $ECHO_N "checking for aal/libaal.h... $ECHO_C" >&6; } if test "${ac_cv_header_aal_libaal_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_aal_libaal_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_aal_libaal_h" >&5 echo "${ECHO_T}$ac_cv_header_aal_libaal_h" >&6; } fi if test $ac_cv_header_aal_libaal_h = yes; then : else { { echo "$as_me:$LINENO: error: not found" >&5 echo "$as_me: error: not found" >&2;} { (exit 1); exit 1; }; } exit fi { echo "$as_me:$LINENO: checking for libaal-minimal version = 1.0.5" >&5 echo $ECHO_N "checking for libaal-minimal version = 1.0.5... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libaal_version (); int main () { return libaal_version (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6; } { { echo "$as_me:$LINENO: error: libaal-minimal can't execute test" >&5 echo "$as_me: error: libaal-minimal can't execute test" >&2;} { (exit 1); exit 1; }; } fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext # Get major, minor, and micro version from arg MINIMUM-VERSION libaal_config_major_version=`echo 1.0.5 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` libaal_config_minor_version=`echo 1.0.5 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` libaal_config_micro_version=`echo 1.0.5 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` OLD_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -static" # Compare MINIMUM-VERSION with libaal version if test "$cross_compiling" = yes; then echo $ac_n "cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main() { const char *version; int major, minor, micro; if (!(version = libaal_version())) exit(1); if (sscanf(version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", version); exit(1); } if ((major >= $libaal_config_major_version) && ((major == $libaal_config_major_version) && (minor >= $libaal_config_minor_version)) && ((major == $libaal_config_major_version) && (minor == $libaal_config_minor_version) && (micro >= $libaal_config_micro_version))) { return 0; } printf("\nAn old version of libaal (%s) was found.\n", version); printf("You need a libaal of the version %d.%d.%d or newer.\n", $libaal_config_major_version, $libaal_config_minor_version, $libaal_config_micro_version); printf("You can get it at http://www.namesys.com/snapshots\n"); return 1; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ; exit fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi CFLAGS=$OLD_CFLAGS # Execute ACTION-IF-FOUND AAL_MINIMAL_LIBS="$LIBS" LIBS="$OLD_LIBS" if test x$enable_symlinks = xyes; then SYMLINKS_CFLAGS="-DENABLE_SYMLINKS" fi if test x$enable_special = xyes; then SPECIAL_CFLAGS="-DENABLE_SPECIAL" fi if test x$enable_r5_hash = xyes; then R5_HASH_CFLAGS="-DENABLE_R5_HASH" fi if test x$enable_fnv1_hash = xyes; then FNV1_HASH_CFLAGS="-DENABLE_FNV1_HASH" fi if test x$enable_rupasov_hash = xyes; then RUPASOV_HASH_CFLAGS="-DENABLE_RUPASOV_HASH" fi if test x$enable_tea_hash = xyes; then TEA_HASH_CFLAGS="-DENABLE_TEA_HASH" fi if test x$enable_deg_hash = xyes; then DEG_HASH_CFLAGS="-DENABLE_DEG_HASH" fi if test x$enable_short_keys = xyes; then SHORT_KEYS_CFLAGS="-DENABLE_SHORT_KEYS" fi if test x$enable_large_keys = xyes; then LARGE_KEYS_CFLAGS="-DENABLE_LARGE_KEYS" fi if test x$enable_large_keys != xyes -a x$enable_short_keys != xyes; then echo echo Both LARGE and SHORT keys cannot be disabled at the same time. exit 1; fi if test x$enable_dot_o_fibre = xyes; then FIBRE_FLAGS="$FIBRE_FLAGS -DENABLE_DOT_O_FIBRE" fi if test x$enable_ext_1_fibre = xyes; then FIBRE_FLAGS="$FIBRE_FLAGS -DENABLE_EXT_1_FIBRE" fi if test x$enable_ext_3_fibre = xyes; then FIBRE_FLAGS="$FIBRE_FLAGS -DENABLE_EXT_3_FIBRE" fi if test x$enable_lexic_fibre = xyes; then FIBRE_FLAGS="$FIBRE_FLAGS -DENABLE_LEXIC_FIBRE" fi # if test x$enable_dot_o_fibre != xyes -a x$enable_ext_1_fibre != xyes -a \ # x$enable_ext_3_fibre != xyes -a x$enable_lexic_fibre; then # echo # echo All fibre plugins cannot be disabled at the same time. # exit 1; # fi MINIMAL_CFLAGS="$MINIMAL_CFLAGS -DENABLE_MINIMAL $SYMLINKS_CFLAGS $SPECIAL_CFLAGS \ $R5_HASH_CFLAGS $FNV1_HASH_CFLAGS $RUPASOV_HASH_CFLAGS $TEA_HASH_CFLAGS $DEG_HASH_CFLAGS \ $ALIGN_FLAGS $LARGE_KEYS_CFLAGS $SHORT_KEYS_CFLAGS $FIBRE_FLAGS" fi GENERIC_CFLAGS="$GENERIC_CFLAGS -DENABLE_SYMLINKS -DENABLE_SPECIAL -DENABLE_R5_HASH \ -DENABLE_FNV1_HASH -DENABLE_RUPASOV_HASH -DENABLE_TEA_HASH -DENABLE_DEG_HASH \ -DENABLE_LARGE_KEYS -DENABLE_SHORT_KEYS -DENABLE_DOT_O_FIBRE -DENABLE_EXT_1_FIBRE \ -DENABLE_EXT_3_FIBRE -DENABLE_LEXIC_FIBRE" CFLAGS="$CFLAGS -W -Wall" if test x$enable_debug = xyes; then GENERIC_CFLAGS="$GENERIC_CFLAGS -O1 -g" MINIMAL_CFLAGS="$MINIMAL_CFLAGS -O1 -g" else GENERIC_CFLAGS="$GENERIC_CFLAGS -O3" MINIMAL_CFLAGS="$MINIMAL_CFLAGS -Os" if test x$uninitialized = xyes; then CFLAGS="$CFLAGS -Wuninitialized" fi fi if test x$no_unused_parameter = xyes; then CFLAGS="$CFLAGS -Wno-unused-parameter" else CFLAGS="$CFLAGS -Wno-unused" fi if test x$redundant_decls = xyes; then CFLAGS="$CFLAGS -Wredundant-decls" fi if test x$enable_Werror = xyes; then CFLAGS="$CFLAGS -Werror" fi if test x$enable_libminimal = xyes; then ENABLE_MINIMAL_TRUE= ENABLE_MINIMAL_FALSE='#' else ENABLE_MINIMAL_TRUE='#' ENABLE_MINIMAL_FALSE= fi if test x$enable_debug = xyes; then cat >>confdefs.h <<\_ACEOF #define ENABLE_DEBUG 1 _ACEOF fi ac_config_files="$ac_config_files Makefile include/Makefile include/aux/Makefile include/misc/Makefile include/reiser4/Makefile include/repair/Makefile libmisc/Makefile libaux/Makefile libreiser4/Makefile librepair/Makefile plugin/Makefile plugin/format/Makefile plugin/format/format40/Makefile plugin/alloc/Makefile plugin/alloc/alloc40/Makefile plugin/journal/Makefile plugin/journal/journal40/Makefile plugin/oid/Makefile plugin/oid/oid40/Makefile plugin/node/Makefile plugin/node/node40/Makefile plugin/key/Makefile plugin/key/key_common/Makefile plugin/key/key_short/Makefile plugin/key/key_large/Makefile plugin/item/Makefile plugin/item/body40/Makefile plugin/item/nodeptr40/Makefile plugin/item/stat40/Makefile plugin/item/cde40/Makefile plugin/item/tail40/Makefile plugin/item/plain40/Makefile plugin/item/ctail40/Makefile plugin/item/extent40/Makefile plugin/item/bbox40/Makefile plugin/object/Makefile plugin/object/obj40/Makefile plugin/object/dir40/Makefile plugin/object/reg40/Makefile plugin/object/sym40/Makefile plugin/object/spl40/Makefile plugin/object/ccreg40/Makefile plugin/policy/Makefile plugin/policy/tails/Makefile plugin/policy/extents/Makefile plugin/policy/smart/Makefile plugin/hash/Makefile plugin/hash/r5_hash/Makefile plugin/hash/tea_hash/Makefile plugin/hash/deg_hash/Makefile plugin/hash/rupasov_hash/Makefile plugin/hash/fnv1_hash/Makefile plugin/fibre/Makefile plugin/fibre/lexic_fibre/Makefile plugin/fibre/dot_o_fibre/Makefile plugin/fibre/ext_1_fibre/Makefile plugin/fibre/ext_3_fibre/Makefile plugin/sdext/Makefile plugin/sdext/sdext_unix/Makefile plugin/sdext/sdext_lw/Makefile plugin/sdext/sdext_lt/Makefile plugin/sdext/sdext_symlink/Makefile plugin/sdext/sdext_flags/Makefile plugin/sdext/sdext_plug/Makefile plugin/sdext/sdext_crypto/Makefile plugin/compress/Makefile progs/Makefile progs/mkfs/Makefile progs/fsck/Makefile progs/debugfs/Makefile progs/measurefs/Makefile demos/Makefile doc/Makefile reiser4progs.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${ENABLE_MINIMAL_TRUE}" && test -z "${ENABLE_MINIMAL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ENABLE_MINIMAL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ENABLE_MINIMAL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "include/aux/Makefile") CONFIG_FILES="$CONFIG_FILES include/aux/Makefile" ;; "include/misc/Makefile") CONFIG_FILES="$CONFIG_FILES include/misc/Makefile" ;; "include/reiser4/Makefile") CONFIG_FILES="$CONFIG_FILES include/reiser4/Makefile" ;; "include/repair/Makefile") CONFIG_FILES="$CONFIG_FILES include/repair/Makefile" ;; "libmisc/Makefile") CONFIG_FILES="$CONFIG_FILES libmisc/Makefile" ;; "libaux/Makefile") CONFIG_FILES="$CONFIG_FILES libaux/Makefile" ;; "libreiser4/Makefile") CONFIG_FILES="$CONFIG_FILES libreiser4/Makefile" ;; "librepair/Makefile") CONFIG_FILES="$CONFIG_FILES librepair/Makefile" ;; "plugin/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/Makefile" ;; "plugin/format/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/format/Makefile" ;; "plugin/format/format40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/format/format40/Makefile" ;; "plugin/alloc/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/alloc/Makefile" ;; "plugin/alloc/alloc40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/alloc/alloc40/Makefile" ;; "plugin/journal/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/journal/Makefile" ;; "plugin/journal/journal40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/journal/journal40/Makefile" ;; "plugin/oid/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/oid/Makefile" ;; "plugin/oid/oid40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/oid/oid40/Makefile" ;; "plugin/node/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/node/Makefile" ;; "plugin/node/node40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/node/node40/Makefile" ;; "plugin/key/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/key/Makefile" ;; "plugin/key/key_common/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/key/key_common/Makefile" ;; "plugin/key/key_short/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/key/key_short/Makefile" ;; "plugin/key/key_large/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/key/key_large/Makefile" ;; "plugin/item/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/Makefile" ;; "plugin/item/body40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/body40/Makefile" ;; "plugin/item/nodeptr40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/nodeptr40/Makefile" ;; "plugin/item/stat40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/stat40/Makefile" ;; "plugin/item/cde40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/cde40/Makefile" ;; "plugin/item/tail40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/tail40/Makefile" ;; "plugin/item/plain40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/plain40/Makefile" ;; "plugin/item/ctail40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/ctail40/Makefile" ;; "plugin/item/extent40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/extent40/Makefile" ;; "plugin/item/bbox40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/item/bbox40/Makefile" ;; "plugin/object/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/object/Makefile" ;; "plugin/object/obj40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/object/obj40/Makefile" ;; "plugin/object/dir40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/object/dir40/Makefile" ;; "plugin/object/reg40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/object/reg40/Makefile" ;; "plugin/object/sym40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/object/sym40/Makefile" ;; "plugin/object/spl40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/object/spl40/Makefile" ;; "plugin/object/ccreg40/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/object/ccreg40/Makefile" ;; "plugin/policy/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/policy/Makefile" ;; "plugin/policy/tails/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/policy/tails/Makefile" ;; "plugin/policy/extents/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/policy/extents/Makefile" ;; "plugin/policy/smart/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/policy/smart/Makefile" ;; "plugin/hash/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/hash/Makefile" ;; "plugin/hash/r5_hash/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/hash/r5_hash/Makefile" ;; "plugin/hash/tea_hash/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/hash/tea_hash/Makefile" ;; "plugin/hash/deg_hash/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/hash/deg_hash/Makefile" ;; "plugin/hash/rupasov_hash/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/hash/rupasov_hash/Makefile" ;; "plugin/hash/fnv1_hash/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/hash/fnv1_hash/Makefile" ;; "plugin/fibre/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/fibre/Makefile" ;; "plugin/fibre/lexic_fibre/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/fibre/lexic_fibre/Makefile" ;; "plugin/fibre/dot_o_fibre/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/fibre/dot_o_fibre/Makefile" ;; "plugin/fibre/ext_1_fibre/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/fibre/ext_1_fibre/Makefile" ;; "plugin/fibre/ext_3_fibre/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/fibre/ext_3_fibre/Makefile" ;; "plugin/sdext/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/sdext/Makefile" ;; "plugin/sdext/sdext_unix/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/sdext/sdext_unix/Makefile" ;; "plugin/sdext/sdext_lw/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/sdext/sdext_lw/Makefile" ;; "plugin/sdext/sdext_lt/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/sdext/sdext_lt/Makefile" ;; "plugin/sdext/sdext_symlink/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/sdext/sdext_symlink/Makefile" ;; "plugin/sdext/sdext_flags/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/sdext/sdext_flags/Makefile" ;; "plugin/sdext/sdext_plug/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/sdext/sdext_plug/Makefile" ;; "plugin/sdext/sdext_crypto/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/sdext/sdext_crypto/Makefile" ;; "plugin/compress/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/compress/Makefile" ;; "progs/Makefile") CONFIG_FILES="$CONFIG_FILES progs/Makefile" ;; "progs/mkfs/Makefile") CONFIG_FILES="$CONFIG_FILES progs/mkfs/Makefile" ;; "progs/fsck/Makefile") CONFIG_FILES="$CONFIG_FILES progs/fsck/Makefile" ;; "progs/debugfs/Makefile") CONFIG_FILES="$CONFIG_FILES progs/debugfs/Makefile" ;; "progs/measurefs/Makefile") CONFIG_FILES="$CONFIG_FILES progs/measurefs/Makefile" ;; "demos/Makefile") CONFIG_FILES="$CONFIG_FILES demos/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "reiser4progs.spec") CONFIG_FILES="$CONFIG_FILES reiser4progs.spec" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim LT_RELEASE!$LT_RELEASE$ac_delim LT_CURRENT!$LT_CURRENT$ac_delim LT_REVISION!$LT_REVISION$ac_delim LT_AGE!$LT_AGE$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim am__isrc!$am__isrc$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim MAINT!$MAINT$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim UUID_LIBS!$UUID_LIBS$ac_delim CPP!$CPP$ac_delim LN_S!$LN_S$ac_delim RANLIB!$RANLIB$ac_delim SED!$SED$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF ECHO!$ECHO$ac_delim AR!$AR$ac_delim CXX!$CXX$ac_delim CXXFLAGS!$CXXFLAGS$ac_delim ac_ct_CXX!$ac_ct_CXX$ac_delim CXXDEPMODE!$CXXDEPMODE$ac_delim am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim CXXCPP!$CXXCPP$ac_delim F77!$F77$ac_delim FFLAGS!$FFLAGS$ac_delim ac_ct_F77!$ac_ct_F77$ac_delim LIBTOOL!$LIBTOOL$ac_delim LIBOBJS!$LIBOBJS$ac_delim AAL_LIBS!$AAL_LIBS$ac_delim AAL_MINIMAL_LIBS!$AAL_MINIMAL_LIBS$ac_delim ENABLE_MINIMAL_TRUE!$ENABLE_MINIMAL_TRUE$ac_delim ENABLE_MINIMAL_FALSE!$ENABLE_MINIMAL_FALSE$ac_delim PROGS_LIBS!$PROGS_LIBS$ac_delim MINIMAL_CFLAGS!$MINIMAL_CFLAGS$ac_delim GENERIC_CFLAGS!$GENERIC_CFLAGS$ac_delim PROGS_LDFLAGS!$PROGS_LDFLAGS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 23; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| . 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi echo echo Type \'make\' to compile reiser4progs and \'make install\' to install it. reiser4progs-1.0.7.orig/one_touch_install0000644000175000017500000000125711131470543016366 0ustar fzfz#!/bin/bash if [ ! -f ./configure.in ]; then echo "Error: You should run this from the package directory." exit 1 fi if [ ! -x ./configure ]; then echo "Making configure script..." aclocal && ( autoheader && ( autoconf && ( automake --add-missing ) || exit $? ) || exit $? ) || exit $? fi cpu_nr=$(cat /proc/cpuinfo | grep ^processor\.*:\.*[[:digit:]] | \ wc -l | tr --delete [[:blank:]]) if test "x$cpu_nr" = "x"; then cpu_nr=1 fi ./configure && make -j$cpu_nr if [ $? != 0 ]; then exit $? fi if test x$USER != "xroot"; then echo "You are not root and installing may require root privilages. \ Enter root password before install." fi sudo make install reiser4progs-1.0.7.orig/configure.in0000644000175000017500000004140311131474324015241 0ustar fzfz# Process this file with autoconf to produce a configure script. AC_INIT(libreiser4/libreiser4.c) AC_CANONICAL_HOST AC_PREREQ(2.50) AH_TEMPLATE([PACKAGE], [Define this to be the name of the package.]) AH_TEMPLATE([VERSION], [Define to the version of the package.]) AH_TEMPLATE([ENABLE_DEBUG], [Define for enable debug info.]) AH_TEMPLATE([HAVE_LIBUUID], [Define for enable libuuid using.]) AH_TEMPLATE([HAVE_LIBREADLINE], [Define for enable libreadline using.]) AH_TEMPLATE([LIBREISER4_MAX_INTERFACE_VERSION], [Define to the max interface version.]) AH_TEMPLATE([LIBREISER4_MIN_INTERFACE_VERSION], [Define to the min interface version.]) LIBREISER4_MAJOR_VERSION=1 LIBREISER4_MINOR_VERSION=0 LIBREISER4_MICRO_VERSION=7 LIBREISER4_INTERFACE_AGE=0 LIBREISER4_BINARY_AGE=0 LIBREISER4_VERSION=$LIBREISER4_MAJOR_VERSION.$LIBREISER4_MINOR_VERSION.$LIBREISER4_MICRO_VERSION LT_RELEASE=$LIBREISER4_MAJOR_VERSION.$LIBREISER4_MINOR_VERSION LT_CURRENT=`expr $LIBREISER4_MICRO_VERSION - $LIBREISER4_INTERFACE_AGE` LT_REVISION=$LIBREISER4_INTERFACE_AGE LT_AGE=`expr $LIBREISER4_BINARY_AGE - $LIBREISER4_INTERFACE_AGE` AC_SUBST(LT_RELEASE) AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) PACKAGE=reiser4progs VERSION=$LIBREISER4_VERSION AM_INIT_AUTOMAKE($PACKAGE, $VERSION) AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE AC_DEFINE_UNQUOTED(LIBREISER4_MAX_INTERFACE_VERSION, $LIBREISER4_BINARY_AGE) AC_DEFINE_UNQUOTED(LIBREISER4_MIN_INTERFACE_VERSION, $LIBREISER4_INTERFACE_AGE) # Macro for checking libaal AC_DEFUN([AC_CHECK_LIBAAL], [ AC_CHECK_LIB($1, aal_device_open, , [AC_MSG_ERROR([lib$1 not found; install libaal available at \ http://www.namesys.com/snapshots])] $4) # Check for headers and library AC_CHECK_HEADER(aal/libaal.h, , [AC_MSG_ERROR([ not found])] $4) AC_MSG_CHECKING(for lib$1 version = $2) AC_TRY_LINK_FUNC(libaal_version,, AC_MSG_RESULT(failed) AC_MSG_ERROR([lib$1 can't execute test])) # Get major, minor, and micro version from arg MINIMUM-VERSION libaal_config_major_version=`echo $2 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` libaal_config_minor_version=`echo $2 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` libaal_config_micro_version=`echo $2 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` OLD_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -static" # Compare MINIMUM-VERSION with libaal version AC_TRY_RUN([ #include #include #include int main() { const char *version; int major, minor, micro; if (!(version = libaal_version())) exit(1); if (sscanf(version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", version); exit(1); } if ((major >= $libaal_config_major_version) && ((major == $libaal_config_major_version) && (minor >= $libaal_config_minor_version)) && ((major == $libaal_config_major_version) && (minor == $libaal_config_minor_version) && (micro >= $libaal_config_micro_version))) { return 0; } printf("\nAn old version of libaal (%s) was found.\n", version); printf("You need a libaal of the version %d.%d.%d or newer.\n", $libaal_config_major_version, $libaal_config_minor_version, $libaal_config_micro_version); printf("You can get it at http://www.namesys.com/snapshots\n"); return 1; } ], AC_MSG_RESULT(yes), AC_MSG_RESULT(no) ; $4, [echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS=$OLD_CFLAGS # Execute ACTION-IF-FOUND $3]) AC_ARG_WITH(libaal, [ --with-libaal prefix of where libaal was installed], , ) LIBS="" CFLAGS="$CFLAGS" if test x$with_libaal != x; then LIBS="-L$with_libaal/lib" LDFLAGS="$LDFLAGS -L$with_libaal/lib" CFLAGS="$CFLAGS -I$with_libaal/include" CPPFLAGS="-I$with_libaal/include" fi AC_ARG_WITH(uuid, [ --with-uuid support uuid generating and checking], , with_uuid=yes ) # Check for libuuid if test "$with_uuid" = yes; then OLD_LIBS="$LIBS" LIBS="" AC_CHECK_LIB(uuid, uuid_generate, , AC_MSG_WARN(libuuid could not be found which is required \ for the --with-uuid ) with_uuid=no ) UUID_LIBS="$LIBS" LIBS="$OLD_LIBS" fi AC_SUBST(UUID_LIBS) AC_ARG_WITH(readline, [ --with-readline support fancy command line editing], , with_readline=yes ) PROGS_LIBS="" # Check for readline if test "x$with_readline" = xyes; then OLD_LIBS="$LIBS" LIBS="" AC_CHECK_LIB(readline, readline, , AC_MSG_WARN(GNU Readline could not be found which is required \ for the --with-readline ) with_readline=no, -lncurses ) PROGS_LIBS="$PROGS_LIBS $LIBS" LIBS="$OLD_LIBS" fi # Check for ncurses if test "x$with_readline" = xyes; then OLD_LIBS="$LIBS" LIBS="" AC_SEARCH_LIBS(tgetent, ncurses, PROGS_LIBS="$PROGS_LIBS $LIBS", AC_MSG_WARN(ncurses could not be found which is required for the \ --with-readline option (which is enabled by default). ) with_readline=no ) LIBS="$OLD_LIBS" fi AM_ENABLE_SHARED PROGS_LDFLAGS="" AC_ARG_ENABLE(full-static, [ --enable-full-static build all static], , enable_full_static=no ) if test x$enable_full_static = xyes; then PROGS_LDFLAGS=-all-static fi AC_ARG_ENABLE(part-static, [ --enable-part-static build all static but libc ], , enable_part_static=no ) if test x$enable_part_static = xyes; then PROGS_LDFLAGS="-Wl,-lc,-static -static" fi AC_ARG_ENABLE(Werror, [ --enable-Werror enable build with gcc -Werror ], , enable_Werror=no ) AC_ARG_ENABLE(debug, [ --enable-debug enable asserts and debug information ], , enable_debug=no ) AC_ARG_ENABLE(libminimal, [ --disable-libminimal disable minimal footprint library ], , enable_libminimal=yes ) AC_ARG_ENABLE(symlinks, [ --disable-symlinks disable symlinks support in minimal library ], , enable_symlinks=yes ) AC_ARG_ENABLE(special, [ --disable-special disable special files support in minimal library ], , enable_special=yes ) AC_ARG_ENABLE(r5_hash, [ --disable-r5-hash disable r5 hash plugin in minimal library ], , enable_r5_hash=yes ) AC_ARG_ENABLE(fnv1_hash, [ --disable-fnv1-hash disable fnv1 hash plugin in minimal library ], , enable_fnv1_hash=yes ) AC_ARG_ENABLE(rupasov_hash, [ --disable-rupasov-hash disable rupasov hash plugin in minimal library ], , enable_rupasov_hash=yes ) AC_ARG_ENABLE(tea_hash, [ --disable-tea-hash disable tea hash plugin in minimal library ], , enable_tea_hash=yes ) AC_ARG_ENABLE(deg_hash, [ --enable-deg-hash enable degenerate hash plugin in minimal library ], , enable_deg_hash=no ) AC_ARG_ENABLE(short_keys, [ --disable-short-keys disable short keys in minimal library ], , enable_short_keys=yes ) AC_ARG_ENABLE(large_keys, [ --disable-large-keys disable large keys in minimal library ], , enable_large_keys=yes ) AC_ARG_ENABLE(dot_o_fibre, [ --disable-dot_o_fibre disable dot_o_fibre plugin in minimal library ], , enable_dot_o_fibre=yes ) AC_ARG_ENABLE(ext_1_fibre, [ --disable-ext_1_fibre disable ext_1_fibre plugin in minimal library ], , enable_ext_1_fibre=yes ) AC_ARG_ENABLE(ext_3_fibre, [ --disable-ext_3_fibre disable ext_3_fibre plugin in minimal library ], , enable_ext_3_fibre=yes ) AC_ARG_ENABLE(lexic_fibre, [ --disable-lexic_fibre disable lexic_fibre plugin in minimal library ], , enable_lexic_fibre=yes ) # Checks for programs. AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_RANLIB AC_PROG_AWK MINIMAL_CFLAGS="" GENERIC_CFLAGS="" # make libc threadsafe (not required for us for awhile, but useful other users of # libreiser4) GENERIC_CFLAGS="$GENERIC_CFLAGS -D_REENTRANT" AM_PROG_LIBTOOL if test "$with_uuid" = yes; then AC_CHECK_HEADERS(uuid/uuid.h, , AC_MSG_WARN(The headers for libuuid could not be found which \ are required for the --with-uuid option. ) ) fi if test "x$with_readline" = xyes; then AC_CHECK_HEADERS(readline/readline.h readline/history.h, , AC_MSG_WARN(The headers for GNU Readline could not be found which \ are required for the --with-readline option. ) ) fi # Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_CHECK_HEADERS([printf.h errno.h fcntl.h mntent.h stdint.h stdlib.h \ string.h sys/ioctl.h sys/mount.h sys/vfs.h unistd.h]) # Checks for typedefs, structures and compiler characteristics. AC_C_BIGENDIAN # Checks for library functions. if test "x$with_readline" = xyes; then OLD_LIBS="$LIBS" LIBS="$LIBS $PROGS_LIBS" AC_CHECK_FUNCS(rl_completion_matches) LIBS="$OLD_LIBS" fi # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T AC_CHECK_MEMBERS([struct stat.st_rdev]) # Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_FUNC_STAT AC_CHECK_FUNCS([register_printf_function statfs getmntent hasmntopt memset strerror \ strtol time uname sysconf]) # The options -falign-* are supported by gcc 3.0 or later. # Probably it is sufficient to only check for -falign-loops. AC_CACHE_CHECK([whether -falign-loops works], [falign_loop_flag], [ saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-falign-loops=1" AC_TRY_COMPILE(, , [falign_loop_flag=yes], [falign_loop_flag=no]) CPPFLAGS="$saved_CPPFLAGS" ]) # Checking for compiler warning options AC_CACHE_CHECK([whether -Wuninitialized works], [uninitialized], [ saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-O1 -Wuninitialized" AC_TRY_COMPILE(, , [uninitialized=yes], [uninitialized=no]) CPPFLAGS="$saved_CPPFLAGS" ]) AC_CACHE_CHECK([whether -Wno-unused-parameter works], [no_unused_parameter], [ saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-Wno-unused-parameter" AC_TRY_COMPILE(, , [no_unused_parameter=yes], [no_unused_parameter=no]) CPPFLAGS="$saved_CPPFLAGS" ]) AC_CACHE_CHECK([whether -Wredundant-decls works], [redundant_decls], [ saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-Wredundant-decls" AC_TRY_COMPILE(, , [redundant_decls=yes], [redundant_decls=no]) CPPFLAGS="$saved_CPPFLAGS" ]) if test "x$with_readline" = xyes && test "x$redundant_decls" == xyes; then saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-Werror -Wredundant-decls" AC_MSG_CHECKING(whether -Wredundant-decls works with readline.h) AC_TRY_COMPILE([ #include #include ], ,[ redundant_decls=yes; AC_MSG_RESULT(yes) ], [ redundant_decls=no; AC_MSG_RESULT(no) ]) CPPFLAGS="$saved_CPPFLAGS" fi # Force no alignment to save space. if test "x$falign_loop_flag" = xyes; then ALIGN_FLAGS="-falign-jumps=1 -falign-loops=1 -falign-functions=1 \ -falign-labels=1 -fno-inline -fstrength-reduce" else ALIGN_FLAGS="-malign-jumps=1 -malign-loops=1 -malign-functions=1" fi # Check for large file AC_SYS_LARGEFILE if test x${ac_cv_sys_file_offset_bits} = xno; then AC_MSG_WARN(Can't detect right _FILE_OFFSET_BITS. Will be forced to 64bit.) ac_cv_sys_file_offset_bits=64 fi GENERIC_CFLAGS="$GENERIC_CFLAGS -D_FILE_OFFSET_BITS=${ac_cv_sys_file_offset_bits}" AC_CHECK_SIZEOF(off_t, 64, [ #include #include #include ]) OLD_LIBS="$LIBS" AC_CHECK_LIBAAL(aal, 1.0.5, ,exit) AAL_LIBS="$LIBS" LIBS="$OLD_LIBS" AC_SUBST(AAL_LIBS) if test x$enable_libminimal = xyes; then OLD_LIBS="$LIBS" AC_CHECK_LIBAAL(aal-minimal, 1.0.5, ,exit) AAL_MINIMAL_LIBS="$LIBS" LIBS="$OLD_LIBS" AC_SUBST(AAL_MINIMAL_LIBS) if test x$enable_symlinks = xyes; then SYMLINKS_CFLAGS="-DENABLE_SYMLINKS" fi if test x$enable_special = xyes; then SPECIAL_CFLAGS="-DENABLE_SPECIAL" fi if test x$enable_r5_hash = xyes; then R5_HASH_CFLAGS="-DENABLE_R5_HASH" fi if test x$enable_fnv1_hash = xyes; then FNV1_HASH_CFLAGS="-DENABLE_FNV1_HASH" fi if test x$enable_rupasov_hash = xyes; then RUPASOV_HASH_CFLAGS="-DENABLE_RUPASOV_HASH" fi if test x$enable_tea_hash = xyes; then TEA_HASH_CFLAGS="-DENABLE_TEA_HASH" fi if test x$enable_deg_hash = xyes; then DEG_HASH_CFLAGS="-DENABLE_DEG_HASH" fi if test x$enable_short_keys = xyes; then SHORT_KEYS_CFLAGS="-DENABLE_SHORT_KEYS" fi if test x$enable_large_keys = xyes; then LARGE_KEYS_CFLAGS="-DENABLE_LARGE_KEYS" fi if test x$enable_large_keys != xyes -a x$enable_short_keys != xyes; then echo echo Both LARGE and SHORT keys cannot be disabled at the same time. exit 1; fi if test x$enable_dot_o_fibre = xyes; then FIBRE_FLAGS="$FIBRE_FLAGS -DENABLE_DOT_O_FIBRE" fi if test x$enable_ext_1_fibre = xyes; then FIBRE_FLAGS="$FIBRE_FLAGS -DENABLE_EXT_1_FIBRE" fi if test x$enable_ext_3_fibre = xyes; then FIBRE_FLAGS="$FIBRE_FLAGS -DENABLE_EXT_3_FIBRE" fi if test x$enable_lexic_fibre = xyes; then FIBRE_FLAGS="$FIBRE_FLAGS -DENABLE_LEXIC_FIBRE" fi # if test x$enable_dot_o_fibre != xyes -a x$enable_ext_1_fibre != xyes -a \ # x$enable_ext_3_fibre != xyes -a x$enable_lexic_fibre; then # echo # echo All fibre plugins cannot be disabled at the same time. # exit 1; # fi MINIMAL_CFLAGS="$MINIMAL_CFLAGS -DENABLE_MINIMAL $SYMLINKS_CFLAGS $SPECIAL_CFLAGS \ $R5_HASH_CFLAGS $FNV1_HASH_CFLAGS $RUPASOV_HASH_CFLAGS $TEA_HASH_CFLAGS $DEG_HASH_CFLAGS \ $ALIGN_FLAGS $LARGE_KEYS_CFLAGS $SHORT_KEYS_CFLAGS $FIBRE_FLAGS" fi GENERIC_CFLAGS="$GENERIC_CFLAGS -DENABLE_SYMLINKS -DENABLE_SPECIAL -DENABLE_R5_HASH \ -DENABLE_FNV1_HASH -DENABLE_RUPASOV_HASH -DENABLE_TEA_HASH -DENABLE_DEG_HASH \ -DENABLE_LARGE_KEYS -DENABLE_SHORT_KEYS -DENABLE_DOT_O_FIBRE -DENABLE_EXT_1_FIBRE \ -DENABLE_EXT_3_FIBRE -DENABLE_LEXIC_FIBRE" CFLAGS="$CFLAGS -W -Wall" if test x$enable_debug = xyes; then GENERIC_CFLAGS="$GENERIC_CFLAGS -O1 -g" MINIMAL_CFLAGS="$MINIMAL_CFLAGS -O1 -g" else GENERIC_CFLAGS="$GENERIC_CFLAGS -O3" MINIMAL_CFLAGS="$MINIMAL_CFLAGS -Os" if test x$uninitialized = xyes; then CFLAGS="$CFLAGS -Wuninitialized" fi fi if test x$no_unused_parameter = xyes; then CFLAGS="$CFLAGS -Wno-unused-parameter" else CFLAGS="$CFLAGS -Wno-unused" fi if test x$redundant_decls = xyes; then CFLAGS="$CFLAGS -Wredundant-decls" fi if test x$enable_Werror = xyes; then CFLAGS="$CFLAGS -Werror" fi AM_CONDITIONAL(ENABLE_MINIMAL, test x$enable_libminimal = xyes) if test x$enable_debug = xyes; then AC_DEFINE(ENABLE_DEBUG) fi AC_SUBST(PROGS_LIBS) AC_SUBST(MINIMAL_CFLAGS) AC_SUBST(GENERIC_CFLAGS) AC_SUBST(PROGS_LDFLAGS) AC_OUTPUT([ Makefile include/Makefile include/aux/Makefile include/misc/Makefile include/reiser4/Makefile include/repair/Makefile libmisc/Makefile libaux/Makefile libreiser4/Makefile librepair/Makefile plugin/Makefile plugin/format/Makefile plugin/format/format40/Makefile plugin/alloc/Makefile plugin/alloc/alloc40/Makefile plugin/journal/Makefile plugin/journal/journal40/Makefile plugin/oid/Makefile plugin/oid/oid40/Makefile plugin/node/Makefile plugin/node/node40/Makefile plugin/key/Makefile plugin/key/key_common/Makefile plugin/key/key_short/Makefile plugin/key/key_large/Makefile plugin/item/Makefile plugin/item/body40/Makefile plugin/item/nodeptr40/Makefile plugin/item/stat40/Makefile plugin/item/cde40/Makefile plugin/item/tail40/Makefile plugin/item/plain40/Makefile plugin/item/ctail40/Makefile plugin/item/extent40/Makefile plugin/item/bbox40/Makefile plugin/object/Makefile plugin/object/obj40/Makefile plugin/object/dir40/Makefile plugin/object/reg40/Makefile plugin/object/sym40/Makefile plugin/object/spl40/Makefile plugin/object/ccreg40/Makefile plugin/policy/Makefile plugin/policy/tails/Makefile plugin/policy/extents/Makefile plugin/policy/smart/Makefile plugin/hash/Makefile plugin/hash/r5_hash/Makefile plugin/hash/tea_hash/Makefile plugin/hash/deg_hash/Makefile plugin/hash/rupasov_hash/Makefile plugin/hash/fnv1_hash/Makefile plugin/fibre/Makefile plugin/fibre/lexic_fibre/Makefile plugin/fibre/dot_o_fibre/Makefile plugin/fibre/ext_1_fibre/Makefile plugin/fibre/ext_3_fibre/Makefile plugin/sdext/Makefile plugin/sdext/sdext_unix/Makefile plugin/sdext/sdext_lw/Makefile plugin/sdext/sdext_lt/Makefile plugin/sdext/sdext_symlink/Makefile plugin/sdext/sdext_flags/Makefile plugin/sdext/sdext_plug/Makefile plugin/sdext/sdext_crypto/Makefile plugin/compress/Makefile progs/Makefile progs/mkfs/Makefile progs/fsck/Makefile progs/debugfs/Makefile progs/measurefs/Makefile demos/Makefile doc/Makefile reiser4progs.spec ]) echo echo Type \'make\' to compile reiser4progs and \'make install\' to install it. reiser4progs-1.0.7.orig/run-ldconfig0000755000175000017500000000074211131470543015245 0ustar fzfz#!/bin/bash ldc=""; if [ -x /sbin/ldconfig ]; then ldc="/sbin/ldconfig"; fi if test x$ldc = x; then which ldconfig 2>&1>/dev/null; if test $? -eq 0; then ldc=`which ldconfig`; fi fi if test x$ldc = x; then echo ; echo "ldconfig is not available"; echo "do not forget to run ldconfig manually"; echo ; exit 1; fi cp /etc/ld.so.conf /tmp/ld.$$.so.conf; echo $1 >> /tmp/ld.$$.so.conf; echo ; echo Running $ldc; $ldc -f /tmp/ld.$$.so.conf; echo ; rm /tmp/ld.$$.so.conf; reiser4progs-1.0.7.orig/libreiser4.m40000644000175000017500000000525711131470543015244 0ustar fzfz# This file is a part of reiser4progs package # Copyright (C) 2001, 2002, 2003 by Hans Reiser, licensing governed by # reiser4progs/COPYING. dnl Usage: dnl AC_CHECK_LIBREISER4([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl dnl Example: dnl AC_CHECK_LIBREISER4(0.3.0, , [AC_MSG_ERROR([libreiser4 >= 0.3.0 not installed - please install first])]) dnl dnl Adds the required libraries to $REISER4_LIBS and does an dnl AC_SUBST(REISER4_LIBS) AC_DEFUN([AC_CHECK_LIBREISER4], [ dnl save LIBS saved_LIBS="$LIBS" dnl Check for headers and library AC_CHECK_HEADER(reiser4/libreiser4.h, , [AC_MSG_ERROR([ not found; install reiser4progs])] $3) AC_CHECK_LIB(reiser4, reiser4_fs_open, , [AC_MSG_ERROR([libreiser4 not found; install reiser4progs available at \ http://www.namesys.com/snapshots])] $3) AC_MSG_CHECKING(for libreiser4 version >= $1) AC_TRY_LINK_FUNC(libreiser4_version,, AC_MSG_RESULT(failed) AC_MSG_ERROR([libreiser4 can't execute test])) dnl Get major, minor, and micro version from arg MINIMUM-VERSION libreiser4_config_major_version=`echo $1 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` libreiser4_config_minor_version=`echo $1 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` libreiser4_config_micro_version=`echo $1 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` dnl Compare MINIMUM-VERSION with libreiser4 version AC_TRY_RUN([ #include #include #include int main() { int major, minor, micro; const char *version; if ( !(version = libreiser4_version()) ) exit(1); if (sscanf(version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", version); exit(1); } if ((major >= $libreiser4_config_major_version) && ((major == $libreiser4_config_major_version) && (minor >= $libreiser4_config_minor_version)) && ((major == $libreiser4_config_major_version) && (minor == $libreiser4_config_minor_version) && (micro >= $libreiser4_config_micro_version))) { return 0; } else { printf("\nAn old version of libreiser4 (%s) was found.\n", version); printf("You need a version of libreiser4 newer than or " "equal to %d.%d.%d.\n", $libreiser4_config_major_version, $libreiser4_config_minor_version, $libreiser4_config_micro_version); printf("You can get it at http://www.namesys.com/snapshots\n"); return 1; } } ], AC_MSG_RESULT(yes), AC_MSG_RESULT(no) ; $3, [echo $ac_n "cross compiling; assumed OK... $ac_c"]) dnl restore orignial LIBS and set @REISER4_LIBS@ REISER4_LIBS="$LIBS" LIBS="$saved_LIBS" AC_SUBST(REISER4_LIBS) dnl Execute ACTION-IF-FOUND $2 ]) reiser4progs-1.0.7.orig/config.sub0000755000175000017500000007470711131470543014727 0ustar fzfz#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. timestamp='2004-06-24' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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 of the License, 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; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | msp430 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: reiser4progs-1.0.7.orig/config.guess0000755000175000017500000012516011131470543015252 0ustar fzfz#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. timestamp='2004-08-11' # This file 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 of the License, 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; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_MACHINE}" in i?86) test -z "$VENDOR" && VENDOR=pc ;; *) test -z "$VENDOR" && VENDOR=unknown ;; esac test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; amd64:OpenBSD:*:*) echo x86_64-unknown-openbsd${UNAME_RELEASE} exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; cats:OpenBSD:*:*) echo arm-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; luna88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mipseb-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit 0 ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit 0 ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; *:OS400:*:*) echo powerpc-ibm-os400 exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then # avoid double evaluation of $set_cc_for_build test -n "$CC_FOR_BUILD" || eval $set_cc_for_build if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; cris:Linux:*:*) echo cris-axis-linux exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-${VENDOR}-linux" && exit 0 ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-${VENDOR}-linux" && exit 0 ;; ppc:Linux:*:*) echo powerpc-${VENDOR}-linux exit 0 ;; ppc64:Linux:*:*) echo powerpc64-${VENDOR}-linux exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="-libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-${VENDOR}-linux${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-${VENDOR}-linux ;; PA8*) echo hppa2.0-${VENDOR}-linux ;; *) echo hppa-${VENDOR}-linux ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-${VENDOR}-linux exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; x86_64:Linux:*:*) echo x86_64-${VENDOR}-linux exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-${VENDOR}-linuxaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-${VENDOR}-linuxcoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linuxoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-${VENDOR}-linuxoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}" | sed 's/linux-gnu/linux/' && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit 0 ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms && exit 0 ;; I*) echo ia64-dec-vms && exit 0 ;; V*) echo vax-dec-vms && exit 0 ;; esac esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: reiser4progs-1.0.7.orig/plugin/0000777000175000017500000000000011134133447014231 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/0000777000175000017500000000000011134133446015357 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/sdext_unix/0000777000175000017500000000000011134133446017551 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/sdext_unix/Makefile.in0000644000175000017500000004761411134132301021613 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/sdext/sdext_unix DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsdext_unix_minimal_la_LIBADD = am__libsdext_unix_minimal_la_SOURCES_DIST = sdext_unix.c \ sdext_unix_repair.c sdext_unix.h am__objects_1 = libsdext_unix_minimal_la-sdext_unix.lo \ libsdext_unix_minimal_la-sdext_unix_repair.lo @ENABLE_MINIMAL_TRUE@am_libsdext_unix_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libsdext_unix_minimal_la_OBJECTS = \ $(am_libsdext_unix_minimal_la_OBJECTS) libsdext_unix_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_unix_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsdext_unix_minimal_la_rpath = libsdext_unix_static_la_LIBADD = am__objects_2 = libsdext_unix_static_la-sdext_unix.lo \ libsdext_unix_static_la-sdext_unix_repair.lo am_libsdext_unix_static_la_OBJECTS = $(am__objects_2) libsdext_unix_static_la_OBJECTS = \ $(am_libsdext_unix_static_la_OBJECTS) libsdext_unix_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_unix_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsdext_unix_minimal_la_SOURCES) \ $(libsdext_unix_static_la_SOURCES) DIST_SOURCES = $(am__libsdext_unix_minimal_la_SOURCES_DIST) \ $(libsdext_unix_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sdext_unix_sources = sdext_unix.c sdext_unix_repair.c sdext_unix.h STATIC_LIBS = libsdext_unix-static.la libsdext_unix_static_la_SOURCES = $(sdext_unix_sources) libsdext_unix_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsdext_unix-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsdext_unix_minimal_la_SOURCES = $(sdext_unix_sources) @ENABLE_MINIMAL_TRUE@libsdext_unix_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/sdext/sdext_unix/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/sdext/sdext_unix/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsdext_unix-minimal.la: $(libsdext_unix_minimal_la_OBJECTS) $(libsdext_unix_minimal_la_DEPENDENCIES) $(libsdext_unix_minimal_la_LINK) $(am_libsdext_unix_minimal_la_rpath) $(libsdext_unix_minimal_la_OBJECTS) $(libsdext_unix_minimal_la_LIBADD) $(LIBS) libsdext_unix-static.la: $(libsdext_unix_static_la_OBJECTS) $(libsdext_unix_static_la_DEPENDENCIES) $(libsdext_unix_static_la_LINK) $(libsdext_unix_static_la_OBJECTS) $(libsdext_unix_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_unix_minimal_la-sdext_unix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_unix_minimal_la-sdext_unix_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_unix_static_la-sdext_unix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_unix_static_la-sdext_unix_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsdext_unix_minimal_la-sdext_unix.lo: sdext_unix.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_unix_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_unix_minimal_la-sdext_unix.lo -MD -MP -MF $(DEPDIR)/libsdext_unix_minimal_la-sdext_unix.Tpo -c -o libsdext_unix_minimal_la-sdext_unix.lo `test -f 'sdext_unix.c' || echo '$(srcdir)/'`sdext_unix.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_unix_minimal_la-sdext_unix.Tpo $(DEPDIR)/libsdext_unix_minimal_la-sdext_unix.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_unix.c' object='libsdext_unix_minimal_la-sdext_unix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_unix_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_unix_minimal_la-sdext_unix.lo `test -f 'sdext_unix.c' || echo '$(srcdir)/'`sdext_unix.c libsdext_unix_minimal_la-sdext_unix_repair.lo: sdext_unix_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_unix_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_unix_minimal_la-sdext_unix_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_unix_minimal_la-sdext_unix_repair.Tpo -c -o libsdext_unix_minimal_la-sdext_unix_repair.lo `test -f 'sdext_unix_repair.c' || echo '$(srcdir)/'`sdext_unix_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_unix_minimal_la-sdext_unix_repair.Tpo $(DEPDIR)/libsdext_unix_minimal_la-sdext_unix_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_unix_repair.c' object='libsdext_unix_minimal_la-sdext_unix_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_unix_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_unix_minimal_la-sdext_unix_repair.lo `test -f 'sdext_unix_repair.c' || echo '$(srcdir)/'`sdext_unix_repair.c libsdext_unix_static_la-sdext_unix.lo: sdext_unix.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_unix_static_la_CFLAGS) $(CFLAGS) -MT libsdext_unix_static_la-sdext_unix.lo -MD -MP -MF $(DEPDIR)/libsdext_unix_static_la-sdext_unix.Tpo -c -o libsdext_unix_static_la-sdext_unix.lo `test -f 'sdext_unix.c' || echo '$(srcdir)/'`sdext_unix.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_unix_static_la-sdext_unix.Tpo $(DEPDIR)/libsdext_unix_static_la-sdext_unix.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_unix.c' object='libsdext_unix_static_la-sdext_unix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_unix_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_unix_static_la-sdext_unix.lo `test -f 'sdext_unix.c' || echo '$(srcdir)/'`sdext_unix.c libsdext_unix_static_la-sdext_unix_repair.lo: sdext_unix_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_unix_static_la_CFLAGS) $(CFLAGS) -MT libsdext_unix_static_la-sdext_unix_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_unix_static_la-sdext_unix_repair.Tpo -c -o libsdext_unix_static_la-sdext_unix_repair.lo `test -f 'sdext_unix_repair.c' || echo '$(srcdir)/'`sdext_unix_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_unix_static_la-sdext_unix_repair.Tpo $(DEPDIR)/libsdext_unix_static_la-sdext_unix_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_unix_repair.c' object='libsdext_unix_static_la-sdext_unix_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_unix_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_unix_static_la-sdext_unix_repair.lo `test -f 'sdext_unix_repair.c' || echo '$(srcdir)/'`sdext_unix_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/sdext/sdext_unix/sdext_unix.c0000644000175000017500000000453411131470543022110 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_unix.c -- stat data exception plugin, that implements unix stat data fields. */ #include "sdext_unix.h" #include "sys/stat.h" reiser4_core_t *sdext_unix_core = NULL; static uint32_t sdext_unix_length(stat_entity_t *stat, void *hint) { return sizeof(sdext_unix_t); } #ifndef ENABLE_MINIMAL static errno_t sdext_unix_open(stat_entity_t *stat, void *hint) { sdext_unix_t *ext; sdhint_unix_t *unixh; aal_assert("umka-886", stat != NULL); aal_assert("umka-887", hint != NULL); ext = (sdext_unix_t *)stat_body(stat); unixh = (sdhint_unix_t *)hint; unixh->uid = sdext_unix_get_uid(ext); unixh->gid = sdext_unix_get_gid(ext); unixh->atime = sdext_unix_get_atime(ext); unixh->mtime = sdext_unix_get_mtime(ext); unixh->ctime = sdext_unix_get_ctime(ext); if (S_ISBLK(stat->info.mode) || S_ISCHR(stat->info.mode)) { unixh->rdev = sdext_unix_get_rdev(ext); unixh->bytes = 0; } else { unixh->rdev = 0; unixh->bytes = sdext_unix_get_rdev(ext); } return 0; } static errno_t sdext_unix_init(stat_entity_t *stat, void *hint) { sdext_unix_t *ext; sdhint_unix_t *unixh; aal_assert("umka-884", stat != NULL); aal_assert("umka-885", hint != NULL); ext = (sdext_unix_t *)stat_body(stat); unixh = (sdhint_unix_t *)hint; sdext_unix_set_uid(ext, unixh->uid); sdext_unix_set_gid(ext, unixh->gid); sdext_unix_set_atime(ext, unixh->atime); sdext_unix_set_mtime(ext, unixh->mtime); sdext_unix_set_ctime(ext, unixh->ctime); if (S_ISBLK(stat->info.mode) || S_ISCHR(stat->info.mode)) { sdext_unix_set_rdev(ext, unixh->rdev); } else { sdext_unix_set_bytes(ext, unixh->bytes); } return 0; } extern errno_t sdext_unix_check_struct(stat_entity_t *stat, repair_hint_t *hint); extern void sdext_unix_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options); #endif reiser4_sdext_plug_t sdext_unix_plug = { .p = { .id = {SDEXT_UNIX_ID, 0, SDEXT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "sdext_unix", .desc = "Unix stat data extension plugin.", #endif }, #ifndef ENABLE_MINIMAL .open = sdext_unix_open, .init = sdext_unix_init, .print = sdext_unix_print, .check_struct = sdext_unix_check_struct, #else .open = NULL, #endif .info = NULL, .length = sdext_unix_length }; reiser4progs-1.0.7.orig/plugin/sdext/sdext_unix/sdext_unix.h0000644000175000017500000000257411131470543022117 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_unix.h -- stat data extention plugin, that implements unix stat data fields. */ #ifndef SDEXT_UNIX_H #define SDEXT_UNIX_H #include #include typedef struct sdext_unix { d32_t uid; d32_t gid; d32_t atime; d32_t mtime; d32_t ctime; union { d64_t rdev; d64_t bytes; } u; } __attribute__((packed)) sdext_unix_t; extern reiser4_core_t *sdext_unix_core; #define sdext_unix_get_uid(ext) aal_get_le32(ext, uid) #define sdext_unix_set_uid(ext, val) aal_set_le32(ext, uid, val) #define sdext_unix_get_gid(ext) aal_get_le32(ext, gid) #define sdext_unix_set_gid(ext, val) aal_set_le32(ext, gid, val) #define sdext_unix_get_atime(ext) aal_get_le32(ext, atime) #define sdext_unix_set_atime(ext, val) aal_set_le32(ext, atime, val) #define sdext_unix_get_mtime(ext) aal_get_le32(ext, mtime) #define sdext_unix_set_mtime(ext, val) aal_set_le32(ext, mtime, val) #define sdext_unix_get_ctime(ext) aal_get_le32(ext, ctime) #define sdext_unix_set_ctime(ext, val) aal_set_le32(ext, ctime, val) #define sdext_unix_get_rdev(ext) aal_get_le64(ext, u.rdev) #define sdext_unix_set_rdev(ext, val) aal_set_le64(ext, u.rdev, val) #define sdext_unix_get_bytes(ext) aal_get_le64(ext, u.bytes) #define sdext_unix_set_bytes(ext, val) aal_set_le64(ext, u.bytes, val) #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_unix/Makefile.am0000644000175000017500000000116611131470543021604 0ustar fzfzincludedir = -I$(top_srcdir)/include sdext_unix_sources = sdext_unix.c sdext_unix_repair.c sdext_unix.h STATIC_LIBS = libsdext_unix-static.la libsdext_unix_static_la_SOURCES = $(sdext_unix_sources) libsdext_unix_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsdext_unix-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsdext_unix_minimal_la_SOURCES = $(sdext_unix_sources) libsdext_unix_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/sdext/sdext_unix/sdext_unix_repair.c0000644000175000017500000000340011131470543023441 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_unix.c -- stat data exception plugin, that implements unix stat data fields. */ #ifndef ENABLE_MINIMAL #include #include #include "sdext_unix.h" #include errno_t sdext_unix_check_struct(stat_entity_t *stat, repair_hint_t *hint) { aal_assert("vpf-778", stat != NULL); aal_assert("vpf-781", stat->plug != NULL); if (stat->offset + sizeof(sdext_unix_t) > stat->place->len) { fsck_mess("Node (%llu), item (%u), [%s]: does not look " "like a valid (%s) statdata extension.", place_blknr(stat->place), stat->place->pos.item, print_key(sdext_unix_core, &stat->place->key), stat->plug->p.label); return RE_FATAL; } return 0; } void sdext_unix_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options) { sdext_unix_t *ext; time_t atm, mtm, ctm; char uid[255], gid[255]; aal_assert("umka-1412", stat != NULL); aal_assert("umka-1413", stream != NULL); ext = (sdext_unix_t *)stat_body(stat); aal_memset(uid, 0, sizeof(uid)); aal_memset(gid, 0, sizeof(gid)); aal_stream_format(stream, "uid:\t\t%u\n", sdext_unix_get_uid(ext)); aal_stream_format(stream, "gid:\t\t%u\n", sdext_unix_get_gid(ext)); atm = sdext_unix_get_atime(ext); mtm = sdext_unix_get_mtime(ext); ctm = sdext_unix_get_ctime(ext); aal_stream_format(stream, "atime:\t\t%s", ctime(&atm)); aal_stream_format(stream, "mtime:\t\t%s", ctime(&mtm)); aal_stream_format(stream, "ctime:\t\t%s", ctime(&ctm)); aal_stream_format(stream, "rdev:\t\t%llu\n", sdext_unix_get_rdev(ext)); aal_stream_format(stream, "bytes:\t\t%llu\n", sdext_unix_get_bytes(ext)); } #endif reiser4progs-1.0.7.orig/plugin/sdext/Makefile.in0000644000175000017500000003444211134132300017413 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/sdext DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = sdext_lt sdext_lw sdext_unix sdext_symlink sdext_flags sdext_plug sdext_crypto all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/sdext/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/sdext/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/sdext/sdext_symlink/0000777000175000017500000000000011134133446020254 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/sdext_symlink/Makefile.in0000644000175000017500000005051711134132300022311 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/sdext/sdext_symlink DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsdext_symlink_minimal_la_LIBADD = am__libsdext_symlink_minimal_la_SOURCES_DIST = sdext_symlink.c \ sdext_symlink_repair.c am__objects_1 = libsdext_symlink_minimal_la-sdext_symlink.lo \ libsdext_symlink_minimal_la-sdext_symlink_repair.lo @ENABLE_MINIMAL_TRUE@am_libsdext_symlink_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libsdext_symlink_minimal_la_OBJECTS = \ $(am_libsdext_symlink_minimal_la_OBJECTS) libsdext_symlink_minimal_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_symlink_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsdext_symlink_minimal_la_rpath = libsdext_symlink_static_la_LIBADD = am__objects_2 = libsdext_symlink_static_la-sdext_symlink.lo \ libsdext_symlink_static_la-sdext_symlink_repair.lo am_libsdext_symlink_static_la_OBJECTS = $(am__objects_2) libsdext_symlink_static_la_OBJECTS = \ $(am_libsdext_symlink_static_la_OBJECTS) libsdext_symlink_static_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_symlink_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsdext_symlink_minimal_la_SOURCES) \ $(libsdext_symlink_static_la_SOURCES) DIST_SOURCES = $(am__libsdext_symlink_minimal_la_SOURCES_DIST) \ $(libsdext_symlink_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sdext_symlink_sources = sdext_symlink.c sdext_symlink_repair.c STATIC_LIBS = libsdext_symlink-static.la libsdext_symlink_static_la_SOURCES = $(sdext_symlink_sources) libsdext_symlink_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsdext_symlink-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsdext_symlink_minimal_la_SOURCES = $(sdext_symlink_sources) @ENABLE_MINIMAL_TRUE@libsdext_symlink_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/sdext/sdext_symlink/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/sdext/sdext_symlink/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsdext_symlink-minimal.la: $(libsdext_symlink_minimal_la_OBJECTS) $(libsdext_symlink_minimal_la_DEPENDENCIES) $(libsdext_symlink_minimal_la_LINK) $(am_libsdext_symlink_minimal_la_rpath) $(libsdext_symlink_minimal_la_OBJECTS) $(libsdext_symlink_minimal_la_LIBADD) $(LIBS) libsdext_symlink-static.la: $(libsdext_symlink_static_la_OBJECTS) $(libsdext_symlink_static_la_DEPENDENCIES) $(libsdext_symlink_static_la_LINK) $(libsdext_symlink_static_la_OBJECTS) $(libsdext_symlink_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_symlink_minimal_la-sdext_symlink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_symlink_minimal_la-sdext_symlink_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_symlink_static_la-sdext_symlink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_symlink_static_la-sdext_symlink_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsdext_symlink_minimal_la-sdext_symlink.lo: sdext_symlink.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_symlink_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_symlink_minimal_la-sdext_symlink.lo -MD -MP -MF $(DEPDIR)/libsdext_symlink_minimal_la-sdext_symlink.Tpo -c -o libsdext_symlink_minimal_la-sdext_symlink.lo `test -f 'sdext_symlink.c' || echo '$(srcdir)/'`sdext_symlink.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_symlink_minimal_la-sdext_symlink.Tpo $(DEPDIR)/libsdext_symlink_minimal_la-sdext_symlink.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_symlink.c' object='libsdext_symlink_minimal_la-sdext_symlink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_symlink_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_symlink_minimal_la-sdext_symlink.lo `test -f 'sdext_symlink.c' || echo '$(srcdir)/'`sdext_symlink.c libsdext_symlink_minimal_la-sdext_symlink_repair.lo: sdext_symlink_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_symlink_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_symlink_minimal_la-sdext_symlink_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_symlink_minimal_la-sdext_symlink_repair.Tpo -c -o libsdext_symlink_minimal_la-sdext_symlink_repair.lo `test -f 'sdext_symlink_repair.c' || echo '$(srcdir)/'`sdext_symlink_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_symlink_minimal_la-sdext_symlink_repair.Tpo $(DEPDIR)/libsdext_symlink_minimal_la-sdext_symlink_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_symlink_repair.c' object='libsdext_symlink_minimal_la-sdext_symlink_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_symlink_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_symlink_minimal_la-sdext_symlink_repair.lo `test -f 'sdext_symlink_repair.c' || echo '$(srcdir)/'`sdext_symlink_repair.c libsdext_symlink_static_la-sdext_symlink.lo: sdext_symlink.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_symlink_static_la_CFLAGS) $(CFLAGS) -MT libsdext_symlink_static_la-sdext_symlink.lo -MD -MP -MF $(DEPDIR)/libsdext_symlink_static_la-sdext_symlink.Tpo -c -o libsdext_symlink_static_la-sdext_symlink.lo `test -f 'sdext_symlink.c' || echo '$(srcdir)/'`sdext_symlink.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_symlink_static_la-sdext_symlink.Tpo $(DEPDIR)/libsdext_symlink_static_la-sdext_symlink.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_symlink.c' object='libsdext_symlink_static_la-sdext_symlink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_symlink_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_symlink_static_la-sdext_symlink.lo `test -f 'sdext_symlink.c' || echo '$(srcdir)/'`sdext_symlink.c libsdext_symlink_static_la-sdext_symlink_repair.lo: sdext_symlink_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_symlink_static_la_CFLAGS) $(CFLAGS) -MT libsdext_symlink_static_la-sdext_symlink_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_symlink_static_la-sdext_symlink_repair.Tpo -c -o libsdext_symlink_static_la-sdext_symlink_repair.lo `test -f 'sdext_symlink_repair.c' || echo '$(srcdir)/'`sdext_symlink_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_symlink_static_la-sdext_symlink_repair.Tpo $(DEPDIR)/libsdext_symlink_static_la-sdext_symlink_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_symlink_repair.c' object='libsdext_symlink_static_la-sdext_symlink_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_symlink_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_symlink_static_la-sdext_symlink_repair.lo `test -f 'sdext_symlink_repair.c' || echo '$(srcdir)/'`sdext_symlink_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/sdext/sdext_symlink/sdext_symlink_repair.c0000644000175000017500000000236011131470543024653 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_symlink.c -- symlink stat data extension plugin. */ #include #include #ifndef ENABLE_MINIMAL #ifdef ENABLE_SYMLINKS extern reiser4_core_t *sdext_symlink_core; errno_t sdext_symlink_check_struct(stat_entity_t *stat, repair_hint_t *hint) { uint32_t offset; aal_assert("vpf-779", stat != NULL); aal_assert("vpf-780", stat->plug != NULL); offset = stat->offset; while (*((char *)(stat->place->body) + offset)) { offset++; } if (offset >= stat->place->len) { fsck_mess("Node (%llu), item (%u), [%s]: does not look " "like a valid (%s) statdata extension.", place_blknr(stat->place), stat->place->pos.item, print_key(sdext_symlink_core, &stat->place->key), stat->plug->p.label); return RE_FATAL; } return 0; } void sdext_symlink_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options) { aal_assert("umka-1485", stat != NULL); aal_assert("umka-1486", stream != NULL); aal_stream_format(stream, "len:\t\t%u\n", aal_strlen((char *)stat_body(stat))); aal_stream_format(stream, "data:\t\t\"%s\"\n", (char *)stat_body(stat)); } #endif #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_symlink/sdext_symlink.c0000644000175000017500000000336011131470543023312 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_symlink.c -- symlink stat data extension plugin. */ #include #ifdef ENABLE_SYMLINKS reiser4_core_t *sdext_symlink_core = NULL; static uint32_t sdext_symlink_length(stat_entity_t *stat, void *hint) { char *name; aal_assert("vpf-1843", stat != NULL || hint != NULL); name = (hint != NULL) ? hint : stat_body(stat); return aal_strlen(name) + 1; } static errno_t sdext_symlink_open(stat_entity_t *stat, void *hint) { char *data; uint32_t len; aal_assert("umka-1483", stat != NULL); aal_assert("umka-1484", hint != NULL); data = (char *)stat_body(stat); len = aal_strlen(data); aal_memcpy(hint, data, len); *((char *)hint + len) = '\0'; return 0; } #ifndef ENABLE_MINIMAL static errno_t sdext_symlink_init(stat_entity_t *stat, void *hint) { uint32_t len; aal_assert("umka-1481", stat != NULL); aal_assert("umka-1482", hint != NULL); len = aal_strlen((char *)hint); aal_memcpy(stat_body(stat), hint, len); *((char *)stat_body(stat) + len) = '\0'; return 0; } extern errno_t sdext_symlink_check_struct(stat_entity_t *stat, repair_hint_t *hint); extern void sdext_symlink_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options); #endif reiser4_sdext_plug_t sdext_symlink_plug = { .p = { .id = {SDEXT_SYMLINK_ID, 0, SDEXT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "sdext_symlink", .desc = "Symlink stat data extension plugin.", #endif }, #ifndef ENABLE_MINIMAL .init = sdext_symlink_init, .print = sdext_symlink_print, .check_struct = sdext_symlink_check_struct, #endif .open = sdext_symlink_open, .info = NULL, .length = sdext_symlink_length }; #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_symlink/Makefile.am0000644000175000017500000000123211131470543022301 0ustar fzfzincludedir = -I$(top_srcdir)/include sdext_symlink_sources = sdext_symlink.c sdext_symlink_repair.c STATIC_LIBS = libsdext_symlink-static.la libsdext_symlink_static_la_SOURCES = $(sdext_symlink_sources) libsdext_symlink_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsdext_symlink-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsdext_symlink_minimal_la_SOURCES = $(sdext_symlink_sources) libsdext_symlink_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/sdext/sdext_flags/0000777000175000017500000000000011134133446017662 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/sdext_flags/sdext_flags_repair.c0000644000175000017500000000256011131470543023671 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_flags_repair.c -- inode flags stat data extension plugin recovery code. */ #ifndef ENABLE_MINIMAL #include "sdext_flags.h" #include #include "sdext_flags.h" errno_t sdext_flags_check_struct(stat_entity_t *stat, repair_hint_t *hint) { aal_assert("umka-3081", stat != NULL); aal_assert("umka-3082", stat->plug != NULL); if (stat->offset + sizeof(sdext_flags_t) > stat->place->len) { fsck_mess("Node (%llu), item (%u), [%s]: does not look " "like a valid (%s) statdata extension.", place_blknr(stat->place), stat->place->pos.item, print_key(sdext_flags_core, &stat->place->key), stat->plug->p.label); return RE_FATAL; } return 0; } /* Prints extension into passed @stream. */ void sdext_flags_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options) { sdext_flags_t *ext; aal_assert("umka-3083", stat != NULL); aal_assert("umka-3084", stream != NULL); ext = (sdext_flags_t *)stat_body(stat); if (sizeof(sdext_flags_t) + stat->offset > stat->place->len) { aal_stream_format(stream, "No enough space (%u bytes) " "for the flags extention body.\n", stat->place->len - stat->offset); return; } aal_stream_format(stream, "flags:\t\t%u\n", sdext_flags_get_flags(ext)); } #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_flags/Makefile.in0000644000175000017500000005005511134132300021714 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/sdext/sdext_flags DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsdext_flags_minimal_la_LIBADD = am__libsdext_flags_minimal_la_SOURCES_DIST = sdext_flags.c \ sdext_flags_repair.c sdext_flags.h am__objects_1 = libsdext_flags_minimal_la-sdext_flags.lo \ libsdext_flags_minimal_la-sdext_flags_repair.lo @ENABLE_MINIMAL_TRUE@am_libsdext_flags_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libsdext_flags_minimal_la_OBJECTS = \ $(am_libsdext_flags_minimal_la_OBJECTS) libsdext_flags_minimal_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_flags_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsdext_flags_minimal_la_rpath = libsdext_flags_static_la_LIBADD = am__objects_2 = libsdext_flags_static_la-sdext_flags.lo \ libsdext_flags_static_la-sdext_flags_repair.lo am_libsdext_flags_static_la_OBJECTS = $(am__objects_2) libsdext_flags_static_la_OBJECTS = \ $(am_libsdext_flags_static_la_OBJECTS) libsdext_flags_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_flags_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsdext_flags_minimal_la_SOURCES) \ $(libsdext_flags_static_la_SOURCES) DIST_SOURCES = $(am__libsdext_flags_minimal_la_SOURCES_DIST) \ $(libsdext_flags_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sdext_flags_sources = sdext_flags.c sdext_flags_repair.c sdext_flags.h STATIC_LIBS = libsdext_flags-static.la libsdext_flags_static_la_SOURCES = $(sdext_flags_sources) libsdext_flags_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsdext_flags-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsdext_flags_minimal_la_SOURCES = $(sdext_flags_sources) @ENABLE_MINIMAL_TRUE@libsdext_flags_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/sdext/sdext_flags/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/sdext/sdext_flags/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsdext_flags-minimal.la: $(libsdext_flags_minimal_la_OBJECTS) $(libsdext_flags_minimal_la_DEPENDENCIES) $(libsdext_flags_minimal_la_LINK) $(am_libsdext_flags_minimal_la_rpath) $(libsdext_flags_minimal_la_OBJECTS) $(libsdext_flags_minimal_la_LIBADD) $(LIBS) libsdext_flags-static.la: $(libsdext_flags_static_la_OBJECTS) $(libsdext_flags_static_la_DEPENDENCIES) $(libsdext_flags_static_la_LINK) $(libsdext_flags_static_la_OBJECTS) $(libsdext_flags_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_flags_minimal_la-sdext_flags.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_flags_minimal_la-sdext_flags_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_flags_static_la-sdext_flags.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_flags_static_la-sdext_flags_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsdext_flags_minimal_la-sdext_flags.lo: sdext_flags.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_flags_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_flags_minimal_la-sdext_flags.lo -MD -MP -MF $(DEPDIR)/libsdext_flags_minimal_la-sdext_flags.Tpo -c -o libsdext_flags_minimal_la-sdext_flags.lo `test -f 'sdext_flags.c' || echo '$(srcdir)/'`sdext_flags.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_flags_minimal_la-sdext_flags.Tpo $(DEPDIR)/libsdext_flags_minimal_la-sdext_flags.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_flags.c' object='libsdext_flags_minimal_la-sdext_flags.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_flags_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_flags_minimal_la-sdext_flags.lo `test -f 'sdext_flags.c' || echo '$(srcdir)/'`sdext_flags.c libsdext_flags_minimal_la-sdext_flags_repair.lo: sdext_flags_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_flags_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_flags_minimal_la-sdext_flags_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_flags_minimal_la-sdext_flags_repair.Tpo -c -o libsdext_flags_minimal_la-sdext_flags_repair.lo `test -f 'sdext_flags_repair.c' || echo '$(srcdir)/'`sdext_flags_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_flags_minimal_la-sdext_flags_repair.Tpo $(DEPDIR)/libsdext_flags_minimal_la-sdext_flags_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_flags_repair.c' object='libsdext_flags_minimal_la-sdext_flags_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_flags_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_flags_minimal_la-sdext_flags_repair.lo `test -f 'sdext_flags_repair.c' || echo '$(srcdir)/'`sdext_flags_repair.c libsdext_flags_static_la-sdext_flags.lo: sdext_flags.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_flags_static_la_CFLAGS) $(CFLAGS) -MT libsdext_flags_static_la-sdext_flags.lo -MD -MP -MF $(DEPDIR)/libsdext_flags_static_la-sdext_flags.Tpo -c -o libsdext_flags_static_la-sdext_flags.lo `test -f 'sdext_flags.c' || echo '$(srcdir)/'`sdext_flags.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_flags_static_la-sdext_flags.Tpo $(DEPDIR)/libsdext_flags_static_la-sdext_flags.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_flags.c' object='libsdext_flags_static_la-sdext_flags.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_flags_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_flags_static_la-sdext_flags.lo `test -f 'sdext_flags.c' || echo '$(srcdir)/'`sdext_flags.c libsdext_flags_static_la-sdext_flags_repair.lo: sdext_flags_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_flags_static_la_CFLAGS) $(CFLAGS) -MT libsdext_flags_static_la-sdext_flags_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_flags_static_la-sdext_flags_repair.Tpo -c -o libsdext_flags_static_la-sdext_flags_repair.lo `test -f 'sdext_flags_repair.c' || echo '$(srcdir)/'`sdext_flags_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_flags_static_la-sdext_flags_repair.Tpo $(DEPDIR)/libsdext_flags_static_la-sdext_flags_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_flags_repair.c' object='libsdext_flags_static_la-sdext_flags_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_flags_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_flags_static_la-sdext_flags_repair.lo `test -f 'sdext_flags_repair.c' || echo '$(srcdir)/'`sdext_flags_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/sdext/sdext_flags/sdext_flags.h0000644000175000017500000000101411131470543022325 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_flags.h -- inode flags stat data extension plugin. */ #ifndef SDEXT_FLAGS_H #define SDEXT_FLAGS_H #include #include typedef struct sdext_flags { d32_t flags; } __attribute__((packed)) sdext_flags_t; extern reiser4_core_t *sdext_flags_core; #define sdext_flags_get_flags(ext) aal_get_le32(ext, flags) #define sdext_flags_set_flags(ext, val) aal_set_le32(ext, flags, val) #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_flags/sdext_flags.c0000644000175000017500000000342111131470543022324 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_flags.c -- inode flags stat data extension plugin. */ #include "sdext_flags.h" reiser4_core_t *sdext_flags_core = NULL; /* Stat data extension length. */ static uint32_t sdext_flags_length(stat_entity_t *stat, void *hint) { return sizeof(sdext_flags_t); } #ifndef ENABLE_MINIMAL /* Loads all extension fields to passed @hint. */ static errno_t sdext_flags_open(stat_entity_t *stat, void *hint) { sdext_flags_t *ext; sdhint_flags_t *flagsh; aal_assert("umka-3077", stat != NULL); aal_assert("umka-3078", hint != NULL); ext = (sdext_flags_t *)stat_body(stat); flagsh = (sdhint_flags_t *)hint; flagsh->flags = sdext_flags_get_flags(ext); return 0; } /* Saves all fields to passed extension @body. */ static errno_t sdext_flags_init(stat_entity_t *stat, void *hint) { sdhint_flags_t *flagsh; aal_assert("umka-3079", stat != NULL); aal_assert("umka-3080", hint != NULL); flagsh = (sdhint_flags_t *)hint; sdext_flags_set_flags((sdext_flags_t *)stat_body(stat), flagsh->flags); return 0; } extern void sdext_flags_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options); extern errno_t sdext_flags_check_struct(stat_entity_t *stat, repair_hint_t *hint); #endif reiser4_sdext_plug_t sdext_flags_plug = { .p = { .id = {SDEXT_FLAGS_ID, 0, SDEXT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "sdext_flags", .desc = "Inode flags stat data extension plugin.", #endif }, #ifndef ENABLE_MINIMAL .open = sdext_flags_open, .init = sdext_flags_init, .print = sdext_flags_print, .check_struct = sdext_flags_check_struct, #else .open = NULL, #endif .info = NULL, .length = sdext_flags_length }; reiser4progs-1.0.7.orig/plugin/sdext/sdext_flags/Makefile.am0000644000175000017500000000117211131470543021712 0ustar fzfzincludedir = -I$(top_srcdir)/include sdext_flags_sources = sdext_flags.c sdext_flags_repair.c sdext_flags.h STATIC_LIBS = libsdext_flags-static.la libsdext_flags_static_la_SOURCES = $(sdext_flags_sources) libsdext_flags_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsdext_flags-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsdext_flags_minimal_la_SOURCES = $(sdext_flags_sources) libsdext_flags_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/sdext/sdext_lw/0000777000175000017500000000000011134133446017210 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/sdext_lw/Makefile.in0000644000175000017500000004710211134132300021241 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/sdext/sdext_lw DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsdext_lw_minimal_la_LIBADD = am__libsdext_lw_minimal_la_SOURCES_DIST = sdext_lw.c sdext_lw_repair.c \ sdext_lw.h am__objects_1 = libsdext_lw_minimal_la-sdext_lw.lo \ libsdext_lw_minimal_la-sdext_lw_repair.lo @ENABLE_MINIMAL_TRUE@am_libsdext_lw_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libsdext_lw_minimal_la_OBJECTS = $(am_libsdext_lw_minimal_la_OBJECTS) libsdext_lw_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_lw_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsdext_lw_minimal_la_rpath = libsdext_lw_static_la_LIBADD = am__objects_2 = libsdext_lw_static_la-sdext_lw.lo \ libsdext_lw_static_la-sdext_lw_repair.lo am_libsdext_lw_static_la_OBJECTS = $(am__objects_2) libsdext_lw_static_la_OBJECTS = $(am_libsdext_lw_static_la_OBJECTS) libsdext_lw_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_lw_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsdext_lw_minimal_la_SOURCES) \ $(libsdext_lw_static_la_SOURCES) DIST_SOURCES = $(am__libsdext_lw_minimal_la_SOURCES_DIST) \ $(libsdext_lw_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sdext_lw_sources = sdext_lw.c sdext_lw_repair.c sdext_lw.h STATIC_LIBS = libsdext_lw-static.la libsdext_lw_static_la_SOURCES = $(sdext_lw_sources) libsdext_lw_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsdext_lw-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsdext_lw_minimal_la_SOURCES = $(sdext_lw_sources) @ENABLE_MINIMAL_TRUE@libsdext_lw_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/sdext/sdext_lw/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/sdext/sdext_lw/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsdext_lw-minimal.la: $(libsdext_lw_minimal_la_OBJECTS) $(libsdext_lw_minimal_la_DEPENDENCIES) $(libsdext_lw_minimal_la_LINK) $(am_libsdext_lw_minimal_la_rpath) $(libsdext_lw_minimal_la_OBJECTS) $(libsdext_lw_minimal_la_LIBADD) $(LIBS) libsdext_lw-static.la: $(libsdext_lw_static_la_OBJECTS) $(libsdext_lw_static_la_DEPENDENCIES) $(libsdext_lw_static_la_LINK) $(libsdext_lw_static_la_OBJECTS) $(libsdext_lw_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_lw_minimal_la-sdext_lw.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_lw_minimal_la-sdext_lw_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_lw_static_la-sdext_lw.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_lw_static_la-sdext_lw_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsdext_lw_minimal_la-sdext_lw.lo: sdext_lw.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lw_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_lw_minimal_la-sdext_lw.lo -MD -MP -MF $(DEPDIR)/libsdext_lw_minimal_la-sdext_lw.Tpo -c -o libsdext_lw_minimal_la-sdext_lw.lo `test -f 'sdext_lw.c' || echo '$(srcdir)/'`sdext_lw.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_lw_minimal_la-sdext_lw.Tpo $(DEPDIR)/libsdext_lw_minimal_la-sdext_lw.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_lw.c' object='libsdext_lw_minimal_la-sdext_lw.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lw_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_lw_minimal_la-sdext_lw.lo `test -f 'sdext_lw.c' || echo '$(srcdir)/'`sdext_lw.c libsdext_lw_minimal_la-sdext_lw_repair.lo: sdext_lw_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lw_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_lw_minimal_la-sdext_lw_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_lw_minimal_la-sdext_lw_repair.Tpo -c -o libsdext_lw_minimal_la-sdext_lw_repair.lo `test -f 'sdext_lw_repair.c' || echo '$(srcdir)/'`sdext_lw_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_lw_minimal_la-sdext_lw_repair.Tpo $(DEPDIR)/libsdext_lw_minimal_la-sdext_lw_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_lw_repair.c' object='libsdext_lw_minimal_la-sdext_lw_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lw_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_lw_minimal_la-sdext_lw_repair.lo `test -f 'sdext_lw_repair.c' || echo '$(srcdir)/'`sdext_lw_repair.c libsdext_lw_static_la-sdext_lw.lo: sdext_lw.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lw_static_la_CFLAGS) $(CFLAGS) -MT libsdext_lw_static_la-sdext_lw.lo -MD -MP -MF $(DEPDIR)/libsdext_lw_static_la-sdext_lw.Tpo -c -o libsdext_lw_static_la-sdext_lw.lo `test -f 'sdext_lw.c' || echo '$(srcdir)/'`sdext_lw.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_lw_static_la-sdext_lw.Tpo $(DEPDIR)/libsdext_lw_static_la-sdext_lw.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_lw.c' object='libsdext_lw_static_la-sdext_lw.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lw_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_lw_static_la-sdext_lw.lo `test -f 'sdext_lw.c' || echo '$(srcdir)/'`sdext_lw.c libsdext_lw_static_la-sdext_lw_repair.lo: sdext_lw_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lw_static_la_CFLAGS) $(CFLAGS) -MT libsdext_lw_static_la-sdext_lw_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_lw_static_la-sdext_lw_repair.Tpo -c -o libsdext_lw_static_la-sdext_lw_repair.lo `test -f 'sdext_lw_repair.c' || echo '$(srcdir)/'`sdext_lw_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_lw_static_la-sdext_lw_repair.Tpo $(DEPDIR)/libsdext_lw_static_la-sdext_lw_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_lw_repair.c' object='libsdext_lw_static_la-sdext_lw_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lw_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_lw_static_la-sdext_lw_repair.lo `test -f 'sdext_lw_repair.c' || echo '$(srcdir)/'`sdext_lw_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/sdext/sdext_lw/sdext_lw_repair.c0000644000175000017500000000454411131470543022551 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_lw_repair.c -- light weight stat data extension plugin recovery code. */ #ifndef ENABLE_MINIMAL #include #include "sdext_lw.h" #include #include "sdext_lw.h" errno_t sdext_lw_check_struct(stat_entity_t *stat, repair_hint_t *hint) { aal_assert("vpf-777", stat != NULL); aal_assert("vpf-783", stat->plug != NULL); if (stat->offset + sizeof(sdext_lw_t) > stat->place->len) { fsck_mess("Node (%llu), item (%u), [%s]: does not look " "like a valid (%s) statdata extension.", place_blknr(stat->place), stat->place->pos.item, print_key(sdext_lw_core, &stat->place->key), stat->plug->p.label); return RE_FATAL; } return 0; } /* Mode parse stuff. */ static char sdext_lw_file_type(uint16_t mode) { if (S_ISDIR(mode)) return 'd'; if (S_ISCHR(mode)) return 'c'; if (S_ISBLK(mode)) return 'b'; if (S_ISFIFO(mode)) return 'p'; if (S_ISLNK(mode)) return 'l'; if (S_ISSOCK(mode)) return 's'; if (S_ISREG (mode)) return '-'; return '?'; } static void sdext_lw_parse_mode(uint16_t mode, char *str) { str[0] = sdext_lw_file_type(mode); str[1] = mode & S_IRUSR ? 'r' : '-'; str[2] = mode & S_IWUSR ? 'w' : '-'; str[3] = mode & S_IXUSR ? 'x' : '-'; str[4] = mode & S_IRGRP ? 'r' : '-'; str[5] = mode & S_IWGRP ? 'w' : '-'; str[6] = mode & S_IXGRP ? 'x' : '-'; str[7] = mode & S_IROTH ? 'r' : '-'; str[8] = mode & S_IWOTH ? 'w' : '-'; str[9] = mode & S_IXOTH ? 'x' : '-'; str[10] = '\0'; } /* Print extension to passed @stream. */ void sdext_lw_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options) { char mode[16]; sdext_lw_t *ext; aal_assert("umka-1410", stat != NULL); aal_assert("umka-1411", stream != NULL); ext = (sdext_lw_t *)stat_body(stat); if (sizeof(sdext_lw_t) + stat->offset > stat->place->len) { aal_stream_format(stream, "No enough space (%u bytes) " "for the large-time extention body.\n", stat->place->len - stat->offset); return; } aal_memset(mode, 0, sizeof(mode)); sdext_lw_parse_mode(sdext_lw_get_mode(ext), mode); aal_stream_format(stream, "mode:\t\t%s\n", mode); aal_stream_format(stream, "nlink:\t\t%u\n", sdext_lw_get_nlink(ext)); aal_stream_format(stream, "size:\t\t%llu\n", sdext_lw_get_size(ext)); } #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_lw/sdext_lw.c0000644000175000017500000000376011131470543021206 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_lw.c -- light weight stat data extension plugin, that implements base stat data fields. */ #include "sdext_lw.h" #include reiser4_core_t *sdext_lw_core = NULL; /* Loads extension to passed @hint */ static errno_t sdext_lw_open(stat_entity_t *stat, void *hint) { sdext_lw_t *ext; sdhint_lw_t *lwh; aal_assert("umka-1188", stat != NULL); aal_assert("umka-1189", hint != NULL); ext = (sdext_lw_t *)stat_body(stat); lwh = (sdhint_lw_t *)hint; lwh->mode = sdext_lw_get_mode(ext); lwh->nlink = sdext_lw_get_nlink(ext); lwh->size = sdext_lw_get_size(ext); return 0; } static uint32_t sdext_lw_length(stat_entity_t *stat, void *hint) { return sizeof(sdext_lw_t); } static void sdext_lw_info(stat_entity_t *stat) { sdext_lw_t *ext; ext = (sdext_lw_t *)stat_body(stat); stat->info.mode = sdext_lw_get_mode(ext); } #ifndef ENABLE_MINIMAL /* Saves all extension fields from passed @hint to @body. */ static errno_t sdext_lw_init(stat_entity_t *stat, void *hint) { sdhint_lw_t *lwh; sdext_lw_t *ext; aal_assert("umka-1186", stat != NULL); aal_assert("umka-1187", hint != NULL); lwh = (sdhint_lw_t *)hint; ext = (sdext_lw_t *)stat_body(stat); sdext_lw_set_mode(ext, lwh->mode); sdext_lw_set_nlink(ext, lwh->nlink); sdext_lw_set_size(ext, lwh->size); return 0; } extern errno_t sdext_lw_check_struct(stat_entity_t *stat, repair_hint_t *hint); extern void sdext_lw_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options); #endif reiser4_sdext_plug_t sdext_lw_plug = { .p = { .id = {SDEXT_LW_ID, 0, SDEXT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "sdext_lw", .desc = "Light stat data extension plugin.", #endif }, #ifndef ENABLE_MINIMAL .init = sdext_lw_init, .print = sdext_lw_print, .check_struct = sdext_lw_check_struct, #endif .open = sdext_lw_open, .info = sdext_lw_info, .length = sdext_lw_length }; reiser4progs-1.0.7.orig/plugin/sdext/sdext_lw/Makefile.am0000644000175000017500000000114111131470543021234 0ustar fzfzincludedir = -I$(top_srcdir)/include sdext_lw_sources = sdext_lw.c sdext_lw_repair.c sdext_lw.h STATIC_LIBS = libsdext_lw-static.la libsdext_lw_static_la_SOURCES = $(sdext_lw_sources) libsdext_lw_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsdext_lw-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsdext_lw_minimal_la_SOURCES = $(sdext_lw_sources) libsdext_lw_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/sdext/sdext_lw/sdext_lw.h0000644000175000017500000000143111131470543021204 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_lw.h -- stat data plugin, that implements base stat data fields. */ #ifndef SDEXT_LW_H #define SDEXT_LW_H #include #include typedef struct sdext_lw { d16_t mode; d32_t nlink; d64_t size; } __attribute__((packed)) sdext_lw_t; extern reiser4_core_t *sdext_lw_core; #define sdext_lw_get_mode(ext) aal_get_le16(ext, mode) #define sdext_lw_set_mode(ext, val) aal_set_le16(ext, mode, val) #define sdext_lw_get_nlink(ext) aal_get_le32(ext, nlink) #define sdext_lw_set_nlink(ext, val) aal_set_le32(ext, nlink, val) #define sdext_lw_get_size(ext) aal_get_le64(ext, size) #define sdext_lw_set_size(ext, val) aal_set_le64(ext, size, val) #endif reiser4progs-1.0.7.orig/plugin/sdext/Makefile.am0000644000175000017500000000013211131470543017402 0ustar fzfzSUBDIRS = sdext_lt sdext_lw sdext_unix sdext_symlink sdext_flags sdext_plug sdext_crypto reiser4progs-1.0.7.orig/plugin/sdext/sdext_lt/0000777000175000017500000000000011134133445017204 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/sdext_lt/sdext_lt.c0000644000175000017500000000353711131470543021202 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_lt.c -- large time stat data extension plugin. */ #include "sdext_lt.h" reiser4_core_t *sdext_lt_core = NULL; /* Stat data extension length. */ static uint32_t sdext_lt_length(stat_entity_t *stat, void *h) { return sizeof(sdext_lt_t); } #ifndef ENABLE_MINIMAL /* Loads all extension fields to passed @hint. */ static errno_t sdext_lt_open(stat_entity_t *stat, void *hint) { sdext_lt_t *ext; sdhint_lt_t *lth; aal_assert("umka-1477", stat != NULL); aal_assert("umka-1478", hint != NULL); ext = (sdext_lt_t *)stat_body(stat); lth = (sdhint_lt_t *)hint; lth->atime = sdext_lt_get_atime(ext); lth->mtime = sdext_lt_get_mtime(ext); lth->ctime = sdext_lt_get_ctime(ext); return 0; } /* Saves all fields to passed extension @body. */ static errno_t sdext_lt_init(stat_entity_t *stat, void *hint) { sdhint_lt_t *lth; sdext_lt_t *ext; aal_assert("umka-1475", stat != NULL); aal_assert("umka-1476", hint != NULL); lth = (sdhint_lt_t *)hint; ext = (sdext_lt_t *)stat_body(stat); sdext_lt_set_atime(ext, lth->atime); sdext_lt_set_mtime(ext, lth->mtime); sdext_lt_set_ctime(ext, lth->ctime); return 0; } extern errno_t sdext_lt_check_struct(stat_entity_t *stat, repair_hint_t *hint); extern void sdext_lt_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options); #endif reiser4_sdext_plug_t sdext_lt_plug = { .p = { .id = {SDEXT_LT_ID, 0, SDEXT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "sdext_lt", .desc = "Large times stat data extension plugin.", #endif }, #ifndef ENABLE_MINIMAL .open = sdext_lt_open, .init = sdext_lt_init, .print = sdext_lt_print, .check_struct = sdext_lt_check_struct, #else .open = NULL, #endif .info = NULL, .length = sdext_lt_length }; reiser4progs-1.0.7.orig/plugin/sdext/sdext_lt/Makefile.in0000644000175000017500000004710211134132300021236 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/sdext/sdext_lt DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsdext_lt_minimal_la_LIBADD = am__libsdext_lt_minimal_la_SOURCES_DIST = sdext_lt.c sdext_lt_repair.c \ sdext_lt.h am__objects_1 = libsdext_lt_minimal_la-sdext_lt.lo \ libsdext_lt_minimal_la-sdext_lt_repair.lo @ENABLE_MINIMAL_TRUE@am_libsdext_lt_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libsdext_lt_minimal_la_OBJECTS = $(am_libsdext_lt_minimal_la_OBJECTS) libsdext_lt_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_lt_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsdext_lt_minimal_la_rpath = libsdext_lt_static_la_LIBADD = am__objects_2 = libsdext_lt_static_la-sdext_lt.lo \ libsdext_lt_static_la-sdext_lt_repair.lo am_libsdext_lt_static_la_OBJECTS = $(am__objects_2) libsdext_lt_static_la_OBJECTS = $(am_libsdext_lt_static_la_OBJECTS) libsdext_lt_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_lt_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsdext_lt_minimal_la_SOURCES) \ $(libsdext_lt_static_la_SOURCES) DIST_SOURCES = $(am__libsdext_lt_minimal_la_SOURCES_DIST) \ $(libsdext_lt_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sdext_lt_sources = sdext_lt.c sdext_lt_repair.c sdext_lt.h STATIC_LIBS = libsdext_lt-static.la libsdext_lt_static_la_SOURCES = $(sdext_lt_sources) libsdext_lt_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsdext_lt-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsdext_lt_minimal_la_SOURCES = $(sdext_lt_sources) @ENABLE_MINIMAL_TRUE@libsdext_lt_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/sdext/sdext_lt/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/sdext/sdext_lt/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsdext_lt-minimal.la: $(libsdext_lt_minimal_la_OBJECTS) $(libsdext_lt_minimal_la_DEPENDENCIES) $(libsdext_lt_minimal_la_LINK) $(am_libsdext_lt_minimal_la_rpath) $(libsdext_lt_minimal_la_OBJECTS) $(libsdext_lt_minimal_la_LIBADD) $(LIBS) libsdext_lt-static.la: $(libsdext_lt_static_la_OBJECTS) $(libsdext_lt_static_la_DEPENDENCIES) $(libsdext_lt_static_la_LINK) $(libsdext_lt_static_la_OBJECTS) $(libsdext_lt_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_lt_minimal_la-sdext_lt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_lt_minimal_la-sdext_lt_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_lt_static_la-sdext_lt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_lt_static_la-sdext_lt_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsdext_lt_minimal_la-sdext_lt.lo: sdext_lt.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lt_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_lt_minimal_la-sdext_lt.lo -MD -MP -MF $(DEPDIR)/libsdext_lt_minimal_la-sdext_lt.Tpo -c -o libsdext_lt_minimal_la-sdext_lt.lo `test -f 'sdext_lt.c' || echo '$(srcdir)/'`sdext_lt.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_lt_minimal_la-sdext_lt.Tpo $(DEPDIR)/libsdext_lt_minimal_la-sdext_lt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_lt.c' object='libsdext_lt_minimal_la-sdext_lt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lt_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_lt_minimal_la-sdext_lt.lo `test -f 'sdext_lt.c' || echo '$(srcdir)/'`sdext_lt.c libsdext_lt_minimal_la-sdext_lt_repair.lo: sdext_lt_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lt_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_lt_minimal_la-sdext_lt_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_lt_minimal_la-sdext_lt_repair.Tpo -c -o libsdext_lt_minimal_la-sdext_lt_repair.lo `test -f 'sdext_lt_repair.c' || echo '$(srcdir)/'`sdext_lt_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_lt_minimal_la-sdext_lt_repair.Tpo $(DEPDIR)/libsdext_lt_minimal_la-sdext_lt_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_lt_repair.c' object='libsdext_lt_minimal_la-sdext_lt_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lt_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_lt_minimal_la-sdext_lt_repair.lo `test -f 'sdext_lt_repair.c' || echo '$(srcdir)/'`sdext_lt_repair.c libsdext_lt_static_la-sdext_lt.lo: sdext_lt.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lt_static_la_CFLAGS) $(CFLAGS) -MT libsdext_lt_static_la-sdext_lt.lo -MD -MP -MF $(DEPDIR)/libsdext_lt_static_la-sdext_lt.Tpo -c -o libsdext_lt_static_la-sdext_lt.lo `test -f 'sdext_lt.c' || echo '$(srcdir)/'`sdext_lt.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_lt_static_la-sdext_lt.Tpo $(DEPDIR)/libsdext_lt_static_la-sdext_lt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_lt.c' object='libsdext_lt_static_la-sdext_lt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lt_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_lt_static_la-sdext_lt.lo `test -f 'sdext_lt.c' || echo '$(srcdir)/'`sdext_lt.c libsdext_lt_static_la-sdext_lt_repair.lo: sdext_lt_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lt_static_la_CFLAGS) $(CFLAGS) -MT libsdext_lt_static_la-sdext_lt_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_lt_static_la-sdext_lt_repair.Tpo -c -o libsdext_lt_static_la-sdext_lt_repair.lo `test -f 'sdext_lt_repair.c' || echo '$(srcdir)/'`sdext_lt_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_lt_static_la-sdext_lt_repair.Tpo $(DEPDIR)/libsdext_lt_static_la-sdext_lt_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_lt_repair.c' object='libsdext_lt_static_la-sdext_lt_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_lt_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_lt_static_la-sdext_lt_repair.lo `test -f 'sdext_lt_repair.c' || echo '$(srcdir)/'`sdext_lt_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/sdext/sdext_lt/sdext_lt_repair.c0000644000175000017500000000275211131470543022542 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_lt_repair.c -- large time stat data extension plugin recovery code. */ #ifndef ENABLE_MINIMAL #include "sdext_lt.h" #include #include "sdext_lt.h" errno_t sdext_lt_check_struct(stat_entity_t *stat, repair_hint_t *hint) { aal_assert("vpf-776", stat != NULL); aal_assert("vpf-782", stat->plug != NULL); if (stat->offset + sizeof(sdext_lt_t) > stat->place->len) { fsck_mess("Node (%llu), item (%u), [%s]: does not look " "like a valid (%s) statdata extension.", place_blknr(stat->place), stat->place->pos.item, print_key(sdext_lt_core, &stat->place->key), stat->plug->p.label); return RE_FATAL; } return 0; } /* Prints extension into passed @stream. */ void sdext_lt_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options) { sdext_lt_t *ext; aal_assert("umka-1479", stat != NULL); aal_assert("umka-1480", stream != NULL); ext = (sdext_lt_t *)stat_body(stat); if (sizeof(sdext_lt_t) + stat->offset > stat->place->len) { aal_stream_format(stream, "No enough space (%u bytes) " "for the light-weight extention body.\n", stat->place->len - stat->offset); return; } aal_stream_format(stream, "atime:\t\t%u\n", sdext_lt_get_atime(ext)); aal_stream_format(stream, "mtime:\t\t%u\n", sdext_lt_get_mtime(ext)); aal_stream_format(stream, "ctime:\t\t%u\n", sdext_lt_get_ctime(ext)); } #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_lt/sdext_lt.h0000644000175000017500000000145611131470543021205 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_lt.h -- stat data plugin, that implements large time storage. */ #ifndef SDEXT_LT_H #define SDEXT_LT_H #include #include typedef struct sdext_lt { d32_t atime; d32_t mtime; d32_t ctime; } __attribute__((packed)) sdext_lt_t; extern reiser4_core_t *sdext_lt_core; #define sdext_lt_get_atime(ext) aal_get_le32(ext, atime) #define sdext_lt_set_atime(ext, val) aal_set_le32(ext, atime, val) #define sdext_lt_get_mtime(ext) aal_get_le32(ext, mtime) #define sdext_lt_set_mtime(ext, val) aal_set_le32(ext, mtime, val) #define sdext_lt_get_ctime(ext) aal_get_le32(ext, ctime) #define sdext_lt_set_ctime(ext, val) aal_set_le32(ext, ctime, val) #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_lt/Makefile.am0000644000175000017500000000114111131470543021231 0ustar fzfzincludedir = -I$(top_srcdir)/include sdext_lt_sources = sdext_lt.c sdext_lt_repair.c sdext_lt.h STATIC_LIBS = libsdext_lt-static.la libsdext_lt_static_la_SOURCES = $(sdext_lt_sources) libsdext_lt_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsdext_lt-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsdext_lt_minimal_la_SOURCES = $(sdext_lt_sources) libsdext_lt_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/sdext/sdext_plug/0000777000175000017500000000000011134133446017535 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/sdext_plug/Makefile.in0000644000175000017500000004761411134132300021576 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/sdext/sdext_plug DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsdext_plug_minimal_la_LIBADD = am__libsdext_plug_minimal_la_SOURCES_DIST = sdext_plug.c \ sdext_plug_repair.c sdext_plug.h am__objects_1 = libsdext_plug_minimal_la-sdext_plug.lo \ libsdext_plug_minimal_la-sdext_plug_repair.lo @ENABLE_MINIMAL_TRUE@am_libsdext_plug_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libsdext_plug_minimal_la_OBJECTS = \ $(am_libsdext_plug_minimal_la_OBJECTS) libsdext_plug_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_plug_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsdext_plug_minimal_la_rpath = libsdext_plug_static_la_LIBADD = am__objects_2 = libsdext_plug_static_la-sdext_plug.lo \ libsdext_plug_static_la-sdext_plug_repair.lo am_libsdext_plug_static_la_OBJECTS = $(am__objects_2) libsdext_plug_static_la_OBJECTS = \ $(am_libsdext_plug_static_la_OBJECTS) libsdext_plug_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_plug_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsdext_plug_minimal_la_SOURCES) \ $(libsdext_plug_static_la_SOURCES) DIST_SOURCES = $(am__libsdext_plug_minimal_la_SOURCES_DIST) \ $(libsdext_plug_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sdext_plug_sources = sdext_plug.c sdext_plug_repair.c sdext_plug.h STATIC_LIBS = libsdext_plug-static.la libsdext_plug_static_la_SOURCES = $(sdext_plug_sources) libsdext_plug_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsdext_plug-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsdext_plug_minimal_la_SOURCES = $(sdext_plug_sources) @ENABLE_MINIMAL_TRUE@libsdext_plug_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/sdext/sdext_plug/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/sdext/sdext_plug/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsdext_plug-minimal.la: $(libsdext_plug_minimal_la_OBJECTS) $(libsdext_plug_minimal_la_DEPENDENCIES) $(libsdext_plug_minimal_la_LINK) $(am_libsdext_plug_minimal_la_rpath) $(libsdext_plug_minimal_la_OBJECTS) $(libsdext_plug_minimal_la_LIBADD) $(LIBS) libsdext_plug-static.la: $(libsdext_plug_static_la_OBJECTS) $(libsdext_plug_static_la_DEPENDENCIES) $(libsdext_plug_static_la_LINK) $(libsdext_plug_static_la_OBJECTS) $(libsdext_plug_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_plug_minimal_la-sdext_plug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_plug_minimal_la-sdext_plug_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_plug_static_la-sdext_plug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_plug_static_la-sdext_plug_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsdext_plug_minimal_la-sdext_plug.lo: sdext_plug.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_plug_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_plug_minimal_la-sdext_plug.lo -MD -MP -MF $(DEPDIR)/libsdext_plug_minimal_la-sdext_plug.Tpo -c -o libsdext_plug_minimal_la-sdext_plug.lo `test -f 'sdext_plug.c' || echo '$(srcdir)/'`sdext_plug.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_plug_minimal_la-sdext_plug.Tpo $(DEPDIR)/libsdext_plug_minimal_la-sdext_plug.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_plug.c' object='libsdext_plug_minimal_la-sdext_plug.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_plug_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_plug_minimal_la-sdext_plug.lo `test -f 'sdext_plug.c' || echo '$(srcdir)/'`sdext_plug.c libsdext_plug_minimal_la-sdext_plug_repair.lo: sdext_plug_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_plug_minimal_la_CFLAGS) $(CFLAGS) -MT libsdext_plug_minimal_la-sdext_plug_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_plug_minimal_la-sdext_plug_repair.Tpo -c -o libsdext_plug_minimal_la-sdext_plug_repair.lo `test -f 'sdext_plug_repair.c' || echo '$(srcdir)/'`sdext_plug_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_plug_minimal_la-sdext_plug_repair.Tpo $(DEPDIR)/libsdext_plug_minimal_la-sdext_plug_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_plug_repair.c' object='libsdext_plug_minimal_la-sdext_plug_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_plug_minimal_la_CFLAGS) $(CFLAGS) -c -o libsdext_plug_minimal_la-sdext_plug_repair.lo `test -f 'sdext_plug_repair.c' || echo '$(srcdir)/'`sdext_plug_repair.c libsdext_plug_static_la-sdext_plug.lo: sdext_plug.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_plug_static_la_CFLAGS) $(CFLAGS) -MT libsdext_plug_static_la-sdext_plug.lo -MD -MP -MF $(DEPDIR)/libsdext_plug_static_la-sdext_plug.Tpo -c -o libsdext_plug_static_la-sdext_plug.lo `test -f 'sdext_plug.c' || echo '$(srcdir)/'`sdext_plug.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_plug_static_la-sdext_plug.Tpo $(DEPDIR)/libsdext_plug_static_la-sdext_plug.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_plug.c' object='libsdext_plug_static_la-sdext_plug.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_plug_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_plug_static_la-sdext_plug.lo `test -f 'sdext_plug.c' || echo '$(srcdir)/'`sdext_plug.c libsdext_plug_static_la-sdext_plug_repair.lo: sdext_plug_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_plug_static_la_CFLAGS) $(CFLAGS) -MT libsdext_plug_static_la-sdext_plug_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_plug_static_la-sdext_plug_repair.Tpo -c -o libsdext_plug_static_la-sdext_plug_repair.lo `test -f 'sdext_plug_repair.c' || echo '$(srcdir)/'`sdext_plug_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_plug_static_la-sdext_plug_repair.Tpo $(DEPDIR)/libsdext_plug_static_la-sdext_plug_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_plug_repair.c' object='libsdext_plug_static_la-sdext_plug_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_plug_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_plug_static_la-sdext_plug_repair.lo `test -f 'sdext_plug_repair.c' || echo '$(srcdir)/'`sdext_plug_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/sdext/sdext_plug/sdext_plug.c0000644000175000017500000001122011131470543022046 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_plug.c -- plugin id stat data extension plugin. */ #include "sdext_plug.h" reiser4_core_t *sdext_pset_core = NULL; #ifndef ENABLE_MINIMAL static void sdext_plug_info(stat_entity_t *stat) { sdext_plug_t *ext; uint8_t i; stat->info.digest = NULL; /* When inserting new extentions, nothing to be done. */ if (stat->plug->p.id.id != SDEXT_PSET_ID || !stat) return; ext = (sdext_plug_t *)stat_body(stat); for (i = 0; i < sdext_plug_get_count(ext); i++) { rid_t mem, id; mem = sdext_plug_get_member(ext, i); id = sdext_plug_get_pid(ext, i); if (mem != SDEXT_PSET_ID) continue; stat->info.digest = sdext_pset_core->pset_ops.find(mem, id, 1); if (stat->info.digest == INVAL_PTR) stat->info.digest = NULL; return; } } #endif uint32_t sdext_plug_length(stat_entity_t *stat, void *hint) { uint16_t count = 0; uint64_t mask; aal_assert("vpf-1844", stat != NULL || hint != NULL); /* If hint is given, count its pset. */ if (hint) { sdhint_plug_t *h = (sdhint_plug_t *)hint; mask = h->plug_mask; while (mask) { if (mask & 1) count++; mask >>= 1; } } else { sdext_plug_t *plug = (sdext_plug_t *)stat_body(stat); count = sdext_plug_get_count(plug); } /* Count on-disk pset. */ return sizeof(sdext_plug_slot_t) * count + (count ? sizeof(sdext_plug_t) : 0); } static errno_t sdext_plug_open(stat_entity_t *stat, void *hint) { sdhint_plug_t *plugh; sdext_plug_t *ext; int is_pset; uint16_t i; aal_assert("vpf-1597", stat != NULL); aal_assert("vpf-1598", hint != NULL); plugh = (sdhint_plug_t *)hint; ext = (sdext_plug_t *)stat_body(stat); is_pset = stat->plug->p.id.id == SDEXT_PSET_ID; aal_memset(plugh, 0, sizeof(sdhint_plug_t)); for (i = 0; i < sdext_plug_get_count(ext); i++) { rid_t mem, id; mem = sdext_plug_get_member(ext, i); id = sdext_plug_get_pid(ext, i); /* Check the member id valideness. */ if (mem >= PSET_STORE_LAST) return -EIO; /* Check if we met this member already. */ if (plugh->plug_mask & (1 << mem)) return -EIO; /* Obtain the plugin by the id. */ plugh->plug[mem] = sdext_pset_core->pset_ops.find( mem, id, is_pset); if (plugh->plug[mem] == INVAL_PTR) { #ifndef ENABLE_MINIMAL aal_error("Node (%llu), item (%u): Failed to find " "a plugin of the pset member (%u), id " "(%u).", place_blknr(stat->place), stat->place->pos.item, mem, id); return -EIO; #else plugh->plug[mem] = NULL; #endif } /* For those where no plugin is found but the id is correct, keep the id in plug set, remember it is a parameter. */ if (plugh->plug[mem] == NULL) plugh->plug[mem] = (void *)id; plugh->plug_mask |= (1 << mem); } return 0; } #ifndef ENABLE_MINIMAL static errno_t sdext_plug_init(stat_entity_t *stat, void *hint) { sdhint_plug_t *plugh; tree_entity_t *tree; sdext_plug_t *ext; uint16_t count = 0; uint16_t id; rid_t mem; aal_assert("vpf-1600", stat != NULL); aal_assert("vpf-1599", hint != NULL); plugh = (sdhint_plug_t *)hint; ext = (sdext_plug_t *)stat_body(stat); tree = stat->place->node->tree; for (mem = 0; mem < PSET_STORE_LAST; mem++) { /* Find the plugin to be stored. */ if (!(plugh->plug_mask & (1 << mem))) continue; sdext_plug_set_member(ext, count, mem); id = (tree->param_mask & (1 << mem)) ? ((uint32_t)plugh->plug[mem]) : plugh->plug[mem]->id.id; sdext_plug_set_pid(ext, count, id); count++; } sdext_plug_set_count(ext, count); return 0; } extern errno_t sdext_plug_check_struct(stat_entity_t *stat, repair_hint_t *hint); extern void sdext_plug_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options); #endif reiser4_sdext_plug_t sdext_pset_plug = { .p = { .id = {SDEXT_PSET_ID, 0, SDEXT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "sdext_plugin_set", .desc = "Plugin Set StatData extension plugin.", #endif }, #ifndef ENABLE_MINIMAL .init = sdext_plug_init, .info = sdext_plug_info, .print = sdext_plug_print, .check_struct = sdext_plug_check_struct, #else .info = NULL, #endif .open = sdext_plug_open, .length = sdext_plug_length }; reiser4_sdext_plug_t sdext_hset_plug = { .p = { .id = {SDEXT_HSET_ID, 0, SDEXT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "sdext_heir_set", .desc = "Heir Set StatData extension plugin.", #endif }, #ifndef ENABLE_MINIMAL .init = sdext_plug_init, .info = sdext_plug_info, .print = sdext_plug_print, .check_struct = sdext_plug_check_struct, #else .info = NULL, #endif .open = sdext_plug_open, .length = sdext_plug_length }; reiser4progs-1.0.7.orig/plugin/sdext/sdext_plug/Makefile.am0000644000175000017500000000115611131470543021567 0ustar fzfzincludedir = -I$(top_srcdir)/include sdext_plug_sources = sdext_plug.c sdext_plug_repair.c sdext_plug.h STATIC_LIBS = libsdext_plug-static.la libsdext_plug_static_la_SOURCES = $(sdext_plug_sources) libsdext_plug_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsdext_plug-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsdext_plug_minimal_la_SOURCES = $(sdext_plug_sources) libsdext_plug_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/sdext/sdext_plug/sdext_plug_repair.c0000644000175000017500000001361611131470543023423 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_lt_repair.c -- large time stat data extension plugin recovery code. */ #ifndef ENABLE_MINIMAL #include "sdext_plug.h" #include #include "sdext_plug.h" #define PSET_MEMBER_LEN 14 char *pset_name[PSET_STORE_LAST] = { [PSET_OBJ] = "object", [PSET_DIR] = "directory", [PSET_PERM] = "permission", [PSET_POLICY] = "formatting", [PSET_HASH] = "hash", [PSET_FIBRE] = "fibration", [PSET_STAT] = "statdata", [PSET_DIRITEM] = "diritem", [PSET_CRYPTO] = "crypto", [PSET_DIGEST] = "digest", [PSET_COMPRESS] = "compress", [PSET_CMODE] = "compressMode", [PSET_CLUSTER] = "cluster", [PSET_CREATE] = "create", }; errno_t sdext_plug_check_struct(stat_entity_t *stat, repair_hint_t *hint) { reiser4_place_t *place; uint64_t metmask = 0; uint64_t rmmask = 0; sdhint_plug_t plugh; sdext_plug_t *ext; uint16_t count, i; int32_t remove; uint32_t len; int is_pset; void *dst; ext = (sdext_plug_t *)stat_body(stat); count = sdext_plug_get_count(ext); place = stat->place; is_pset = stat->plug->p.id.id == SDEXT_PSET_ID; if (count > PSET_STORE_LAST) { fsck_mess("Node (%llu), item (%u), [%s]: does not " "look like a valid SD %s set extention: " "wrong member count detected (%u).", place_blknr(place), place->pos.item, print_key(sdext_pset_core, &place->key), is_pset ? "plugin" : "heir", count); return RE_FATAL; } len = sdext_plug_length(stat, NULL); if (len == 0 || stat->offset + len > place->len) { fsck_mess("Node (%llu), item (%u), [%s]: does not look like " "a valid SD %s set extention: wrong member count " "detected (%u).", place_blknr(place), place->pos.item, print_key(sdext_pset_core, &place->key), is_pset ? "plugin" : "heir", count); return RE_FATAL; } aal_memset(&plugh, 0, sizeof(sdhint_plug_t)); remove = 0; for (i = 0; i < count; i++) { rid_t mem, id; mem = sdext_plug_get_member(ext, i); id = sdext_plug_get_pid(ext, i); if (mem >= PSET_STORE_LAST) { /* Unknown member. */ fsck_mess("Node (%llu), item (%u), [%s]: the slot (%u) " "contains the invalid %s set member (%u).", place_blknr(place), place->pos.item, print_key(sdext_pset_core, &place->key), i, is_pset ? "plugin" : "heir",mem); rmmask |= (1 << i); remove++; } else if (metmask & (1 << mem)) { /* Was met already. */ fsck_mess("Node (%llu), item (%u), [%s]: the slot (%u) " "contains the %s set member (%s) that was met " "already.",place_blknr(place),place->pos.item, print_key(sdext_pset_core, &place->key), i, is_pset ? "plugin" : "heir", pset_name[mem]); rmmask |= (1 << i); remove++; } else { metmask |= (1 << i); /* Obtain the plugin. */ plugh.plug[mem] = sdext_pset_core->pset_ops.find( mem, id, is_pset); /* Check if the member is valid. */ if (plugh.plug[mem] == INVAL_PTR) { fsck_mess("Node (%llu), item (%u), [%s]: the " "slot (%u) contains the invalid %s " "set member (%s), id (%u).", place_blknr(place), place->pos.item, print_key(sdext_pset_core, &place->key), i, is_pset ? "plugin" : "heir", pset_name[mem], id); rmmask |= (1 << i); remove++; } } } if (!rmmask) return 0; /* Some broken slots are found. */ if (hint->mode != RM_BUILD) return RE_FATAL; if (remove == count) { fsck_mess("Node (%llu), item (%u), [%s]: no slot left. Does " "not look like a valid (%s) statdata extention.", place_blknr(place), place->pos.item, print_key(sdext_pset_core, &place->key), stat->plug->p.label); return RE_FATAL; } /* Removing broken slots. */ fsck_mess("Node (%llu), item (%u), [%s]: removing broken slots.", place_blknr(place), place->pos.item, print_key(sdext_pset_core, &place->key)); dst = stat_body(stat) + sizeof(sdext_plug_t); len -= sizeof(sdext_plug_t); for (i = 0; i < count; i++, dst += sizeof(sdext_plug_slot_t)) { len -= sizeof(sdext_plug_slot_t); if (!(rmmask & (1 << i))) continue; aal_memmove(dst, dst + sizeof(sdext_plug_slot_t), len); dst -= sizeof(sdext_plug_slot_t); } sdext_plug_set_count(ext, count - remove); hint->len = remove * sizeof(sdext_plug_slot_t); return 0; } void sdext_plug_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options) { reiser4_plug_t *plug; sdext_plug_t *ext; uint16_t count, i; int is_pset; aal_assert("vpf-1603", stat != NULL); aal_assert("vpf-1604", stream != NULL); ext = (sdext_plug_t *)stat_body(stat); is_pset = stat->plug->p.id.id == SDEXT_PSET_ID; if (sizeof(sdext_plug_t) + sizeof(sdext_plug_slot_t) > stat->place->len - stat->offset) { aal_stream_format(stream, "No enough space (%u bytes) " "for the %s set extention body.\n", stat->place->len - stat->offset, is_pset ? "plugin" : "heir"); return; } count = (stat->place->len - stat->offset - sizeof(sdext_plug_t)) / sizeof(sdext_plug_slot_t); if (count >= sdext_plug_get_count(ext)) { count = sdext_plug_get_count(ext); aal_stream_format(stream, "%sset count: \t%u\n", is_pset ? "P" : "H", count); } else { aal_stream_format(stream, "%sset count: \t%u (fit to " "place length %u)\n", is_pset ? "P" : "H", sdext_plug_get_count(ext), count); } for (i = 0; i < count; i++) { rid_t mem, id; mem = sdext_plug_get_member(ext, i); id = sdext_plug_get_pid(ext, i); if (mem < (uint8_t)PSET_STORE_LAST) { plug = sdext_pset_core->pset_ops.find(mem, id, is_pset); aal_stream_format(stream, " %*s : id = %u", PSET_MEMBER_LEN, pset_name[mem], id); } else { plug = NULL; aal_stream_format(stream, "%*sUNKN(0x%x) : id = %u", PSET_MEMBER_LEN - 5, "", mem, id); } if (plug && plug != INVAL_PTR) aal_stream_format(stream, " (%s)\n", plug->label); else aal_stream_format(stream, "\n"); } } #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_plug/sdext_plug.h0000644000175000017500000000223111131470543022055 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_unix.h -- stat data exception plugin, that implements unix stat data fields. */ #ifndef SDEXT_PLUGID_H #define SDEXT_PLUGID_H #include #include /* stat-data extension for files with non-standard plugin. */ typedef struct sdext_plug_slot { d16_t member; d16_t plug; } __attribute__((packed)) sdext_plug_slot_t; typedef struct sdext_plug { d16_t count; sdext_plug_slot_t slot[0]; } __attribute__((packed)) sdext_plug_t; extern reiser4_core_t *sdext_pset_core; #define sdext_plug_get_count(ext) aal_get_le16(ext, count) #define sdext_plug_set_count(ext, val) aal_set_le16(ext, count, (val)) #define sdext_plug_get_member(ext, n) aal_get_le16(&((ext)->slot[n]), member) #define sdext_plug_set_member(ext, n, val) aal_set_le16(&((ext)->slot[n]), member, (val)) #define sdext_plug_get_pid(ext, n) aal_get_le16(&((ext)->slot[n]), plug) #define sdext_plug_set_pid(ext, n, val) aal_set_le16(&((ext)->slot[n]), plug, (val)) extern uint32_t sdext_plug_length(stat_entity_t *stat, void *hint); #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_crypto/0000777000175000017500000000000011134133446020106 5ustar fzfzreiser4progs-1.0.7.orig/plugin/sdext/sdext_crypto/Makefile.in0000644000175000017500000004247011134132300022142 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/sdext/sdext_crypto DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsdext_crypro_minimal_la_LIBADD = am_libsdext_crypro_minimal_la_OBJECTS = libsdext_crypro_minimal_la_OBJECTS = \ $(am_libsdext_crypro_minimal_la_OBJECTS) libsdext_crypro_minimal_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_crypro_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsdext_crypro_minimal_la_rpath = libsdext_crypto_static_la_LIBADD = am__objects_1 = libsdext_crypto_static_la-sdext_crypto.lo \ libsdext_crypto_static_la-sdext_crypto_repair.lo am_libsdext_crypto_static_la_OBJECTS = $(am__objects_1) libsdext_crypto_static_la_OBJECTS = \ $(am_libsdext_crypto_static_la_OBJECTS) libsdext_crypto_static_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsdext_crypto_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsdext_crypro_minimal_la_SOURCES) \ $(libsdext_crypto_static_la_SOURCES) DIST_SOURCES = $(libsdext_crypro_minimal_la_SOURCES) \ $(libsdext_crypto_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sdext_crypto_sources = sdext_crypto.c sdext_crypto.h sdext_crypto_repair.c STATIC_LIBS = libsdext_crypto-static.la libsdext_crypto_static_la_SOURCES = $(sdext_crypto_sources) libsdext_crypto_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsdext_crypro-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsdext_crypro_minimal_la_SOURCES = $(sdext_crypro_sources) @ENABLE_MINIMAL_TRUE@libsdext_crypro_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/sdext/sdext_crypto/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/sdext/sdext_crypto/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsdext_crypro-minimal.la: $(libsdext_crypro_minimal_la_OBJECTS) $(libsdext_crypro_minimal_la_DEPENDENCIES) $(libsdext_crypro_minimal_la_LINK) $(am_libsdext_crypro_minimal_la_rpath) $(libsdext_crypro_minimal_la_OBJECTS) $(libsdext_crypro_minimal_la_LIBADD) $(LIBS) libsdext_crypto-static.la: $(libsdext_crypto_static_la_OBJECTS) $(libsdext_crypto_static_la_DEPENDENCIES) $(libsdext_crypto_static_la_LINK) $(libsdext_crypto_static_la_OBJECTS) $(libsdext_crypto_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_crypto_static_la-sdext_crypto.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsdext_crypto_static_la-sdext_crypto_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsdext_crypto_static_la-sdext_crypto.lo: sdext_crypto.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_crypto_static_la_CFLAGS) $(CFLAGS) -MT libsdext_crypto_static_la-sdext_crypto.lo -MD -MP -MF $(DEPDIR)/libsdext_crypto_static_la-sdext_crypto.Tpo -c -o libsdext_crypto_static_la-sdext_crypto.lo `test -f 'sdext_crypto.c' || echo '$(srcdir)/'`sdext_crypto.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_crypto_static_la-sdext_crypto.Tpo $(DEPDIR)/libsdext_crypto_static_la-sdext_crypto.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_crypto.c' object='libsdext_crypto_static_la-sdext_crypto.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_crypto_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_crypto_static_la-sdext_crypto.lo `test -f 'sdext_crypto.c' || echo '$(srcdir)/'`sdext_crypto.c libsdext_crypto_static_la-sdext_crypto_repair.lo: sdext_crypto_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_crypto_static_la_CFLAGS) $(CFLAGS) -MT libsdext_crypto_static_la-sdext_crypto_repair.lo -MD -MP -MF $(DEPDIR)/libsdext_crypto_static_la-sdext_crypto_repair.Tpo -c -o libsdext_crypto_static_la-sdext_crypto_repair.lo `test -f 'sdext_crypto_repair.c' || echo '$(srcdir)/'`sdext_crypto_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsdext_crypto_static_la-sdext_crypto_repair.Tpo $(DEPDIR)/libsdext_crypto_static_la-sdext_crypto_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdext_crypto_repair.c' object='libsdext_crypto_static_la-sdext_crypto_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsdext_crypto_static_la_CFLAGS) $(CFLAGS) -c -o libsdext_crypto_static_la-sdext_crypto_repair.lo `test -f 'sdext_crypto_repair.c' || echo '$(srcdir)/'`sdext_crypto_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/sdext/sdext_crypto/sdext_crypto_repair.c0000644000175000017500000000270611131470543024343 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_crypto_repair.c -- crypto stat data extention plugin repair code. */ #ifndef ENABLE_MINIMAL #include "sdext_crypto.h" #include void sdext_crypto_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options) { sdext_crypto_t *ext; uint16_t count, i; aal_assert("umka-1412", stat != NULL); aal_assert("umka-1413", stream != NULL); ext = (sdext_crypto_t *)stat_body(stat); aal_stream_format(stream, "key size:\t\t%u\n\t\t", sdext_crypto_get_keylen(ext)); if (!stat->info.digest) { aal_stream_format(stream, "\n"); return; } count = reiser4_keysign_size(stat->info.digest); aal_stream_format(stream, "[%u]: ", count); for (i = 0; i < count; i++) aal_stream_format(stream, "%.2x", ext->sign[i]); aal_stream_format(stream, "\n"); } errno_t sdext_crypto_check_struct(stat_entity_t *stat, repair_hint_t *hint) { uint32_t len; aal_assert("vpf-1845", stat != NULL); aal_assert("vpf-1846", stat->plug != NULL); len = sdext_crypto_length(stat, NULL); if (stat->offset + len > stat->place->len) { fsck_mess("Node (%llu), item (%u), [%s]: does not look " "like a valid (%s) statdata extension.", place_blknr(stat->place), stat->place->pos.item, print_key(sdext_crypto_core, &stat->place->key), stat->plug->p.label); return RE_FATAL; } return 0; } #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_crypto/sdext_crypto.c0000644000175000017500000000443111131470543022776 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_crypto.c -- crypto stat data extension plugin. */ #ifndef ENABLE_MINIMAL #include "sdext_crypto.h" reiser4_core_t *sdext_crypto_core = NULL; extern reiser4_sdext_plug_t sdext_crypto_plug; uint32_t sdext_crypto_length(stat_entity_t *stat, void *hint) { sdext_crypto_t e; uint16_t count; aal_assert("vpf-1842", stat != NULL || hint != NULL); if (hint) { count = ((sdhint_crypto_t *)hint)->signlen; } else { if (stat->info.digest == INVAL_PTR) { aal_error("Digest must be specified for \'%s\'.", sdext_crypto_plug.p.label); return 0; } count = reiser4_keysign_size(stat->info.digest); } return sizeof(e.keylen) + count; } static errno_t sdext_crypto_open(stat_entity_t *stat, void *hint) { sdhint_crypto_t *crch; sdext_crypto_t *ext; aal_assert("vpf-1837", stat != NULL); aal_assert("vpf-1838", hint != NULL); if (stat->info.digest == INVAL_PTR) { aal_error("Digest must be specified for \'%s\'.", sdext_crypto_plug.p.label); return -EIO; } crch = (sdhint_crypto_t *)hint; ext = (sdext_crypto_t *)stat_body(stat); crch->keylen = sdext_crypto_get_keylen(ext); crch->signlen = reiser4_keysign_size(stat->info.digest); aal_memcpy(crch->sign, ext->sign, crch->signlen); return 0; } static errno_t sdext_crypto_init(stat_entity_t *stat, void *hint) { sdhint_crypto_t *crch; sdext_crypto_t *ext; aal_assert("vpf-1839", stat != NULL); aal_assert("vpf-1840", hint != NULL); ext = (sdext_crypto_t *)stat_body(stat); crch = (sdhint_crypto_t *)hint; sdext_crypto_set_keylen(ext, crch->keylen); aal_memcpy(ext->sign, crch->sign, crch->signlen); return 0; } extern errno_t sdext_crypto_check_struct(stat_entity_t *stat, repair_hint_t *hint); extern void sdext_crypto_print(stat_entity_t *stat, aal_stream_t *stream, uint16_t options); reiser4_sdext_plug_t sdext_crypto_plug = { .p = { .id = {SDEXT_CRYPTO_ID, 0, SDEXT_PLUG_TYPE}, .label = "sdext_crypto", .desc = "Crypto stat data extension plugin.", }, .open = sdext_crypto_open, .init = sdext_crypto_init, .info = NULL, .print = sdext_crypto_print, .check_struct = NULL, .open = NULL, .length = sdext_crypto_length }; #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_crypto/sdext_crypto.h0000644000175000017500000000154611131470543023007 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sdext_crypto.h -- crypto stat data extention plugin declaration. */ #ifndef SDEXT_CRC_H #define SDEXT_CRC_H #include #include #define reiser4_keysign_size(digestid) (4 << ((uint32_t)digestid)) typedef struct sdext_crypto { /* secret key size. */ d16_t keylen; /* Signature. */ d8_t sign[0]; } __attribute__((packed)) sdext_crypto_t; extern reiser4_core_t *sdext_crypto_core; #define sdext_crypto_get_keylen(ext) aal_get_le16(ext, keylen) #define sdext_crypto_set_keylen(ext, val) aal_set_le16(ext, keylen, val) #define sdext_crypto_get_signlen(ext) aal_get_le16(ext, signlen) #define sdext_crypto_set_signlen(ext, val) aal_set_le16(ext, signlen, val) uint32_t sdext_crypto_length(stat_entity_t *stat, void *hint); #endif reiser4progs-1.0.7.orig/plugin/sdext/sdext_crypto/Makefile.am0000644000175000017500000000120511131470543022133 0ustar fzfzincludedir = -I$(top_srcdir)/include sdext_crypto_sources = sdext_crypto.c sdext_crypto.h sdext_crypto_repair.c STATIC_LIBS = libsdext_crypto-static.la libsdext_crypto_static_la_SOURCES = $(sdext_crypto_sources) libsdext_crypto_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsdext_crypro-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsdext_crypro_minimal_la_SOURCES = $(sdext_crypro_sources) libsdext_crypro_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/0000777000175000017500000000000011134133446015166 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/nodeptr40/0000777000175000017500000000000011134133446017005 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/nodeptr40/Makefile.in0000644000175000017500000004741211134132274021054 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/nodeptr40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libnodeptr40_minimal_la_LIBADD = am__libnodeptr40_minimal_la_SOURCES_DIST = nodeptr40.c \ nodeptr40_repair.c nodeptr40.h nodeptr40_repair.h am__objects_1 = libnodeptr40_minimal_la-nodeptr40.lo \ libnodeptr40_minimal_la-nodeptr40_repair.lo @ENABLE_MINIMAL_TRUE@am_libnodeptr40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libnodeptr40_minimal_la_OBJECTS = \ $(am_libnodeptr40_minimal_la_OBJECTS) libnodeptr40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libnodeptr40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libnodeptr40_minimal_la_rpath = libnodeptr40_static_la_LIBADD = am__objects_2 = libnodeptr40_static_la-nodeptr40.lo \ libnodeptr40_static_la-nodeptr40_repair.lo am_libnodeptr40_static_la_OBJECTS = $(am__objects_2) libnodeptr40_static_la_OBJECTS = $(am_libnodeptr40_static_la_OBJECTS) libnodeptr40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libnodeptr40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libnodeptr40_minimal_la_SOURCES) \ $(libnodeptr40_static_la_SOURCES) DIST_SOURCES = $(am__libnodeptr40_minimal_la_SOURCES_DIST) \ $(libnodeptr40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ nodeptr40_sources = nodeptr40.c nodeptr40_repair.c nodeptr40.h nodeptr40_repair.h STATIC_LIBS = libnodeptr40-static.la libnodeptr40_static_la_SOURCES = $(nodeptr40_sources) libnodeptr40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libnodeptr40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libnodeptr40_minimal_la_SOURCES = $(nodeptr40_sources) @ENABLE_MINIMAL_TRUE@libnodeptr40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/nodeptr40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/nodeptr40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libnodeptr40-minimal.la: $(libnodeptr40_minimal_la_OBJECTS) $(libnodeptr40_minimal_la_DEPENDENCIES) $(libnodeptr40_minimal_la_LINK) $(am_libnodeptr40_minimal_la_rpath) $(libnodeptr40_minimal_la_OBJECTS) $(libnodeptr40_minimal_la_LIBADD) $(LIBS) libnodeptr40-static.la: $(libnodeptr40_static_la_OBJECTS) $(libnodeptr40_static_la_DEPENDENCIES) $(libnodeptr40_static_la_LINK) $(libnodeptr40_static_la_OBJECTS) $(libnodeptr40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnodeptr40_minimal_la-nodeptr40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnodeptr40_minimal_la-nodeptr40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnodeptr40_static_la-nodeptr40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnodeptr40_static_la-nodeptr40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libnodeptr40_minimal_la-nodeptr40.lo: nodeptr40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnodeptr40_minimal_la_CFLAGS) $(CFLAGS) -MT libnodeptr40_minimal_la-nodeptr40.lo -MD -MP -MF $(DEPDIR)/libnodeptr40_minimal_la-nodeptr40.Tpo -c -o libnodeptr40_minimal_la-nodeptr40.lo `test -f 'nodeptr40.c' || echo '$(srcdir)/'`nodeptr40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libnodeptr40_minimal_la-nodeptr40.Tpo $(DEPDIR)/libnodeptr40_minimal_la-nodeptr40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nodeptr40.c' object='libnodeptr40_minimal_la-nodeptr40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnodeptr40_minimal_la_CFLAGS) $(CFLAGS) -c -o libnodeptr40_minimal_la-nodeptr40.lo `test -f 'nodeptr40.c' || echo '$(srcdir)/'`nodeptr40.c libnodeptr40_minimal_la-nodeptr40_repair.lo: nodeptr40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnodeptr40_minimal_la_CFLAGS) $(CFLAGS) -MT libnodeptr40_minimal_la-nodeptr40_repair.lo -MD -MP -MF $(DEPDIR)/libnodeptr40_minimal_la-nodeptr40_repair.Tpo -c -o libnodeptr40_minimal_la-nodeptr40_repair.lo `test -f 'nodeptr40_repair.c' || echo '$(srcdir)/'`nodeptr40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libnodeptr40_minimal_la-nodeptr40_repair.Tpo $(DEPDIR)/libnodeptr40_minimal_la-nodeptr40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nodeptr40_repair.c' object='libnodeptr40_minimal_la-nodeptr40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnodeptr40_minimal_la_CFLAGS) $(CFLAGS) -c -o libnodeptr40_minimal_la-nodeptr40_repair.lo `test -f 'nodeptr40_repair.c' || echo '$(srcdir)/'`nodeptr40_repair.c libnodeptr40_static_la-nodeptr40.lo: nodeptr40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnodeptr40_static_la_CFLAGS) $(CFLAGS) -MT libnodeptr40_static_la-nodeptr40.lo -MD -MP -MF $(DEPDIR)/libnodeptr40_static_la-nodeptr40.Tpo -c -o libnodeptr40_static_la-nodeptr40.lo `test -f 'nodeptr40.c' || echo '$(srcdir)/'`nodeptr40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libnodeptr40_static_la-nodeptr40.Tpo $(DEPDIR)/libnodeptr40_static_la-nodeptr40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nodeptr40.c' object='libnodeptr40_static_la-nodeptr40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnodeptr40_static_la_CFLAGS) $(CFLAGS) -c -o libnodeptr40_static_la-nodeptr40.lo `test -f 'nodeptr40.c' || echo '$(srcdir)/'`nodeptr40.c libnodeptr40_static_la-nodeptr40_repair.lo: nodeptr40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnodeptr40_static_la_CFLAGS) $(CFLAGS) -MT libnodeptr40_static_la-nodeptr40_repair.lo -MD -MP -MF $(DEPDIR)/libnodeptr40_static_la-nodeptr40_repair.Tpo -c -o libnodeptr40_static_la-nodeptr40_repair.lo `test -f 'nodeptr40_repair.c' || echo '$(srcdir)/'`nodeptr40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libnodeptr40_static_la-nodeptr40_repair.Tpo $(DEPDIR)/libnodeptr40_static_la-nodeptr40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nodeptr40_repair.c' object='libnodeptr40_static_la-nodeptr40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnodeptr40_static_la_CFLAGS) $(CFLAGS) -c -o libnodeptr40_static_la-nodeptr40_repair.lo `test -f 'nodeptr40_repair.c' || echo '$(srcdir)/'`nodeptr40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/nodeptr40/Makefile.am0000644000175000017500000000120611131470543021033 0ustar fzfzincludedir = -I$(top_srcdir)/include nodeptr40_sources = nodeptr40.c nodeptr40_repair.c nodeptr40.h nodeptr40_repair.h STATIC_LIBS = libnodeptr40-static.la libnodeptr40_static_la_SOURCES = $(nodeptr40_sources) libnodeptr40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libnodeptr40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libnodeptr40_minimal_la_SOURCES = $(nodeptr40_sources) libnodeptr40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/nodeptr40/nodeptr40.c0000644000175000017500000001033211131470543020762 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. nodeptr40.c -- reiser4 default node pointer item plugin. */ #include "nodeptr40.h" #include "nodeptr40_repair.h" reiser4_core_t *nodeptr40_core = NULL; /* Returns the number of units in nodeptr. As nodeptr40 has not units and thus cannot be splitted by balancing, it has one unit. */ static uint32_t nodeptr40_units(reiser4_place_t *place) { return 1; } /* Fetches nodeptr into passed @hint */ static int64_t nodeptr40_fetch_units(reiser4_place_t *place, trans_hint_t *hint) { nodeptr40_t *nodeptr; ptr_hint_t *ptr_hint; aal_assert("umka-1420", hint != NULL); aal_assert("umka-1419", place != NULL); nodeptr = nodeptr40_body(place); ptr_hint = (ptr_hint_t *)hint->specific; ptr_hint->width = 1; ptr_hint->start = np40_get_ptr(nodeptr); return 1; } #ifndef ENABLE_MINIMAL /* Update nodeptr block number by passed @blk. */ static errno_t nodeptr40_update_units(reiser4_place_t *place, trans_hint_t *hint) { ptr_hint_t *ptr; aal_assert("umka-2667", place != NULL); aal_assert("vpf-1863", hint != NULL); ptr = (ptr_hint_t *)hint->specific; np40_set_ptr(nodeptr40_body(place), ptr->start); place_mkdirty(place); return 1; } /* Layout implementation for nodeptr40. It calls @geion_func for each block nodeptr points to. */ static errno_t nodeptr40_layout(reiser4_place_t *place, region_func_t region_func, void *data) { blk_t blk; aal_assert("umka-1749", place != NULL); aal_assert("umka-2354", place->body != NULL); aal_assert("umka-1750", region_func != NULL); blk = np40_get_ptr(nodeptr40_body(place)); return region_func(blk, 1, data); } /* Estimates how many bytes is needed for creating new nodeptr */ static errno_t nodeptr40_prep_insert(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("vpf-068", hint != NULL); aal_assert("umka-2436", place != NULL); hint->overhead = 0; hint->len = sizeof(nodeptr40_t); return 0; } /* Writes of the specified nodeptr into passed @place */ static int64_t nodeptr40_insert_units(reiser4_place_t *place, trans_hint_t *hint) { nodeptr40_t *nodeptr; ptr_hint_t *ptr_hint; aal_assert("umka-1424", hint != NULL); aal_assert("umka-1423", place != NULL); nodeptr = nodeptr40_body(place); ptr_hint = (ptr_hint_t *)hint->specific; np40_set_ptr(nodeptr, ptr_hint->start); place_mkdirty(place); return 1; } /* Removes nodeptr unit. Asit is always one, we only set up passed @hint here by sizeof nodeptr40_t struct. */ static errno_t nodeptr40_remove_units(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("umka-3029", hint != NULL); aal_assert("umka-3028", place != NULL); hint->overhead = 0; hint->len = sizeof(nodeptr40_t); return 0; } #endif static item_balance_ops_t balance_ops = { #ifndef ENABLE_MINIMAL .merge = NULL, .prep_shift = NULL, .shift_units = NULL, .maxreal_key = NULL, .update_key = NULL, .mergeable = NULL, .collision = NULL, .overhead = NULL, #endif .init = NULL, .lookup = NULL, .fetch_key = NULL, .maxposs_key = NULL, .units = nodeptr40_units }; static item_object_ops_t object_ops = { #ifndef ENABLE_MINIMAL .layout = nodeptr40_layout, .prep_insert = nodeptr40_prep_insert, .insert_units = nodeptr40_insert_units, .remove_units = nodeptr40_remove_units, .prep_write = NULL, .write_units = NULL, .update_units = nodeptr40_update_units, .trunc_units = NULL, .size = NULL, .bytes = NULL, #endif .read_units = NULL, .fetch_units = nodeptr40_fetch_units }; #ifndef ENABLE_MINIMAL static item_repair_ops_t repair_ops = { .check_struct = nodeptr40_check_struct, .check_layout = nodeptr40_check_layout, .prep_insert_raw = NULL, .insert_raw = NULL, .pack = NULL, .unpack = NULL }; static item_debug_ops_t debug_ops = { .print = nodeptr40_print, }; #endif reiser4_item_plug_t nodeptr40_plug = { .p = { .id = {ITEM_NODEPTR40_ID, PTR_ITEM, ITEM_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "nodeptr40", .desc = "Node pointer item plugin.", #endif }, .object = &object_ops, .balance = &balance_ops, #ifndef ENABLE_MINIMAL .repair = &repair_ops, .debug = &debug_ops #endif }; reiser4progs-1.0.7.orig/plugin/item/nodeptr40/nodeptr40_repair.h0000644000175000017500000000121511131470543022331 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. nodeptr40_repair.h -- reiser4 nodeptr repair functions. */ #ifndef NODEPTR40_REPAIR_H #define NODEPTR40_REPAIR_H #ifndef ENABLE_MINIMAL #include #include extern void nodeptr40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options); extern errno_t nodeptr40_check_struct(reiser4_place_t *place, repair_hint_t *hint); extern errno_t nodeptr40_check_layout(reiser4_place_t *place, repair_hint_t *hint, region_func_t func, void *data); #endif #endif reiser4progs-1.0.7.orig/plugin/item/nodeptr40/nodeptr40_repair.c0000644000175000017500000000270211131470543022326 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. nodeptr40_repair.c -- repair default node pointer item plugin methods. */ #ifndef ENABLE_MINIMAL #include "nodeptr40.h" #include errno_t nodeptr40_check_layout(reiser4_place_t *place, repair_hint_t *hint, region_func_t region_func, void *data) { nodeptr40_t *nodeptr; blk_t blk; errno_t res; aal_assert("vpf-721", place != NULL); nodeptr = nodeptr40_body(place); blk = np40_get_ptr(nodeptr); res = region_func(blk, 1, data); if (res > 0) { fsck_mess("Node (%llu), item (%u): wrong pointer to " "the block %llu.%s", place_blknr(place), place->pos.item, blk, hint->mode == RM_BUILD ? " Removed." : ""); if (hint->mode == RM_BUILD) { hint->len = place->len; return 0; } return RE_FATAL; } else if (res < 0) { return res; } return 0; } errno_t nodeptr40_check_struct(reiser4_place_t *place, repair_hint_t *hint) { aal_assert("vpf-751", place != NULL); return place->len != sizeof(nodeptr40_t) ? RE_FATAL : 0; } /* Prints passed nodeptr into @stream */ void nodeptr40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options) { nodeptr40_t *nodeptr; aal_assert("umka-544", place != NULL); aal_assert("umka-545", stream != NULL); nodeptr = nodeptr40_body(place); aal_stream_format(stream, " [%llu]\n", np40_get_ptr(nodeptr)); } #endif reiser4progs-1.0.7.orig/plugin/item/nodeptr40/nodeptr40.h0000644000175000017500000000077711131470543021003 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. nodeptr40.h -- reiser4 nodeptr item structures. */ #ifndef NODEPTR40_H #define NODEPTR40_H #include #include extern reiser4_core_t *nodeptr40_core; typedef struct nodeptr40 { d64_t ptr; } nodeptr40_t; #define nodeptr40_body(place) ((nodeptr40_t *)place->body) #define np40_get_ptr(np) aal_get_le64(np, ptr) #define np40_set_ptr(np, val) aal_set_le64(np, ptr, val) #endif reiser4progs-1.0.7.orig/plugin/item/cde40/0000777000175000017500000000000011134133446016065 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/cde40/cde40_repair.h0000644000175000017500000000122511131470543020472 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. cde40_repair.h -- reiser4 directory entry plugin repair functions. */ #ifndef CDE40_REPAIR_H #define CDE40_REPAIR_H #ifndef ENABLE_MINIMAL #include #include extern errno_t cde40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t cde40_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t cde40_check_struct(reiser4_place_t *place, repair_hint_t *hint); extern void cde40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options); #endif #endif reiser4progs-1.0.7.orig/plugin/item/cde40/cde40.c0000644000175000017500000007222511131470543017133 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. cde40.c -- reiser4 directory entry plugin. */ #include "cde40.h" #include "cde40_repair.h" reiser4_core_t *cde40_core = NULL; inline uint32_t cde40_key_pol(reiser4_place_t *place) { return plugcall(place->key.plug, bodysize); } /* Returns pointer to entry */ inline void *cde40_entry(reiser4_place_t *place, uint32_t pos) { return cde_get_entry(place, pos, cde40_key_pol(place)); } /* Returns pointer to the objectid entry component. */ inline void *cde40_objid(reiser4_place_t *place, uint32_t pos) { return (place->body + en_get_offset(cde40_entry(place, pos), cde40_key_pol(place))); } /* Returns pointer to entry offset */ static inline void *cde40_hash(reiser4_place_t *place, uint32_t pos) { return cde40_entry(place, pos); } /* Returns statdata key of the object entry points to */ static void cde40_get_obj(reiser4_place_t *place, uint32_t pos, reiser4_key_t *key) { aal_memset(key, 0, sizeof(*key)); key->plug = place->key.plug; aal_memcpy(key->body, cde40_objid(place, pos), ob_size(cde40_key_pol(place))); } /* Stores entry offset (hash) to passed @key */ errno_t cde40_get_hash(reiser4_place_t *place, uint32_t pos, reiser4_key_t *key) { void *hash; uint32_t pol; uint64_t locality; pol = cde40_key_pol(place); hash = cde40_hash(place, pos); /* Getting item key params */ locality = objcall(&place->key, get_locality); /* Building the full key from entry at @place */ plugcall(place->key.plug, build_generic, key, KEY_FILENAME_TYPE, locality, ha_get_ordering(hash, pol), ha_get_objectid(hash, pol), ha_get_offset(hash, pol)); return 0; } #ifndef ENABLE_MINIMAL /* Set the key for the entry->offset. It is needed for fixing entry keys if repair code detects it is wrong. */ errno_t cde40_set_hash(reiser4_place_t *place, uint32_t pos, reiser4_key_t *key) { void *hash; uint32_t pol; uint64_t offset; uint64_t objectid; uint64_t ordering; pol = cde40_key_pol(place); hash = cde40_hash(place, pos); ordering = objcall(&place->key, get_ordering); objectid = objcall(&place->key, get_fobjectid); offset = objcall(&place->key, get_offset); ha_set_ordering(hash, ordering, pol); ha_set_objectid(hash, objectid, pol); ha_set_offset(hash, offset, pol); return 0; } #endif /* Extracts entry name from the passed @entry to passed @buff */ char *cde40_get_name(reiser4_place_t *place, uint32_t pos, char *buff, uint32_t len) { reiser4_key_t key; cde40_get_hash(place, pos, &key); /* If name is long, we just copy it from the area after objectid. Otherwise we extract it from the entry hash. */ if (objcall(&key, hashed)) { char *ptr = (char *)(cde40_objid(place, pos) + ob_size(cde40_key_pol(place))); aal_strncpy(buff, ptr, len); } else { objcall(&key, get_name, buff); } return buff; } #ifndef ENABLE_MINIMAL /* Calculates entry length. This function is widely used in shift code and modification code. */ static uint32_t cde40_get_len(reiser4_place_t *place, uint32_t pos) { uint32_t len; uint32_t pol; reiser4_key_t key; /* Counting objid size */ pol = cde40_key_pol(place); len = ob_size(pol); /* Getting entry key */ cde40_get_hash(place, pos, &key); /* If entry contains long name it is stored just after objectid. Otherwise, entry name is stored in objectid and offset of the entry. This trick saves a lot of space in directories, because the average name is shorter than 15 symbols. */ if (objcall(&key, hashed)) { len += aal_strlen((char *)(cde40_objid(place, pos) + ob_size(pol))) + 1; } return len; } /* Updates entry offset. It is needed for fixing entry keys if repair code detects it is wrong. */ errno_t cde40_update_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("vpf-1228", key != NULL); aal_assert("vpf-1229", place != NULL); aal_assert("vpf-1230", place->body != NULL); return cde40_set_hash(place, place->pos.unit, key); } #endif /* Builds full key by entry components. It is needed for updating keys after shift, insert, etc. Also library requires unit keys sometims. */ errno_t cde40_fetch_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("umka-1606", key != NULL); aal_assert("umka-1607", place != NULL); aal_assert("umka-1605", place->body != NULL); return cde40_get_hash(place, place->pos.unit, key); } /* Returns the number of units. */ uint32_t cde40_units(reiser4_place_t *place) { aal_assert("umka-865", place != NULL); return cde_get_units(place); } /* Fetches some number of cde items to passed @hint. */ static int64_t cde40_fetch_units(reiser4_place_t *place, trans_hint_t *hint) { uint32_t i, pos; entry_hint_t *entry; aal_assert("umka-1418", hint != NULL); aal_assert("umka-866", place != NULL); pos = place->pos.unit; entry = (entry_hint_t *)hint->specific; for (i = pos; i < pos + hint->count; i++, entry++) { /* Get object stat data key. */ cde40_get_obj(place, i, &entry->object); /* Get entry key (hash). */ cde40_get_hash(place, i, &entry->offset); /* Extract entry name. */ cde40_get_name(place, i, entry->name, sizeof(entry->name)); } return hint->count; } #ifndef ENABLE_MINIMAL uint16_t cde40_overhead() { return sizeof(cde40_t); } /* Returns 1 if items are mergeable, 0 -- otherwise. That is if they belong to the same directory. This function is used in shift code from the node plugin in order to determine are two items may be merged or not. */ static int cde40_mergeable(reiser4_place_t *place1, reiser4_place_t *place2) { aal_assert("umka-1581", place1 != NULL); aal_assert("umka-1582", place2 != NULL); /* Items mergeable if their short keys match. */ return !objcall(&place1->key, compshort, &place2->key); } /* Calculates the size of @count units (entries) in passed @place at passed @pos. */ uint32_t cde40_regsize(reiser4_place_t *place, uint32_t pos, uint32_t count) { uint32_t pol; uint32_t size; void *entry_end; void *entry_start; if (count == 0) return 0; pol = cde40_key_pol(place); entry_start = cde40_entry(place, pos); if (pos + count < cde_get_units(place)) { size = 0; entry_end = cde40_entry(place, pos + count); } else { entry_end = cde40_entry(place, pos + count - 1); size = cde40_get_len(place, pos + count - 1); } size += (en_get_offset(entry_end, pol) - en_get_offset(entry_start, pol)); return size; } /* Makes copy of @count amount of units from @src_item to @dst_one */ errno_t cde40_copy(reiser4_place_t *dst, uint32_t dst_pos, reiser4_place_t *src, uint32_t src_pos, uint32_t count) { uint32_t i; void *entry; uint32_t pol; uint32_t size; uint32_t offset; uint32_t headers; void *dstp, *srcp; uint32_t dst_units; aal_assert("umka-2069", dst != NULL); aal_assert("umka-2070", src != NULL); pol = cde40_key_pol(dst); dst_units = cde40_units(dst); aal_assert("umka-2077", dst_pos <= dst_units); /* Getting offset of body in dst place. Do not just call regsize because in the case of expanding dst_pos offset points to the wrong place. */ offset = dst_pos ? cde40_regsize(dst, 0, dst_pos - 1) + cde40_get_len(dst, dst_pos - 1) : 0; /* Copying entry headers */ srcp = src->body + sizeof(cde40_t) + (src_pos * en_size(pol)); dstp = dst->body + sizeof(cde40_t) + (dst_pos * en_size(pol)); headers = count * en_size(pol); aal_memcpy(dstp, srcp, headers); /* Copying entry bodies */ srcp = src->body + en_get_offset(srcp, pol); dstp = dst->body + sizeof(cde40_t) + (dst_units * en_size(pol)) + headers + offset; size = cde40_regsize(src, src_pos, count); aal_memcpy(dstp, srcp, size); /* Updating offset of dst cde */ entry = cde40_entry(dst, dst_pos); offset += sizeof(cde40_t) + (dst_units * en_size(pol)) + headers; for (i = 0; i < count; i++) { en_set_offset(entry, offset, pol); offset += cde40_get_len(src, src_pos + i); entry += en_size(pol); } /* Updating cde units */ cde_inc_units(dst, count); /* Updating item key by unit key if the first unit waqs changed. It is needed for correct updating left delimiting keys. */ if (dst_pos == 0) { cde40_get_hash(dst, 0, &dst->key); } place_mkdirty(dst); return 0; } /* Shrinks cde item in order to delete some entries */ static uint32_t cde40_shrink(reiser4_place_t *place, uint32_t pos, uint32_t count) { uint32_t units, len, pol; void *entry; aal_assert("vpf-1561", place != NULL); pol = cde40_key_pol(place); units = cde_get_units(place); aal_assert("vpf-1562", pos < units); if (pos + count > units) count = units - pos; if (count == 0) return 0; /* Get the length of the item on the basis of the last unit. */ entry = cde40_entry(place, units - 1); len = en_get_offset(entry, pol) + cde40_get_len(place, units - 1); return cde40_cut(place, pos, count, len); } /* Cuts some units from cde item without analyzing the unit content, namely without calling cde40_get_len. @len is the length of the item. */ uint32_t cde40_cut(reiser4_place_t *place, uint32_t pos, uint32_t count, uint32_t len) { void *entry; uint32_t pol; uint32_t i, units; uint32_t first, second; uint32_t headers, remove; aal_assert("umka-1959", place != NULL); pol = cde40_key_pol(place); units = cde_get_units(place); aal_assert("umka-1681", pos < units); if (pos + count > units) count = units - pos; if (count == 0) return 0; headers = count * en_size(pol); /* Getting how many bytes should be moved before passed @pos */ first = (units - (pos + count)) * en_size(pol); first += cde40_regsize(place, 0, pos); /* Getting how many bytes should be moved after passed @pos */ entry = cde40_entry(place, pos + count); second = (pos + count == units) ? 0 : len - en_get_offset(entry, pol); /* Getting how many bytes should be removed */ entry = cde40_entry(place, pos); remove = (pos + count == units) ? len - en_get_offset(entry, pol) : cde40_regsize(place, pos, count); /* Moving headers and first part of bodies (before passed @pos) */ entry = cde40_entry(place, pos); aal_memmove(entry, entry + (en_size(pol) * count), first); /* Setting up the entry offsets */ entry = cde40_entry(place, 0); for (i = 0; i < pos; i++) { en_dec_offset(entry, headers, pol); entry += en_size(pol); } /* We also move the rest of the data (after insert point) if needed. */ if (second > 0) { void *src, *dst; entry = cde40_entry(place, pos); src = place->body + en_get_offset(entry, pol); dst = src - (headers + remove); aal_memmove(dst, src, second); /* Setting up entry offsets */ for (i = pos; i < units - count; i++) { entry = cde40_entry(place, i); en_dec_offset(entry, (headers + remove), pol); } } cde_dec_units(place, count); place_mkdirty(place); return remove + headers; } /* Prepares cde40 for insert new entries */ uint32_t cde40_expand(reiser4_place_t *place, uint32_t pos, uint32_t count, uint32_t len) { void *entry; uint32_t pol; uint32_t first; void *src, *dst; uint32_t second; uint32_t offset; uint32_t headers; uint32_t i, units; aal_assert("umka-1724", len > 0); aal_assert("umka-1724", count > 0); aal_assert("umka-1723", place != NULL); pol = cde40_key_pol(place); units = cde_get_units(place); headers = (count * en_size(pol)); aal_assert("umka-1722", pos <= units); /* Getting the offset of the current place. */ if (units > 0) { if (pos < units) { entry = cde40_entry(place, pos); offset = en_get_offset(entry, pol); } else { entry = cde40_entry(place, units - 1); offset = en_get_offset(entry, pol) + cde40_get_len(place, units - 1); } } else { offset = sizeof(cde40_t); } /* Calculating length bytes to be moved before insert point. */ first = (units - pos) * en_size(pol); first += cde40_regsize(place, 0, pos); /* Calculating length bytes to be moved after insert point. */ second = cde40_regsize(place, pos, units - pos); /* Updating offset of entries which lie before insert point. */ entry = cde40_entry(place, 0); for (i = 0; i < pos; i++) { en_inc_offset(entry, headers, pol); entry += en_size(pol); } /* Updating offset of entries which lie after insert point. */ entry = cde40_entry(place, pos); for (i = pos; i < units; i++) { en_inc_offset(entry, len, pol); entry += en_size(pol); } /* Moving entry bodies if it is needed. */ if (pos < units) { src = place->body + offset; dst = src + len; aal_memmove(dst, src, second); } /* Moving unit headers if it is needed. */ if (first > 0) { src = cde40_entry(place, pos); dst = src + headers; aal_memmove(dst, src, first); } place_mkdirty(place); return offset + headers; } /* Predicts how many entries and bytes can be shifted from the @src_place to @dst_place. The behavior of the function depends on the passed @hint. */ static errno_t cde40_prep_shift(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { int check; uint32_t pol; uint32_t curr; uint32_t flags; uint32_t src_units; uint32_t dst_units; uint32_t space, len; aal_assert("umka-1592", hint != NULL); aal_assert("umka-1591", src_place != NULL); hint->units_number = 0; space = hint->units_bytes; pol = cde40_key_pol(src_place); src_units = cde40_units(src_place); dst_units = dst_place ? cde40_units(dst_place) : 0; /* If hint's create flag is present, we need to create new cde item, so we should count its overhead. */ if (hint->create) { if (space < sizeof(cde40_t)) return 0; /* There is only space for header. Getting us out. */ if (!(space -= sizeof(cde40_t))) return 0; } flags = hint->control; /* Getting start item header needed inside loop. */ curr = (hint->control & SF_ALLOW_LEFT ? 0 : src_units - 1); /* If we need to check insert point. */ check = (src_place->pos.item == hint->pos.item && hint->pos.unit != MAX_UINT32); while (!(hint->result & SF_MOVE_POINT) && curr < cde40_units(src_place)) { /* Check if we have already moved everything possible and are on edge of item and will be moved to neighbour item. */ if (check && (flags & SF_UPDATE_POINT)) { if (!(flags & SF_MOVE_POINT)) { if (flags & SF_ALLOW_LEFT) { if (hint->pos.unit == 0) break; } else { if (hint->pos.unit == src_units) break; } } } /* Check is we have enough free space for shifting one more unit from src item to dst item. */ len = cde40_get_len(src_place, curr); if (space < len + en_size(pol)) break; /* Updating unit pos. We will do so in the case item component of insert point is the same as current item has and unit component is not MAX_UINT32. */ if (check && (flags & SF_UPDATE_POINT)) { if (flags & SF_ALLOW_LEFT) { /* Insert point is near to be moved into left neighbour. Checking if we are permitted to do so and updating insert point. */ if (hint->pos.unit == 0) { if (flags & SF_MOVE_POINT) { hint->result |= SF_MOVE_POINT; hint->pos.unit = dst_units; } break; } else { hint->pos.unit--; } } else { if (hint->pos.unit >= src_units) { /* Insert point is near to be shifted in right neighbour. Checking permissions and updating unit component of insert point int hint. */ if (flags & SF_MOVE_POINT) { hint->result |= SF_MOVE_POINT; hint->pos.unit = 0; } break; } } } /* Updating unit number counters and some local variables needed for controlling predicting main cycle. */ src_units--; dst_units++; hint->units_number++; space -= (len + en_size(pol)); curr += (flags & SF_ALLOW_LEFT ? 1 : -1); } /* Updating @hint->units_bytes. It is needed for unit shifting. This value is number of bytes to be moved from @src_place to @dst_place. */ if (hint->units_number > 0) hint->units_bytes -= space; return 0; } /* Makes shift of the entries from the @src_place to the @dst_place. */ static errno_t cde40_shift_units(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { uint32_t src_pos, dst_pos; aal_assert("umka-1589", hint != NULL); aal_assert("umka-1586", src_place != NULL); aal_assert("umka-1587", dst_place != NULL); /* Initializing cde body if we shift data to new created item. This is needed for correct work of cde plugin. */ if (hint->create) { hint->units_bytes -= sizeof(cde40_t); ((cde40_t *)dst_place->body)->units = 0; } /* Calculating src and dst positions for expanding dst item, copy data to it and shrinking src item. */ if (hint->control & SF_ALLOW_LEFT) { src_pos = 0; dst_pos = cde_get_units(dst_place); } else { dst_pos = 0; src_pos = cde_get_units(src_place) - hint->units_number; } /* Preparing root for copying units into it. */ cde40_expand(dst_place, dst_pos, hint->units_number, hint->units_bytes); /* Copying units from @src place to @dst one. */ cde40_copy(dst_place, dst_pos, src_place, src_pos, hint->units_number); cde40_shrink(src_place, src_pos, hint->units_number); /* Updating item key by first cde key. */ if (cde_get_units(src_place) > 0 && hint->control & SF_ALLOW_LEFT) { cde40_get_hash(src_place, 0, &src_place->key); } return 0; } /* Estimates how many bytes will be needed to make room for inserting new entries. */ static errno_t cde40_prep_insert(reiser4_place_t *place, trans_hint_t *hint) { uint32_t i, pol; entry_hint_t *entry; aal_assert("vpf-095", hint != NULL); aal_assert("umka-2424", place != NULL); aal_assert("umka-2229", hint->count > 0); pol = plugcall(hint->offset.plug, bodysize); entry = (entry_hint_t *)hint->specific; hint->len = (hint->count * en_size(pol)); for (i = 0; i < hint->count; i++, entry++) { hint->len += ob_size(pol); /* Calling key plugin for in odrer to find out is passed name is long one or not. */ if (objcall(&entry->offset, hashed)) { /* Okay, name is long, so we need add its length to estimated length. */ hint->len += aal_strlen(entry->name) + 1; } } hint->bytes = hint->len; /* If the pos we are going to insert new units is -1, we assume it is the attempt to insert new directory item. In this case we should also count item overhead, that is cde40 header which contains the number of entries in item. */ hint->overhead = cde40_overhead(); return 0; } /* Inserts new entries to cde item. */ static int64_t cde40_insert_units(reiser4_place_t *place, trans_hint_t *hint) { void *entry; uint32_t pol, i, offset; entry_hint_t *entry_hint; aal_assert("umka-792", hint != NULL); aal_assert("umka-791", place != NULL); pol = cde40_key_pol(place); entry_hint = (entry_hint_t *)hint->specific; /* Initialize body and normalize unit pos in the case of insert new item. */ if (place->pos.unit == MAX_UINT32) { ((cde40_t *)place->body)->units = 0; place->pos.unit = 0; } /* Expanding direntry in order to prepare the room for new entries. The function cde40_expand() returns the offset of where new unit will be inserted at. */ offset = cde40_expand(place, place->pos.unit, hint->count, hint->len); entry = cde40_entry(place, place->pos.unit); /* Creating new entries */ for (i = 0; i < hint->count; i++, entry_hint++) { void *objid; uint64_t oid; uint64_t off; uint64_t ord; reiser4_key_t *hash; reiser4_key_t *object; objid = place->body + offset; /* Setting up the offset of new entry */ en_set_offset(entry, offset, pol); hash = &entry_hint->offset; /* Setting up ordering component of hash */ ord = objcall(hash, get_ordering); ha_set_ordering(entry, ord, pol); /* Setting up objectid component of hash */ oid = objcall(hash, get_fobjectid); ha_set_objectid(entry, oid, pol); /* Setting up offset component of hash */ off = objcall(hash, get_offset); ha_set_offset(entry, off, pol); /* Setting up objid fields */ object = &entry_hint->object; aal_memcpy(objid, object->body, ob_size(pol)); offset += ob_size(pol); /* If key is long one we also count name length */ if (objcall(&entry_hint->offset, hashed)) { uint32_t len = aal_strlen(entry_hint->name); aal_memcpy(place->body + offset, entry_hint->name, len); offset += len; *((char *)place->body + offset) = '\0'; offset++; } entry += en_size(pol); } cde_inc_units(place, hint->count); /* Updating item key by unit key if the first unit was changed. It is needed for correct updating left delimiting keys. */ if (place->pos.unit == 0) cde40_get_hash(place, 0, &place->key); place_mkdirty(place); return hint->count; } /* Remove some number of entries (based on passed @hint) from cde40 item starting from @pos. */ errno_t cde40_delete(reiser4_place_t *place, uint32_t pos, trans_hint_t *hint) { uint32_t pol; aal_assert("umka-3024", pos < cde40_units(place)); pol = cde40_key_pol(place); /* Shrinking cde item */ hint->bytes = hint->len = cde40_shrink(place, pos, hint->count); /* Updating item key */ if (pos == 0 && cde40_units(place) > 0) cde40_get_hash(place, 0, &place->key); /* Setting up cde item overhead in the case we removed all units. */ hint->overhead = (cde40_units(place) == 0) ? cde40_overhead() : 0; return 0; } /* Removes @count entries at @pos from passed @place */ static errno_t cde40_remove_units(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("umka-934", place != NULL); aal_assert("umka-2400", hint != NULL); return cde40_delete(place, place->pos.unit, hint); } /* Fuses bodies of two cde items that lie in the same node. */ static int32_t cde40_merge(reiser4_place_t *left_place, reiser4_place_t *right_place) { void *buf; void *entry; uint32_t pol; uint32_t size; uint32_t offset; uint32_t i, units; aal_assert("umka-2687", left_place != NULL); aal_assert("umka-2689", right_place != NULL); pol = cde40_key_pol(left_place); units = cde_get_units(left_place); /* Right entry headers to be copied to buffer. */ size = cde_get_units(right_place) * en_size(pol); /* Offset of left entry bodies. */ offset = sizeof(cde40_t) + cde_get_units(left_place) * en_size(pol); /* Set the correct amount of units. */ cde_inc_units(left_place, cde_get_units(right_place)); /* Eliminating right item header and return header size as space released as result of merge. */ aal_memmove(right_place->body, right_place->body + sizeof(cde40_t), right_place->len - sizeof(cde40_t)); /* Allocate the buffer for the right entry headers and copy them. */ buf = aal_malloc(size); aal_memcpy(buf, right_place->body, size); /* Move left item bodies to the right. */ aal_memmove(left_place->body + offset + size, left_place->body + offset, left_place->len - offset); /* Copy the right entry headers to the freed space in the left item. */ aal_memcpy(left_place->body + offset, buf, size); aal_free(buf); offset = size; entry = cde40_entry(left_place, 0); /* Update left offsets. */ for (i = 0; i < units; i++) { en_inc_offset(entry, offset, pol); entry += en_size(pol); } offset = left_place->len - sizeof(cde40_t); entry = cde40_entry(left_place, units); /* Update right offsets. */ for (i = units; i < cde_get_units(left_place); i++) { en_inc_offset(entry, offset, pol); entry += en_size(pol); } return sizeof(cde40_t); } /* Returns real maximal key in cde item */ static errno_t cde40_maxreal_key(reiser4_place_t *place, reiser4_key_t *key) { uint32_t units; aal_assert("umka-1651", key != NULL); aal_assert("umka-1650", place != NULL); units = cde40_units(place); return cde40_get_hash(place, units - 1, key); } static uint64_t cde40_size(reiser4_place_t *place) { aal_assert("umka-2677", place != NULL); return cde40_units(place); } static uint64_t cde40_bytes(reiser4_place_t *place) { aal_assert("vpf-1211", place != NULL); return (place->len - sizeof(uint16_t)); } lookup_t cde40_collision(reiser4_place_t *place, coll_hint_t *hint) { reiser4_key_t hash; uint32_t units; char name[256]; aal_assert("vpf-1548", place != NULL); aal_assert("vpf-1549", hint != NULL); aal_assert("vpf-1549", hint->type == DIR_ITEM); if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; units = cde40_units(place); if (place->pos.unit >= units) return ABSENT; cde40_get_hash(place, place->pos.unit, &hash); for (; place->pos.unit < units; place->pos.unit++) { /* Compare the key first. If differs, there is no match. */ if (cde40_comp_hash(place, place->pos.item, &hash)) return ABSENT; /* Key matches, comp the name. It may happen only with not packed names. */ cde40_get_name(place, place->pos.item, name, 256); if (!aal_strcmp(name, hint->specific)) return PRESENT; /* Names are not sorted. Continue. */ } return ABSENT; } #endif /* Returns maximal possible key in passed item. It is needed during lookup and in other cases. */ errno_t cde40_maxposs_key(reiser4_place_t *place, reiser4_key_t *key) { reiser4_key_t *maxkey; aal_assert("umka-1649", key != NULL); aal_assert("umka-1648", place != NULL); aal_memcpy(key, &place->key, sizeof(*key)); /* Getting maximal key from current key plugin. */ maxkey = plugcall(key->plug, maximal); /* Setting up @key by mans of putting to it offset, ordering and objectid from values from maximal key. */ plugcall(key->plug, set_ordering, key, objcall(maxkey, get_ordering)); plugcall(key->plug, set_objectid, key, objcall(maxkey, get_objectid)); plugcall(key->plug, set_offset, key, objcall(maxkey, get_offset)); return 0; } /* Compare the given key with the entry at the given pos. */ int cde40_comp_hash(reiser4_place_t *place, uint32_t pos, reiser4_key_t *key) { reiser4_key_t curr; cde40_get_hash(place, pos, &curr); return objcall(&curr, compfull, key); } /* Helper function that is used by lookup method for comparing given key with passed entry hash. */ static int cb_comp_hash(void *array, uint32_t pos, void *key, void *data) { return cde40_comp_hash((reiser4_place_t *)data, pos, (reiser4_key_t *)key); } /* Performs lookup inside cde item. Found position is stored in @pos. */ lookup_t cde40_lookup(reiser4_place_t *place, lookup_hint_t *hint, lookup_bias_t bias) { #ifndef ENABLE_MINIMAL int32_t i; #endif aal_assert("umka-610", hint != NULL); aal_assert("umka-609", place != NULL); /* Bin search within the cde item to get the position of the wanted key. */ switch (aux_bin_search(place->body, cde40_units(place), hint->key, cb_comp_hash, place, &place->pos.unit)) { case 1: #ifndef ENABLE_MINIMAL /* Making sure, that we have found right unit. This is needed because of possible key collision. We move left direction until we find a key smaller than passed one. */ for (i = place->pos.unit - 1; i >= 0; i--) { /* Comparing keys. We break the loop when keys as not equal, that means, that we have found needed pos. */ if (!cde40_comp_hash(place, i, hint->key)) place->pos.unit = i; else return PRESENT; } #endif return PRESENT; case 0: return (bias == FIND_CONV ? PRESENT : ABSENT); default: return -EIO; } } static item_balance_ops_t balance_ops = { #ifndef ENABLE_MINIMAL .merge = cde40_merge, .mergeable = cde40_mergeable, .prep_shift = cde40_prep_shift, .shift_units = cde40_shift_units, .maxreal_key = cde40_maxreal_key, .update_key = cde40_update_key, .collision = cde40_collision, .overhead = cde40_overhead, #endif .init = NULL, .units = cde40_units, .lookup = cde40_lookup, .fetch_key = cde40_fetch_key, .maxposs_key = cde40_maxposs_key }; static item_object_ops_t object_ops = { .fetch_units = cde40_fetch_units, #ifndef ENABLE_MINIMAL .prep_insert = cde40_prep_insert, .insert_units = cde40_insert_units, .remove_units = cde40_remove_units, .size = cde40_size, .bytes = cde40_bytes, .update_units = NULL, .prep_write = NULL, .write_units = NULL, .trunc_units = NULL, .layout = NULL, #endif .read_units = NULL }; #ifndef ENABLE_MINIMAL static item_debug_ops_t debug_ops = { .print = cde40_print }; static item_repair_ops_t repair_ops = { .check_struct = cde40_check_struct, .check_layout = NULL, .prep_insert_raw = cde40_prep_insert_raw, .insert_raw = cde40_insert_raw, .pack = NULL, .unpack = NULL }; #endif reiser4_item_plug_t cde40_plug = { .p = { .id = {ITEM_CDE40_ID, DIR_ITEM, ITEM_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "cde40", .desc = "Compound directory entry item plugin.", #endif }, .object = &object_ops, .balance = &balance_ops, #ifndef ENABLE_MINIMAL .repair = &repair_ops, .debug = &debug_ops #endif }; reiser4progs-1.0.7.orig/plugin/item/cde40/Makefile.in0000644000175000017500000004616711134132274020142 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/cde40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libcde40_minimal_la_LIBADD = am__libcde40_minimal_la_SOURCES_DIST = cde40.c cde40_repair.c cde40.h \ cde40_repair.h am__objects_1 = libcde40_minimal_la-cde40.lo \ libcde40_minimal_la-cde40_repair.lo @ENABLE_MINIMAL_TRUE@am_libcde40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libcde40_minimal_la_OBJECTS = $(am_libcde40_minimal_la_OBJECTS) libcde40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libcde40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libcde40_minimal_la_rpath = libcde40_static_la_LIBADD = am__objects_2 = libcde40_static_la-cde40.lo \ libcde40_static_la-cde40_repair.lo am_libcde40_static_la_OBJECTS = $(am__objects_2) libcde40_static_la_OBJECTS = $(am_libcde40_static_la_OBJECTS) libcde40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libcde40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libcde40_minimal_la_SOURCES) $(libcde40_static_la_SOURCES) DIST_SOURCES = $(am__libcde40_minimal_la_SOURCES_DIST) \ $(libcde40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ cde40_sources = cde40.c cde40_repair.c cde40.h cde40_repair.h STATIC_LIBS = libcde40-static.la libcde40_static_la_SOURCES = $(cde40_sources) libcde40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libcde40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libcde40_minimal_la_SOURCES = $(cde40_sources) @ENABLE_MINIMAL_TRUE@libcde40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/cde40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/cde40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcde40-minimal.la: $(libcde40_minimal_la_OBJECTS) $(libcde40_minimal_la_DEPENDENCIES) $(libcde40_minimal_la_LINK) $(am_libcde40_minimal_la_rpath) $(libcde40_minimal_la_OBJECTS) $(libcde40_minimal_la_LIBADD) $(LIBS) libcde40-static.la: $(libcde40_static_la_OBJECTS) $(libcde40_static_la_DEPENDENCIES) $(libcde40_static_la_LINK) $(libcde40_static_la_OBJECTS) $(libcde40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcde40_minimal_la-cde40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcde40_minimal_la-cde40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcde40_static_la-cde40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcde40_static_la-cde40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libcde40_minimal_la-cde40.lo: cde40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcde40_minimal_la_CFLAGS) $(CFLAGS) -MT libcde40_minimal_la-cde40.lo -MD -MP -MF $(DEPDIR)/libcde40_minimal_la-cde40.Tpo -c -o libcde40_minimal_la-cde40.lo `test -f 'cde40.c' || echo '$(srcdir)/'`cde40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcde40_minimal_la-cde40.Tpo $(DEPDIR)/libcde40_minimal_la-cde40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cde40.c' object='libcde40_minimal_la-cde40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcde40_minimal_la_CFLAGS) $(CFLAGS) -c -o libcde40_minimal_la-cde40.lo `test -f 'cde40.c' || echo '$(srcdir)/'`cde40.c libcde40_minimal_la-cde40_repair.lo: cde40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcde40_minimal_la_CFLAGS) $(CFLAGS) -MT libcde40_minimal_la-cde40_repair.lo -MD -MP -MF $(DEPDIR)/libcde40_minimal_la-cde40_repair.Tpo -c -o libcde40_minimal_la-cde40_repair.lo `test -f 'cde40_repair.c' || echo '$(srcdir)/'`cde40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcde40_minimal_la-cde40_repair.Tpo $(DEPDIR)/libcde40_minimal_la-cde40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cde40_repair.c' object='libcde40_minimal_la-cde40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcde40_minimal_la_CFLAGS) $(CFLAGS) -c -o libcde40_minimal_la-cde40_repair.lo `test -f 'cde40_repair.c' || echo '$(srcdir)/'`cde40_repair.c libcde40_static_la-cde40.lo: cde40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcde40_static_la_CFLAGS) $(CFLAGS) -MT libcde40_static_la-cde40.lo -MD -MP -MF $(DEPDIR)/libcde40_static_la-cde40.Tpo -c -o libcde40_static_la-cde40.lo `test -f 'cde40.c' || echo '$(srcdir)/'`cde40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcde40_static_la-cde40.Tpo $(DEPDIR)/libcde40_static_la-cde40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cde40.c' object='libcde40_static_la-cde40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcde40_static_la_CFLAGS) $(CFLAGS) -c -o libcde40_static_la-cde40.lo `test -f 'cde40.c' || echo '$(srcdir)/'`cde40.c libcde40_static_la-cde40_repair.lo: cde40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcde40_static_la_CFLAGS) $(CFLAGS) -MT libcde40_static_la-cde40_repair.lo -MD -MP -MF $(DEPDIR)/libcde40_static_la-cde40_repair.Tpo -c -o libcde40_static_la-cde40_repair.lo `test -f 'cde40_repair.c' || echo '$(srcdir)/'`cde40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcde40_static_la-cde40_repair.Tpo $(DEPDIR)/libcde40_static_la-cde40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cde40_repair.c' object='libcde40_static_la-cde40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcde40_static_la_CFLAGS) $(CFLAGS) -c -o libcde40_static_la-cde40_repair.lo `test -f 'cde40_repair.c' || echo '$(srcdir)/'`cde40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/cde40/Makefile.am0000644000175000017500000000107511131470543020117 0ustar fzfzincludedir = -I$(top_srcdir)/include cde40_sources = cde40.c cde40_repair.c cde40.h cde40_repair.h STATIC_LIBS = libcde40-static.la libcde40_static_la_SOURCES = $(cde40_sources) libcde40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libcde40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libcde40_minimal_la_SOURCES = $(cde40_sources) libcde40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/cde40/cde40_repair.c0000644000175000017500000006307411131470543020477 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. cde40_repair.c -- reiser4 default direntry plugin. Description: 1) If offset is obviously wrong (no space for cde40_t,entry_t's, objid40_t's) mark it as not relable - NR. 2) If 2 offsets are not NR and entry contents between them are valid, (probably even some offsets between them can be recovered also) mark all offsets beteen them as relable - R. 3) If pair of offsets does not look ok and left is R, mark right as NR. 4) If there is no R offset on the left, compare the current with 0-th through the current if not NR. 5) If there are some R offsets on the left, compare with the most right of them through the current if not NR. 6) If after 1-5 there is no one R - this is likely not to be cde40 item. 7) If there is a not NR offset and it has a neighbour which is R and its pair with the nearest R offset from the other side if any is ok, mark it as R. ?? Disabled. ?? 8) Remove all units with not R offsets. 9) Remove the space between the last entry_t and the first R offset. 10)Remove the space between the end of the last entry and the end of the item. */ #ifndef ENABLE_MINIMAL #include "cde40.h" #include #include #define S_NAME 0 #define L_NAME 1 /* short name is all in the key, long is 16 + '\0' */ #define NAME_LEN_MIN(kind) \ (kind ? 16 + 1: 0) #define ENTRY_LEN_MIN(kind, pol) \ (ob_size(pol) + NAME_LEN_MIN(kind)) #define UNIT_LEN_MIN(kind, pol) \ (en_size(pol) + ENTRY_LEN_MIN(kind, pol)) #define DIRITEM_LEN_MIN \ (UNIT_LEN_MIN(S_NAME) + sizeof(cde40_t)) #define en_len_min(count, pol) \ ((uint64_t)count * UNIT_LEN_MIN(S_NAME, pol) + sizeof(cde40_t)) #define NR 0 #define R 1 struct entry_flags { uint8_t *elem; uint32_t count; }; /* Extention for repair_flag_t */ #define REPAIR_SKIP 0 /* Check the i-th offset of the unit body within the item. */ static errno_t cde40_offset_check(reiser4_place_t *place, uint32_t pos) { uint32_t pol; uint32_t offset; pol = cde40_key_pol(place); if (place->len < en_len_min(pos + 1, pol)) return 1; offset = cde_get_offset(place, pos, pol); /* There must be enough space for the entry in the item. */ if (offset != place->len - ENTRY_LEN_MIN(S_NAME, pol) && offset != place->len - 2 * ENTRY_LEN_MIN(S_NAME, pol) && offset > place->len - ENTRY_LEN_MIN(L_NAME, pol)) { return 1; } /* There must be enough space for item header, set of unit headers and set of keys of objects entries point to. */ return pos != 0 ? (offset < sizeof(cde40_t) + en_size(pol) * (pos + 1) + ob_size(pol) * pos) : (offset - sizeof(cde40_t)) % (en_size(pol)) != 0; /* If item was shorten, left entries should be recovered also. So this check is excessive as it can avoid such recovering if too many entry headers are left. if (pos == 0) { uint32_t count; count = (offset - sizeof(cde40_t)) / en_size(pol); if (offset + count * ENTRY_LEN_MIN(S_NAME, pol) > place->len) return 1; } */ } static uint32_t cde40_count_estimate(reiser4_place_t *place, uint32_t pos) { uint32_t pol = cde40_key_pol(place); uint32_t offset = cde_get_offset(place, pos, pol); aal_assert("vpf-761", place->len >= en_len_min(pos + 1, pol)); return pos == 0 ? (offset - sizeof(cde40_t)) / en_size(pol) : ((offset - pos * ob_size(pol) - sizeof(cde40_t)) / en_size(pol)); } /* Check that 2 neighbour offsets look coorect. */ static errno_t cde40_pair_offsets_check(reiser4_place_t *place, uint32_t start_pos, uint32_t end_pos) { uint32_t pol; uint32_t offset, end_offset; uint32_t count = end_pos - start_pos; pol = cde40_key_pol(place); aal_assert("vpf-753", start_pos < end_pos); aal_assert("vpf-752", place->len >= en_len_min(end_pos + 1, pol)); end_offset = cde_get_offset(place, end_pos, pol); if (end_offset == cde_get_offset(place, start_pos, pol) + ENTRY_LEN_MIN(S_NAME, pol) * count) { return 0; } offset = cde_get_offset(place, start_pos, pol) + ENTRY_LEN_MIN(L_NAME, pol); return (end_offset < offset + (count - 1) * ENTRY_LEN_MIN(S_NAME, pol)); } static uint32_t cde40_name_len(char *body, uint32_t start, uint32_t end) { uint32_t i; aal_assert("vpf-759", start < end); for (i = start; i < end; i++) { if (body[i] == '\0') break; } return i - start; } /* Returns amount of entries detected. */ static uint32_t cde40_short_entry_detect(reiser4_place_t *place, uint32_t start_pos, uint32_t length, uint8_t mode) { uint32_t pol; uint32_t offset, limit; pol = cde40_key_pol(place); limit = cde_get_offset(place, start_pos, pol); aal_assert("vpf-770", length < place->len); aal_assert("vpf-769", limit <= place->len - length); if (length % ENTRY_LEN_MIN(S_NAME, pol)) return 0; if (mode == REPAIR_SKIP) return length / ENTRY_LEN_MIN(S_NAME, pol); start_pos++; for (offset = ENTRY_LEN_MIN(S_NAME, pol); offset < length; offset += ENTRY_LEN_MIN(S_NAME, pol), start_pos++) { fsck_mess("Node (%llu), item (%u), unit (%u), [%s]: unit " "offset (%u) is wrong, should be (%u). %s", place_blknr(place), place->pos.item, start_pos, print_key(cde40_core, &place->key), cde_get_offset(place, start_pos, pol), limit + offset, mode == RM_BUILD ? "Fixed." : ""); if (mode == RM_BUILD) cde_set_offset(place, start_pos, limit + offset, pol); } return length / ENTRY_LEN_MIN(S_NAME, pol); } /* Returns amount of entries detected. */ static uint32_t cde40_long_entry_detect(reiser4_place_t *place, uint32_t start_pos, uint32_t length, uint8_t mode) { uint32_t pol; int count = 0; uint32_t offset; uint32_t l_limit; uint32_t r_limit; pol = cde40_key_pol(place); aal_assert("umka-2405", place != NULL); aal_assert("vpf-771", length < place->len); aal_assert("vpf-772", cde_get_offset(place, start_pos, pol) <= (place->len - length)); l_limit = cde_get_offset(place, start_pos, pol); r_limit = l_limit + length; while (l_limit + ob_size(pol) < r_limit) { offset = l_limit + ob_size(pol) + cde40_name_len(place->body, l_limit + ob_size(pol), r_limit); if (offset == r_limit) return 0; offset++; if (offset - l_limit < ENTRY_LEN_MIN(L_NAME, pol)) return 0; l_limit = offset; count++; if (mode != REPAIR_SKIP && l_limit != cde_get_offset(place, start_pos + count, pol)) { fsck_mess("Node (%llu), item (%u), unit (%u), [%s]: " "unit offset (%u) is wrong, should be (%u)." "%s", place_blknr(place), place->pos.item, start_pos + count, print_key(cde40_core, &place->key), cde_get_offset(place, start_pos + count, pol), l_limit, mode == RM_BUILD ? " Fixed." : ""); if (mode == RM_BUILD) { cde_set_offset(place, start_pos + count, l_limit, pol); } } } return l_limit == r_limit ? count : 0; } static inline uint32_t cde40_entry_detect(reiser4_place_t *place, uint32_t start_pos, uint32_t end_pos, uint8_t mode) { uint32_t pol; uint32_t count; pol = cde40_key_pol(place); count = cde40_short_entry_detect(place, start_pos, cde_get_offset(place, end_pos, pol) - cde_get_offset(place, start_pos, pol), 0); if (count == end_pos - start_pos) { cde40_short_entry_detect(place, start_pos, cde_get_offset(place, end_pos, pol) - cde_get_offset(place, start_pos, pol), mode); return count; } count = cde40_long_entry_detect(place, start_pos, cde_get_offset(place, end_pos, pol) - cde_get_offset(place, start_pos, pol), 0); if (count == end_pos - start_pos) { cde40_long_entry_detect(place, start_pos, cde_get_offset(place, end_pos, pol) - cde_get_offset(place, start_pos, pol), mode); return count; } return 0; } /* Build a bitmap of not R offstes. */ static errno_t cde40_offsets_range_check(reiser4_place_t *place, struct entry_flags *flags, uint8_t mode) { uint32_t pol; uint32_t i, j; errno_t res = 0; uint32_t to_compare; aal_assert("vpf-757", flags != NULL); pol = cde40_key_pol(place); to_compare = MAX_UINT32; for (i = 0; i < flags->count; i++) { /* Check if the offset is valid. */ if (cde40_offset_check(place, i)) { fsck_mess("Node (%llu), item (%u), unit (%u), " "[%s]: unit offset (%u) is wrong.", place_blknr(place), place->pos.item, i, print_key(cde40_core, &place->key), cde_get_offset(place, i, pol)); /* mark offset wrong. */ aal_set_bit(flags->elem + i, NR); continue; } /* If there was not any R offset, skip pair comparing. */ if (to_compare == MAX_UINT32) { if ((i == 0) && (cde40_count_estimate(place, i) == cde_get_units(place))) { flags->count = cde_get_units(place); aal_set_bit(flags->elem + i, R); } to_compare = i; continue; } for (j = to_compare; j < i; j++) { /* If to_compare is a R element, do just 1 comparing. Otherwise, compare with all not NR elements. */ if (aal_test_bit(flags->elem + j, NR)) continue; /* Check that a pair of offsets is valid. */ if (!cde40_pair_offsets_check(place, j, i)) { /* Pair looks ok. Try to recover it. */ if (cde40_entry_detect(place, j, i, mode)) { uint32_t limit; /* Do not compair with elements before the last R. */ to_compare = i; /* It's possible to decrease the count when first R found. */ limit = cde40_count_estimate(place, j); if (flags->count > limit) flags->count = limit; /* If more then 1 item were detected, some offsets have been recovered, set result properly. */ if (i - j > 1) { if (mode == RM_BUILD) place_mkdirty(place); else res |= RE_FATAL; } /* Mark all recovered elements as R. */ for (j++; j <= i; j++) aal_set_bit(flags->elem + j, R); break; } continue; } /* Pair does not look ok, if left is R offset, this is NR offset. */ if (aal_test_bit(flags->elem + j, R)) { aal_set_bit(flags->elem + i, NR); break; } } } return res; } static errno_t cde40_filter(reiser4_place_t *place, struct entry_flags *flags, repair_hint_t *hint) { /* The correct number of units. */ uint32_t real_count; /* Estimated number of units. The maximim possible limit. */ uint32_t e_count; /* Offset within the item. */ uint32_t offset; errno_t res = 0; /* The first relable unit offset. */ uint32_t first; /* The last relable unit offset. */ uint32_t last; /* Count of bytes to be removed at the end of the item. */ uint32_t tail; uint32_t pol; aal_assert("vpf-757", flags != NULL); pol = cde40_key_pol(place); /* Get the last correct unit + 1 into @last. */ for (last = flags->count; last && (aal_test_bit(flags->elem + last - 1, NR) || !aal_test_bit(flags->elem + last - 1, R)); last--) {} if (last == 0) { /* No one R unit was found */ fsck_mess("Node (%llu), item (%u), [%s]: no one valid unit " "has been found. Does not look like a valid `%s` " "item.", place_blknr(place), place->pos.item, print_key(cde40_core, &place->key), place->plug->p.label); return RE_FATAL; } /* the last unit size is not checked yet, so save - 1 into @count. */ flags->count = --last; tail = cde_get_offset(place, last, pol); offset = tail + ob_size(pol); /* Last is the last valid offset. If the last unit is valid also, count is the last + 1. */ if (offset == place->len) { flags->count++; } else if (offset < place->len) { /* The last offset is correct, but the entity is not checked yet. */ offset += aal_strlen(place->body + offset) + 1; /* If nothing to be removed, the last unit is relable. */ if (offset == place->len) flags->count++; } else { aal_bug("vpf-1560", "Amount of detected units exceeds the " "item length."); } /* Amount of bytes that should be removed at the end. */ if (flags->count == last) { tail = place->len - tail; } else { tail = 0; } /* Count is the amount of recovered elements. */ /* Find the first relable. */ for (first = 0; first < flags->count && !aal_test_bit(flags->elem + first, R); first++) {} /* Estimate the amount of unit headers by the first R element offset. */ e_count = cde40_count_estimate(place, first); /* Estimated count must be larger than the recovered count. */ aal_assert("vpf-765", e_count >= flags->count); /* If the first unit offset is correct, the correct unit number is estimated count, otherwise will be changed later. */ real_count = e_count; if (first) { /* Some first offset are not relable. Consider count as the correct count and set the first offset just after the last unit to remove first items correctly later.*/ if (hint->mode == RM_BUILD) { cde_set_offset(place, 0, sizeof(cde40_t) + en_size(pol) * flags->count, pol); } /* There are some not correct units at the beginning, the correct unit number is the recovered count. */ real_count = flags->count; } else if (!tail && e_count > flags->count) { /* If there is enough space for another entry header (e_count > count), and nothing to remove at the end of the item, the last unit is correct (tail == 0), set @count unit offset to the item length to remove redundant item headers correctly later. */ if (hint->mode == RM_BUILD) { cde_set_offset(place, flags->count, place->len, pol); } } /* Fix the count before removing anything. */ if (real_count != cde_get_units(place)) { fsck_mess("Node (%llu), item (%u), [%s]: unit count " "(%u) is not correct. Should be (%u).%s", place_blknr(place), place->pos.item, print_key(cde40_core, &place->key), cde_get_units(place), real_count, hint->mode == RM_CHECK ? "" : " Fixed."); if (hint->mode == RM_CHECK) { res |= RE_FIXABLE; } else { cde_set_units(place, real_count); place_mkdirty(place); } } if (flags->count != real_count) { /* Estimated count is greater then the recovered count, in other words there are some last unit headers should be removed. */ fsck_mess("Node (%llu), item (%u), [%s]: entries [%u..%u] look " "corrupted. %s", place_blknr(place), place->pos.item, print_key(cde40_core, &place->key), flags->count, real_count - 1, hint->mode == RM_BUILD ? "Removed." : ""); if (hint->mode == RM_BUILD) { hint->len += cde40_cut(place, flags->count, real_count - flags->count, place->len); place_mkdirty(place); } else { res |= RE_FATAL; } } else if (tail) { /* Count of recovered units metches the estimated count but there are some btes at the end to be removed. */ fsck_mess("Node (%llu), item (%u), [%s]: %u redundant bytes at " "the end.%s", place_blknr(place), place->pos.item, print_key(cde40_core, &place->key), tail, hint->mode == RM_BUILD ? "Removed." : ""); if (hint->mode == RM_BUILD) hint->len += tail; } if (first) { /* Some first units should be removed. */ fsck_mess("Node (%llu), item (%u), [%s]: entries [%u..%u] look " "corrupted. %s", place_blknr(place), place->pos.item, print_key(cde40_core, &place->key), 0, first - 1, hint->mode == RM_BUILD ? "Removed." : ""); if (hint->mode == RM_BUILD) { hint->len += cde40_cut(place, 0, first, place->len); place_mkdirty(place); aal_memmove(flags->elem, flags->elem + first, flags->count - first); flags->count -= first; first = 0; } else { res |= RE_FATAL; } } /* Units before @first and after @count were handled, do not care about them anymore. Handle all not relable units between them. */ last = MAX_UINT32; for (; first < flags->count; first++) { if (last == MAX_UINT32) { /* Looking for the problem interval start. */ if (!aal_test_bit(flags->elem + first, R)) last = first - 1; continue; } /* Looking for the problem interval end. */ if (aal_test_bit(flags->elem + first, R)) { fsck_mess("Node (%llu), item (%u), [%s]: " "entries [%u..%u] look corrupted. %s", place_blknr(place), place->pos.item, print_key(cde40_core, &place->key), last, first - 1, hint->mode == RM_BUILD ? "Removed." : ""); if (hint->mode != RM_BUILD) { res |= RE_FATAL; last = MAX_UINT32; continue; } hint->len += cde40_cut(place, last, first - last, place->len); place_mkdirty(place); aal_memmove(flags->elem + last, flags->elem + first, flags->count - first); flags->count -= (first - last); first = last; last = MAX_UINT32; } } return res; } errno_t cde40_check_struct(reiser4_place_t *place, repair_hint_t *hint) { static reiser4_key_t pkey, ckey; struct entry_flags flags; uint32_t pol; errno_t res = 0; uint32_t i; aal_assert("vpf-267", place != NULL); aal_assert("vpf-1641", hint != NULL); pol = cde40_key_pol(place); if (place->len < en_len_min(1, pol)) { fsck_mess("Node (%llu), item (%u), [%s]: item length " "(%u) is too small to contain a valid item.", place_blknr(place), place->pos.item, print_key(cde40_core, &place->key), place->len); return RE_FATAL; } /* Try to recover even if item was shorten and not all entries exist. */ flags.count = (place->len - sizeof(cde40_t)) / (en_size(pol)); /* map consists of bit pairs - [not relable -R, relable - R] */ flags.elem = aal_calloc(flags.count, 0); res |= cde40_offsets_range_check(place, &flags, hint->mode); if (res) goto error; /* Filter units with relable offsets from others. */ res |= cde40_filter(place, &flags, hint); aal_free(flags.elem); if (repair_error_fatal(res)) return res; /* Structure is checked, check the unit keys and its order. FIXME-VITALY: just simple order check for now, the whole item is thrown away if smth wrong, to be improved later. */ for (i = 1; i <= flags.count; i++) { reiser4_key_t key; trans_hint_t trans; uint32_t offset; cde40_get_hash(place, i - 1, &key); offset = i == flags.count ? place->len - hint->len: cde_get_offset(place, i, pol); if (cde_get_offset(place, i - 1, pol) + ob_size(pol) == offset){ /* Check that [i-1] key is not hashed. */ if (!objcall(&key, hashed)) continue; /* Hashed, key is wrong, remove the entry. */ fsck_mess("Node (%llu), item (%u): wrong key " "[%s] of the unit (%u).%s", place_blknr(place), place->pos.item, print_inode(cde40_core, &key), i - 1, hint->mode == RM_BUILD ? " Removed." : ""); if (hint->mode != RM_BUILD) { res |= RE_FATAL; continue; } /* Remove the entry. */ trans.count = 1; if ((res |= cde40_delete(place, i - 1, &trans)) < 0) return res; hint->len += trans.len; flags.count--; i--; continue; } else { /* Check that [i-1] key is hashed. */ if (objcall(&key, hashed)) continue; /* Not hashed, key is wrong, remove the entry. */ fsck_mess("Node (%llu), item (%u): wrong key " "[%s] of the unit (%u).%s", place_blknr(place), place->pos.item, print_inode(cde40_core, &key), i - 1, hint->mode == RM_BUILD ? " Removed." : ""); if (hint->mode != RM_BUILD) { res |= RE_FATAL; continue; } /* Remove the entry. */ trans.count = 1; if ((res |= cde40_delete(place, i - 1, &trans)) < 0) return res; hint->len += trans.len; flags.count--; i--; continue; } } if (res & RE_FATAL) return res; aal_memset(&pkey, 0, sizeof(pkey)); aal_memset(&ckey, 0, sizeof(ckey)); cde40_get_hash(place, 0, &pkey); for (i = 1; i < flags.count; i++) { cde40_get_hash(place, i, &ckey); if (objcall(&pkey, compfull, &ckey) == 1) { fsck_mess("Node (%llu), item (%u), [%s]: wrong order " "of units [%d, %d]. The whole item is to be " "removed.",place_blknr(place),place->pos.item, print_key(cde40_core, &place->key), i - 1, i); return res | RE_FATAL; } pkey = ckey; } if (flags.count == 0) return res | RE_FATAL; cde40_get_hash(place, 0, &ckey); if (objcall(&ckey, compfull, &place->key)) { fsck_mess("Node (%llu), item (%u): the item key [%s] does " "not match the first unit key [%s].%s", place_blknr(place), place->pos.item, print_inode(cde40_core, &place->key), print_inode(cde40_core, &ckey), hint->mode == RM_BUILD ? " Fixed." : ""); res |= RE_FATAL; } return res; error: aal_free(flags.elem); return res; } static int cde40_comp_entry(reiser4_place_t *place1, uint32_t pos1, reiser4_place_t *place2, uint32_t pos2) { reiser4_key_t key1, key2; char *name1, *name2; int comp; cde40_get_hash(place1, pos1, &key1); cde40_get_hash(place2, pos2, &key2); /* Compare hashes. */ if ((comp = objcall(&key1, compfull, &key2))) return comp; /* If equal, and names are hashed, compare names. */ if (!objcall(&key1, hashed) || !objcall(&key2, hashed)) return 0; name1 = (char *)(cde40_objid(place1, pos1) + ob_size(cde40_key_pol(place1))); name2 = (char *)(cde40_objid(place2, pos2) + ob_size(cde40_key_pol(place2))); return aal_strcmp(name1, name2); } /* Estimate the space needed for the insertion of the not overlapped part of the item, overlapped part does not need any space. */ errno_t cde40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *trans) { uint32_t sunits, send; uint32_t offset, pol; reiser4_place_t *src; aal_assert("vpf-957", place != NULL); aal_assert("vpf-959", trans != NULL); src = (reiser4_place_t *)trans->specific; sunits = cde40_units(src); pol = cde40_key_pol(place); if (place->pos.unit != MAX_UINT32 && place->pos.unit != cde40_units(place)) { /* What is the last to be inserted? */ for (send = src->pos.unit; send < sunits; send++) { if (cde40_comp_entry(place, place->pos.unit, src, send) <= 0) break; } } else send = sunits; trans->bytes = 0; trans->count = send - src->pos.unit; offset = send == sunits ? src->len : cde_get_offset(src, send, pol); /* Len to be inserted is the size of header + item bodies. */ trans->len = trans->count * en_size(pol) + offset - cde_get_offset(src, src->pos.unit, pol); trans->overhead = cde40_overhead(); return 0; } int64_t cde40_insert_raw(reiser4_place_t *place, trans_hint_t *trans) { uint32_t dpos, dunits; uint32_t spos, sunits; reiser4_place_t *src; errno_t res; aal_assert("vpf-1370", place != NULL); aal_assert("vpf-1371", trans != NULL); src = (reiser4_place_t *)trans->specific; dpos = place->pos.unit; if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; sunits = cde40_units(src); if (trans->count) { /* Expand @place & copy @trans->count units there from @src. */ if (dpos != MAX_UINT32) cde40_expand(place, dpos, trans->count, trans->len); else cde_set_units(place, 0); if ((res = cde40_copy(place, place->pos.unit, src, src->pos.unit, trans->count))) { return res; } spos = src->pos.unit + trans->count; place_mkdirty(place); } else { /* The first @place and @src entries match to each other. Get the very first that differ. */ dunits = cde40_units(place); for (dpos = place->pos.unit + 1, spos = src->pos.unit + 1; dpos < dunits; dpos++, spos++) { if (spos >= sunits) break; if (cde40_comp_entry(place, dpos, src, spos)) break; } } /* Update the item key. */ if (place->pos.unit == 0 && trans->count) aal_memcpy(&place->key, &trans->offset, sizeof(place->key)); if (spos == sunits) return cde40_maxposs_key(src, &trans->maxkey); return cde40_get_hash(src, spos, &trans->maxkey); } #define PRINT_NAME_LIMIT 38 /* Prints cde item into passed @stream */ void cde40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options) { uint32_t namewidth = 0; uint64_t locality = 0; uint64_t objectid = 0; uint32_t i, j, count; char name[256]; uint32_t pol; aal_assert("umka-548", place != NULL); aal_assert("umka-549", stream != NULL); aal_stream_format(stream, "\nNR(%u) NAME%*s OFFSET HASH%*s " "SDKEY%*s\n", cde_get_units(place), PRINT_NAME_LIMIT - 5, " ", 29, " ", 13, " "); pol = cde40_key_pol(place); count = (place->len - sizeof(cde40_t)) / (en_size(pol)); if (count > cde_get_units(place)) count = cde_get_units(place); /* Loop though the all entries and print them to @stream. */ for (i = 0; i < count; i++) { void *entry = cde40_entry(place, i); uint64_t offset, haobj; void *objid; if (options != PO_UNIT_OFFSETS) { objid = cde40_objid(place, i); if (objid >= place->body + place->len || entry >= place->body + place->len) { aal_stream_format(stream, "Broken entry array " "detected.\n"); break; } cde40_get_name(place, i, name, sizeof(name)); /* Cutting name by PRINT_NAME_LIMIT symbols */ if (aal_strlen(name) > PRINT_NAME_LIMIT) { for (j = 0; j < 3; j++) name[PRINT_NAME_LIMIT - 3 + j] = '.'; name[PRINT_NAME_LIMIT - 3 + j] = '\0'; } /* Getting locality, objectid. */ locality = ob_get_locality(objid, pol); objectid = ob_get_objectid(objid, pol); namewidth = PRINT_NAME_LIMIT - aal_strlen(name); } offset = ha_get_offset(entry, pol); haobj = ha_get_objectid(entry, pol); /* Putting data to @stream. */ if (options != PO_UNIT_OFFSETS) { aal_stream_format(stream, "%*d %s%*s %*u %.16llx:%.16llx " "%.7llx:%.7llx\n", 3, i, name, namewidth, " ", 5, en_get_offset(entry, pol), haobj, offset, locality, objectid); } else { aal_stream_format(stream, "%*d %*u %.16llx:%.16llx\n", 3, i, 5, en_get_offset(entry, pol), haobj, offset); } } } #endif reiser4progs-1.0.7.orig/plugin/item/cde40/cde40.h0000644000175000017500000002362511131470543017140 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. cde40.h -- reiser4 directory entry plugin. */ #ifndef CDE40_H #define CDE40_H #include #include #include /* The cde40 structure is as the following: +-----------------------------+-----------------------------------------------+ | Unit Headers | Units. | +-----------------------------+-----------------------------------------------+ | | | | | |units|entryX[0]|...|entryX[N]|objidX[0]|name[0]'\0'|...|objidX[N]|name[N]'\0'| | | | | | +-----------------------------+-----------------------------------------------+ */ typedef struct cde40 { d16_t units; } cde40_t; #ifdef ENABLE_SHORT_KEYS typedef struct objid3 { d8_t locality[8]; d8_t objectid[8]; } objid3_t; typedef struct hash3 { d8_t objectid[8]; d8_t offset[8]; } hash3_t; typedef struct entry3 { hash3_t hash; d16_t offset; } entry3_t; typedef struct cde403 { d16_t units; entry3_t entry[0]; } cde403_t; #endif #ifdef ENABLE_LARGE_KEYS typedef struct objid4 { d8_t locality[8]; d8_t ordering[8]; d8_t objectid[8]; } objid4_t; typedef struct hash4 { d8_t ordering[8]; d8_t objectid[8]; d8_t offset[8]; } hash4_t; typedef struct entry4 { hash4_t hash; d16_t offset; } entry4_t; typedef struct cde404 { d16_t units; entry4_t entry[0]; } cde404_t; #endif extern reiser4_core_t *cde40_core; extern uint32_t cde40_units(reiser4_place_t *place); extern inline uint32_t cde40_key_pol(reiser4_place_t *place); extern char *cde40_get_name(reiser4_place_t *place, uint32_t pos, char *buff, uint32_t len); extern inline void *cde40_entry(reiser4_place_t *place, uint32_t pos); extern inline void *cde40_objid(reiser4_place_t *place, uint32_t pos); extern errno_t cde40_maxposs_key(reiser4_place_t *place, reiser4_key_t *key); extern errno_t cde40_delete(reiser4_place_t *place, uint32_t pos, trans_hint_t *hint); extern errno_t cde40_get_hash(reiser4_place_t *place, uint32_t pos, reiser4_key_t *key); extern errno_t cde40_copy(reiser4_place_t *dst_place, uint32_t dst_pos, reiser4_place_t *src_place, uint32_t src_pos, uint32_t count); extern uint32_t cde40_expand(reiser4_place_t *place, uint32_t pos, uint32_t count, uint32_t len); extern uint32_t cde40_regsize(reiser4_place_t *place, uint32_t pos, uint32_t count); extern lookup_t cde40_lookup(reiser4_place_t *place, lookup_hint_t *hint, lookup_bias_t bias); extern int cde40_comp_hash(reiser4_place_t *place, uint32_t pos, reiser4_key_t *key); extern uint32_t cde40_cut(reiser4_place_t *place, uint32_t pos, uint32_t count, uint32_t len); extern uint16_t cde40_overhead(); #if defined(ENABLE_SHORT_KEYS) && defined(ENABLE_LARGE_KEYS) /* objidN_t macros. */ #define ob_loc(ob, pol) \ ((pol == 3) ? \ ((objid3_t *)(ob))->locality : \ ((objid4_t *)(ob))->locality) #define ob_get_locality(ob, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)ob_loc(ob, pol))) #define ob_set_locality(ob, val, pol) \ put_unaligned(CPU_TO_LE64(val), (d64_t *)ob_loc(ob, pol)) #define ob_oid(ob, pol) \ ((pol == 3) ? \ ((objid3_t *)(ob))->objectid : \ ((objid4_t *)(ob))->objectid) #define ob_get_objectid(ob, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)ob_oid(ob, pol))) #define ob_set_objectid(ob, val, pol) \ put_unaligned(CPU_TO_LE64(val), (d64_t *)ob_oid(ob, pol)) #define ob_ord(ob, pol) ((pol == 3) ? 0 : ((objid4_t *)(ob))->ordering) #define ob_get_ordering(ob, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)ob_ord(ob, pol))) #define ob_set_ordering(ob, val, pol) \ ({if (pol == 3) do {} while(0); else \ put_unaligned(CPU_TO_LE64(val), (d64_t *)ob_ord(ob, pol));}) #define ob_size(pol) ((pol == 3) ? sizeof(objid3_t) : sizeof(objid4_t)) /* hashN_t macros. */ #define ha_oid(ha, pol) \ ((pol == 3) ? \ ((hash3_t *)(ha))->objectid : \ ((hash4_t *)(ha))->objectid) #define ha_get_objectid(ha, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)ha_oid(ha, pol))) #define ha_set_objectid(ha, val, pol) \ put_unaligned(CPU_TO_LE64(val), (d64_t *)ha_oid(ha, pol)) #define ha_off(ha, pol) \ ((pol == 3) ? \ ((hash3_t *)(ha))->offset : \ ((hash4_t *)(ha))->offset) #define ha_get_offset(ha, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)ha_off(ha, pol))) #define ha_set_offset(ha, val, pol) \ put_unaligned(CPU_TO_LE64(val), (d64_t *)ha_off(ha, pol)) #define ha_ord(ha, pol) ((pol == 3) ? 0 : ((hash4_t *)(ha))->ordering) #define ha_get_ordering(ha, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)ha_ord(ha, pol))) #define ha_set_ordering(ha, val, pol) \ ({if (pol == 3) do {} while(0); else \ put_unaligned(CPU_TO_LE64(val), (d64_t *)ha_ord(ha, pol));}) #define ha_size(pol) ((pol == 3) ? sizeof(hash3_t) : sizeof(hash4_t)) /* entryN_t macros */ #define en_get_offset(en, pol) \ ((pol == 3) ? \ aal_get_le16(((entry3_t *)(en)), offset) : \ aal_get_le16(((entry4_t *)(en)), offset)) #define en_set_offset(en, val, pol) \ ({if (pol == 3) \ aal_set_le16(((entry3_t *)(en)), offset, val); \ else \ aal_set_le16(((entry4_t *)(en)), offset, val);}) #define en_size(pol) \ ((pol == 3) ? sizeof(entry3_t) : sizeof(entry4_t)) #define cde_get_entry(pl, pos, pol) \ ((pol == 3) ? \ (void *)(&((cde403_t *)(pl)->body)->entry[pos]) : \ (void *)(&((cde404_t *)(pl)->body)->entry[pos])) #elif defined(ENABLE_SHORT_KEYS) /* objidN_t macros. */ #define ob_get_locality(ob, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((objid3_t *)(ob))->locality)) #define ob_set_locality(ob, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((objid3_t *)(ob))->locality) #define ob_get_objectid(ob, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((objid3_t *)(ob))->objectid)) #define ob_set_objectid(ob, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((objid3_t *)(ob))->objectid) #define ob_get_ordering(ob, pol) (0) #define ob_set_ordering(ob, val, pol) do {} while(0) #define ob_size(pol) (sizeof(objid3_t)) /* hashN_t macros. */ #define ha_get_objectid(ha, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((hash3_t *)(ha))->objectid)) #define ha_set_objectid(ha, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((hash3_t *)(ha))->objectid) #define ha_get_offset(ha, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((hash3_t *)(ha))->offset)) #define ha_set_offset(ha, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((hash3_t *)(ha))->offset) #define ha_get_ordering(ha, pol) (0) #define ha_set_ordering(ha, val, pol) do {} while (0) #define ha_size(pol) (sizeof(hash3_t)) /* entryN_t macros */ #define en_get_offset(en, pol) \ aal_get_le16(((entry3_t *)(en)), offset) #define en_set_offset(en, val, pol) \ aal_set_le16(((entry3_t *)(en)), offset, val) #define en_size(pol) (sizeof(entry3_t)) #define cde_get_entry(pl, pos, pol) \ ((void *)(&((cde403_t *)pl->body)->entry[pos])) #elif defined(ENABLE_LARGE_KEYS) /* objidN_t macros. */ #define ob_get_locality(ob, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((objid4_t *)(ob))->locality)) #define ob_set_locality(ob, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((objid4_t *)(ob))->locality) #define ob_get_objectid(ob, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((objid4_t *)(ob))->objectid)) #define ob_set_objectid(ob, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((objid4_t *)(ob))->objectid) #define ob_get_ordering(ob, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((objid4_t *)(ob))->ordering)) #define ob_set_ordering(ob, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((objid4_t *)(ob))->ordering) #define ob_size(pol) (sizeof(objid4_t)) /* hashN_t macros. */ #define ha_get_objectid(ha, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((hash4_t *)(ha))->objectid)) #define ha_set_objectid(ha, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((hash4_t *)(ha))->objectid) #define ha_get_offset(ha, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((hash4_t *)(ha))->offset)) #define ha_set_offset(ha, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((hash4_t *)(ha))->offset) #define ha_get_ordering(ha, pol) \ LE64_TO_CPU(get_unaligned((d64_t *)((hash4_t *)(ha))->ordering)) #define ha_set_ordering(ha, val, pol) \ put_unaligned(CPU_TO_LE64(val), \ (d64_t *)((hash4_t *)(ha))->ordering) #define ha_size(pol) (sizeof(hash4_t)) #define en_get_offset(en, pol) \ aal_get_le16(((entry4_t *)(en)), offset) #define en_set_offset(en, val, pol) \ aal_set_le16(((entry4_t *)(en)), offset, val) #define en_size(pol) (sizeof(entry4_t)) #define cde_get_entry(pl, pos, pol) \ ((void *)(&((cde404_t *)pl->body)->entry[pos])) #endif #define cde_get_units(pl) \ aal_get_le16(((cde40_t *)pl->body), units) #define cde_set_units(pl, val) \ aal_set_le16(((cde40_t *)pl->body), units, val) #define cde_inc_units(pl, val) \ (cde_set_units(pl, (cde_get_units(pl) + val))) #define cde_dec_units(pl, val) \ (cde_set_units(pl, (cde_get_units(pl) - val))) #define cde_get_offset(pl, n, pol) \ ((uint32_t)en_get_offset(cde_get_entry(pl, n, pol), pol)) #define cde_set_offset(pl, n, offset, pol) \ (en_set_offset(cde_get_entry(pl, n, pol), offset, pol)) #define en_inc_offset(en, val, pol) \ (en_set_offset(en, (en_get_offset(en, pol) + val), pol)) #define en_dec_offset(en, val, pol) \ (en_set_offset(en, (en_get_offset(en, pol) - val), pol)) #endif reiser4progs-1.0.7.orig/plugin/item/Makefile.in0000644000175000017500000003442511134132273017234 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = body40 plain40 tail40 ctail40 extent40 cde40 nodeptr40 stat40 bbox40 all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/plain40/0000777000175000017500000000000011134133446016435 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/plain40/Makefile.in0000644000175000017500000004670011134132274020503 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/plain40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libplain40_minimal_la_LIBADD = am__libplain40_minimal_la_SOURCES_DIST = plain40.c plain40_repair.c \ plain40.h plain40_repair.h am__objects_1 = libplain40_minimal_la-plain40.lo \ libplain40_minimal_la-plain40_repair.lo @ENABLE_MINIMAL_TRUE@am_libplain40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libplain40_minimal_la_OBJECTS = $(am_libplain40_minimal_la_OBJECTS) libplain40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libplain40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libplain40_minimal_la_rpath = libplain40_static_la_LIBADD = am__objects_2 = libplain40_static_la-plain40.lo \ libplain40_static_la-plain40_repair.lo am_libplain40_static_la_OBJECTS = $(am__objects_2) libplain40_static_la_OBJECTS = $(am_libplain40_static_la_OBJECTS) libplain40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libplain40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libplain40_minimal_la_SOURCES) \ $(libplain40_static_la_SOURCES) DIST_SOURCES = $(am__libplain40_minimal_la_SOURCES_DIST) \ $(libplain40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plain40_sources = plain40.c plain40_repair.c plain40.h plain40_repair.h STATIC_LIBS = libplain40-static.la libplain40_static_la_SOURCES = $(plain40_sources) libplain40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libplain40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libplain40_minimal_la_SOURCES = $(plain40_sources) @ENABLE_MINIMAL_TRUE@libplain40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/plain40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/plain40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libplain40-minimal.la: $(libplain40_minimal_la_OBJECTS) $(libplain40_minimal_la_DEPENDENCIES) $(libplain40_minimal_la_LINK) $(am_libplain40_minimal_la_rpath) $(libplain40_minimal_la_OBJECTS) $(libplain40_minimal_la_LIBADD) $(LIBS) libplain40-static.la: $(libplain40_static_la_OBJECTS) $(libplain40_static_la_DEPENDENCIES) $(libplain40_static_la_LINK) $(libplain40_static_la_OBJECTS) $(libplain40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libplain40_minimal_la-plain40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libplain40_minimal_la-plain40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libplain40_static_la-plain40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libplain40_static_la-plain40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libplain40_minimal_la-plain40.lo: plain40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libplain40_minimal_la_CFLAGS) $(CFLAGS) -MT libplain40_minimal_la-plain40.lo -MD -MP -MF $(DEPDIR)/libplain40_minimal_la-plain40.Tpo -c -o libplain40_minimal_la-plain40.lo `test -f 'plain40.c' || echo '$(srcdir)/'`plain40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libplain40_minimal_la-plain40.Tpo $(DEPDIR)/libplain40_minimal_la-plain40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plain40.c' object='libplain40_minimal_la-plain40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libplain40_minimal_la_CFLAGS) $(CFLAGS) -c -o libplain40_minimal_la-plain40.lo `test -f 'plain40.c' || echo '$(srcdir)/'`plain40.c libplain40_minimal_la-plain40_repair.lo: plain40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libplain40_minimal_la_CFLAGS) $(CFLAGS) -MT libplain40_minimal_la-plain40_repair.lo -MD -MP -MF $(DEPDIR)/libplain40_minimal_la-plain40_repair.Tpo -c -o libplain40_minimal_la-plain40_repair.lo `test -f 'plain40_repair.c' || echo '$(srcdir)/'`plain40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libplain40_minimal_la-plain40_repair.Tpo $(DEPDIR)/libplain40_minimal_la-plain40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plain40_repair.c' object='libplain40_minimal_la-plain40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libplain40_minimal_la_CFLAGS) $(CFLAGS) -c -o libplain40_minimal_la-plain40_repair.lo `test -f 'plain40_repair.c' || echo '$(srcdir)/'`plain40_repair.c libplain40_static_la-plain40.lo: plain40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libplain40_static_la_CFLAGS) $(CFLAGS) -MT libplain40_static_la-plain40.lo -MD -MP -MF $(DEPDIR)/libplain40_static_la-plain40.Tpo -c -o libplain40_static_la-plain40.lo `test -f 'plain40.c' || echo '$(srcdir)/'`plain40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libplain40_static_la-plain40.Tpo $(DEPDIR)/libplain40_static_la-plain40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plain40.c' object='libplain40_static_la-plain40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libplain40_static_la_CFLAGS) $(CFLAGS) -c -o libplain40_static_la-plain40.lo `test -f 'plain40.c' || echo '$(srcdir)/'`plain40.c libplain40_static_la-plain40_repair.lo: plain40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libplain40_static_la_CFLAGS) $(CFLAGS) -MT libplain40_static_la-plain40_repair.lo -MD -MP -MF $(DEPDIR)/libplain40_static_la-plain40_repair.Tpo -c -o libplain40_static_la-plain40_repair.lo `test -f 'plain40_repair.c' || echo '$(srcdir)/'`plain40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libplain40_static_la-plain40_repair.Tpo $(DEPDIR)/libplain40_static_la-plain40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plain40_repair.c' object='libplain40_static_la-plain40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libplain40_static_la_CFLAGS) $(CFLAGS) -c -o libplain40_static_la-plain40_repair.lo `test -f 'plain40_repair.c' || echo '$(srcdir)/'`plain40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/plain40/plain40.c0000644000175000017500000000570211131470543020047 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. plain40.c -- reiser4 plain file body (aka formatting) item plugin. */ #include "plain40.h" #include "plain40_repair.h" #include #include #include reiser4_core_t *plain40_core = NULL; #ifndef ENABLE_MINIMAL /* Return 1 if two tail items are mergeable. Otherwise 0 will be returned. This method is used in balancing to determine if two border items may be merged. */ static int plain40_mergeable(reiser4_place_t *place1, reiser4_place_t *place2) { aal_assert("umka-2201", place1 != NULL); aal_assert("umka-2202", place2 != NULL); return body40_mergeable(place1, place2); } /* Estimates how many bytes in tree is needed to write @hint->count bytes of data. This function considers, that tail item is not expandable one. That is, tail will not be splitted at insert point, but will be rewritten instead. */ errno_t plain40_prep_write(reiser4_place_t *place, trans_hint_t *hint) { place->off = 0; return tail40_prep_write(place, hint); } /* Estimates how many bytes may be shifted from @stc_place to @dst_place. */ errno_t plain40_prep_shift(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { if (dst_place) dst_place->off = 0; return tail40_prep_shift(src_place, dst_place, hint); } #endif static item_balance_ops_t balance_ops = { #ifndef ENABLE_MINIMAL .merge = NULL, .update_key = NULL, .mergeable = plain40_mergeable, .maxreal_key = tail40_maxreal_key, .prep_shift = plain40_prep_shift, .shift_units = tail40_shift_units, .collision = NULL, .overhead = NULL, #endif .init = NULL, .units = tail40_units, .lookup = tail40_lookup, .fetch_key = tail40_fetch_key, .maxposs_key = tail40_maxposs_key }; static item_object_ops_t object_ops = { #ifndef ENABLE_MINIMAL .size = tail40_size, .bytes = tail40_size, .prep_write = plain40_prep_write, .write_units = tail40_write_units, .trunc_units = tail40_trunc_units, .prep_insert = NULL, .insert_units = NULL, .remove_units = NULL, .update_units = NULL, .layout = NULL, #endif .fetch_units = NULL, .read_units = tail40_read_units }; #ifndef ENABLE_MINIMAL static item_repair_ops_t repair_ops = { .check_struct = tail40_check_struct, .check_layout = NULL, .prep_insert_raw = plain40_prep_insert_raw, .insert_raw = tail40_insert_raw, .pack = tail40_pack, .unpack = tail40_unpack }; static item_debug_ops_t debug_ops = { .print = NULL }; #endif reiser4_item_plug_t plain40_plug = { .p = { .id = {ITEM_PLAIN40_ID, TAIL_ITEM, ITEM_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "plain40", .desc = "Plain file body item plugin.", #endif }, .object = &object_ops, .balance = &balance_ops, #ifndef ENABLE_MINIMAL .repair = &repair_ops, .debug = &debug_ops, #endif }; reiser4progs-1.0.7.orig/plugin/item/plain40/plain40.h0000644000175000017500000000076611131470543020061 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. plain40.h -- reiser4 plain tail item plugin functions. */ #ifndef PLAIN40_H #define PLAIN40_H #include #include extern reiser4_core_t *plain40_core; extern errno_t plain40_prep_shift(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint); extern errno_t plain40_prep_write(reiser4_place_t *place, trans_hint_t *hint); #endif reiser4progs-1.0.7.orig/plugin/item/plain40/plain40_repair.c0000644000175000017500000000063011131470543021404 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. plain40_repair.c -- reiser4 plain tail item plugin repair functions. */ #ifndef ENABLE_MINIMAL #include "plain40.h" #include errno_t plain40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { place->off = 0; return tail40_prep_insert_raw(place, hint); } #endif reiser4progs-1.0.7.orig/plugin/item/plain40/Makefile.am0000644000175000017500000000114211131470543020462 0ustar fzfzincludedir = -I$(top_srcdir)/include plain40_sources = plain40.c plain40_repair.c plain40.h plain40_repair.h STATIC_LIBS = libplain40-static.la libplain40_static_la_SOURCES = $(plain40_sources) libplain40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libplain40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libplain40_minimal_la_SOURCES = $(plain40_sources) libplain40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/plain40/plain40_repair.h0000644000175000017500000000063011131470543021411 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. plain40_repair.h -- reiser4 plain tail item plugin repair functions. */ #ifndef PLAIN40_REPAIR_H #define PLAIN40_REPAIR_H #ifndef ENABLE_MINIMAL #include #include extern errno_t plain40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint); #endif #endif reiser4progs-1.0.7.orig/plugin/item/tail40/0000777000175000017500000000000011134133446016263 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/tail40/Makefile.in0000644000175000017500000004643511134132275020337 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/tail40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libtail40_minimal_la_LIBADD = am__libtail40_minimal_la_SOURCES_DIST = tail40.c tail40_repair.c \ tail40.h tail40_repair.h am__objects_1 = libtail40_minimal_la-tail40.lo \ libtail40_minimal_la-tail40_repair.lo @ENABLE_MINIMAL_TRUE@am_libtail40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libtail40_minimal_la_OBJECTS = $(am_libtail40_minimal_la_OBJECTS) libtail40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libtail40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libtail40_minimal_la_rpath = libtail40_static_la_LIBADD = am__objects_2 = libtail40_static_la-tail40.lo \ libtail40_static_la-tail40_repair.lo am_libtail40_static_la_OBJECTS = $(am__objects_2) libtail40_static_la_OBJECTS = $(am_libtail40_static_la_OBJECTS) libtail40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libtail40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libtail40_minimal_la_SOURCES) \ $(libtail40_static_la_SOURCES) DIST_SOURCES = $(am__libtail40_minimal_la_SOURCES_DIST) \ $(libtail40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ tail40_sources = tail40.c tail40_repair.c tail40.h tail40_repair.h STATIC_LIBS = libtail40-static.la libtail40_static_la_SOURCES = $(tail40_sources) libtail40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libtail40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libtail40_minimal_la_SOURCES = $(tail40_sources) @ENABLE_MINIMAL_TRUE@libtail40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/tail40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/tail40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libtail40-minimal.la: $(libtail40_minimal_la_OBJECTS) $(libtail40_minimal_la_DEPENDENCIES) $(libtail40_minimal_la_LINK) $(am_libtail40_minimal_la_rpath) $(libtail40_minimal_la_OBJECTS) $(libtail40_minimal_la_LIBADD) $(LIBS) libtail40-static.la: $(libtail40_static_la_OBJECTS) $(libtail40_static_la_DEPENDENCIES) $(libtail40_static_la_LINK) $(libtail40_static_la_OBJECTS) $(libtail40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtail40_minimal_la-tail40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtail40_minimal_la-tail40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtail40_static_la-tail40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtail40_static_la-tail40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libtail40_minimal_la-tail40.lo: tail40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtail40_minimal_la_CFLAGS) $(CFLAGS) -MT libtail40_minimal_la-tail40.lo -MD -MP -MF $(DEPDIR)/libtail40_minimal_la-tail40.Tpo -c -o libtail40_minimal_la-tail40.lo `test -f 'tail40.c' || echo '$(srcdir)/'`tail40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libtail40_minimal_la-tail40.Tpo $(DEPDIR)/libtail40_minimal_la-tail40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tail40.c' object='libtail40_minimal_la-tail40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtail40_minimal_la_CFLAGS) $(CFLAGS) -c -o libtail40_minimal_la-tail40.lo `test -f 'tail40.c' || echo '$(srcdir)/'`tail40.c libtail40_minimal_la-tail40_repair.lo: tail40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtail40_minimal_la_CFLAGS) $(CFLAGS) -MT libtail40_minimal_la-tail40_repair.lo -MD -MP -MF $(DEPDIR)/libtail40_minimal_la-tail40_repair.Tpo -c -o libtail40_minimal_la-tail40_repair.lo `test -f 'tail40_repair.c' || echo '$(srcdir)/'`tail40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libtail40_minimal_la-tail40_repair.Tpo $(DEPDIR)/libtail40_minimal_la-tail40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tail40_repair.c' object='libtail40_minimal_la-tail40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtail40_minimal_la_CFLAGS) $(CFLAGS) -c -o libtail40_minimal_la-tail40_repair.lo `test -f 'tail40_repair.c' || echo '$(srcdir)/'`tail40_repair.c libtail40_static_la-tail40.lo: tail40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtail40_static_la_CFLAGS) $(CFLAGS) -MT libtail40_static_la-tail40.lo -MD -MP -MF $(DEPDIR)/libtail40_static_la-tail40.Tpo -c -o libtail40_static_la-tail40.lo `test -f 'tail40.c' || echo '$(srcdir)/'`tail40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libtail40_static_la-tail40.Tpo $(DEPDIR)/libtail40_static_la-tail40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tail40.c' object='libtail40_static_la-tail40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtail40_static_la_CFLAGS) $(CFLAGS) -c -o libtail40_static_la-tail40.lo `test -f 'tail40.c' || echo '$(srcdir)/'`tail40.c libtail40_static_la-tail40_repair.lo: tail40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtail40_static_la_CFLAGS) $(CFLAGS) -MT libtail40_static_la-tail40_repair.lo -MD -MP -MF $(DEPDIR)/libtail40_static_la-tail40_repair.Tpo -c -o libtail40_static_la-tail40_repair.lo `test -f 'tail40_repair.c' || echo '$(srcdir)/'`tail40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libtail40_static_la-tail40_repair.Tpo $(DEPDIR)/libtail40_static_la-tail40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tail40_repair.c' object='libtail40_static_la-tail40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtail40_static_la_CFLAGS) $(CFLAGS) -c -o libtail40_static_la-tail40_repair.lo `test -f 'tail40_repair.c' || echo '$(srcdir)/'`tail40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/tail40/tail40.c0000644000175000017500000003170211131470543017522 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tail40.c -- reiser4 tail (formatting) item plugin. */ #include "tail40.h" #include "tail40_repair.h" #include #include #include /* Returns tail length. */ uint32_t tail40_units(reiser4_place_t *place) { return place->len - place->off; } /* Returns key from tail at @place. */ errno_t tail40_fetch_key(reiser4_place_t *place, reiser4_key_t *key) { uint32_t pos; aal_assert("vpf-627", key != NULL); aal_assert("vpf-626", place != NULL); pos = place->pos.unit; return body40_get_key(place, pos, key, NULL); } /* Reads units from tail at @place into passed @hint. */ int64_t tail40_read_units(reiser4_place_t *place, trans_hint_t *hint) { uint32_t count; aal_assert("umka-1674", hint != NULL); aal_assert("umka-1673", place != NULL); aal_assert("vpf-1859", hint->specific != NULL); count = hint->count; /* Check if we read from the start of item. If so normilize position to read from. Value MAX_UINT32 is used in libreiser4 for denoting that we want to do something to whole item, that is from its start. */ if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; /* Calculating number of bytes, which can be actually read from this tail item. It cannot be more than item length. */ if (tail40_pos(place) + hint->count > place->len) count = place->len - tail40_pos(place); /* Copying data from tail body to hint. */ aal_memcpy(hint->specific, place->body + tail40_pos(place), count); return count; } #ifndef ENABLE_MINIMAL /* Estimates how many bytes in tree is needed to write @hint->count bytes of data. This function considers, that tail item is not expandable one. That is, tail will not be splitted at insert point, but will be rewritten instead. */ errno_t tail40_prep_write(reiser4_place_t *place, trans_hint_t *hint) { uint16_t space; aal_assert("umka-1836", hint != NULL); aal_assert("umka-2437", place != NULL); aal_assert("umka-3113", place->node != NULL); hint->overhead = place->off; /* Check if we want to create new tail item. If so, we say, that we need @hint->count bytes in tree. Even if this is more than one node can fit, it is okay, because write function will actually write only amount of data which may fit into node at passed @place. */ if (place->pos.unit == MAX_UINT32) { hint->len = hint->count; aal_memcpy(&hint->maxkey, &hint->offset, sizeof(hint->maxkey)); } else { uint32_t right; uint64_t max_offset; aal_assert("umka-2284", place != NULL); /* Item already exists. We will rewrite some part of it and some part have to be append. */ right = place->len - tail40_pos(place); hint->len = right ? 0 : hint->count; /* Getting maximal real key. It will be needed to determine if we insert data inside tail or behind it. */ tail40_maxreal_key(place, &hint->maxkey); max_offset = objcall(&hint->maxkey, get_offset) + 1; objcall(&hint->maxkey, set_offset, max_offset); } /* Max possible item size. */ space = objcall(place->node, maxspace); if (hint->len > (int32_t)(space - hint->overhead)) hint->len = space - hint->overhead; return 0; } /* Rewrites tail from passed @place by data from @hint. */ int64_t tail40_write_units(reiser4_place_t *place, trans_hint_t *hint) { uint64_t ins_offset; uint64_t max_offset; uint32_t count; aal_assert("umka-1677", hint != NULL); aal_assert("umka-1678", place != NULL); hint->bytes = 0; count = hint->count; /* Check if we create new tail item. If so -- normalize insert pos. */ if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; /* Calculating actual amount of data to be written. */ if (count + tail40_pos(place) > place->len) count = place->len - tail40_pos(place); /* Getting old max real offset. */ max_offset = objcall(&hint->maxkey, get_offset); /* Getting insert offset. */ ins_offset = objcall(&hint->offset, get_offset); /* Checking if we insert a hole. That is @hint->specific si null. If so, then we write @count of zeros. Writing data from @hint->specific otherwise. */ if (hint->specific) { /* Copying data into @place. */ aal_memcpy(place->body + tail40_pos(place), hint->specific, count); } else { /* Making hole @count of size. */ aal_memset(place->body + tail40_pos(place), 0, count); } /* Updating item key if pos is zero, that is start of item. FIXME: this seems to do nothing. */ if (place->pos.unit == 0) body40_get_key(place, 0, &place->key, NULL); /* Bytes are added if we wrote something behind of item size. */ if (ins_offset + count > max_offset) hint->bytes = ins_offset + count - max_offset; place_mkdirty(place); return count; } /* Return max real key inside tail at @place. */ errno_t tail40_maxreal_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("vpf-442", place != NULL); aal_assert("vpf-443", key != NULL); return body40_maxreal_key(place, key, NULL); } #endif /* Return max possible key iside tail at @place. */ errno_t tail40_maxposs_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("umka-1209", place != NULL); aal_assert("umka-1210", key != NULL); return body40_maxposs_key(place, key); } /* Makes lookup of @key inside tail at @place. */ lookup_t tail40_lookup(reiser4_place_t *place, lookup_hint_t *hint, lookup_bias_t bias) { uint32_t units; uint64_t offset; uint64_t wanted; aal_assert("umka-1229", hint != NULL); aal_assert("umka-1228", place != NULL); units = tail40_units(place); offset = objcall(&place->key, get_offset); wanted = objcall(hint->key, get_offset); /* Check if needed key is inside this tail. */ if (wanted >= offset && wanted < offset + units) { place->pos.unit = wanted - offset; return PRESENT; } place->pos.unit = units; return (bias == FIND_CONV ? PRESENT : ABSENT); } #ifndef ENABLE_MINIMAL /* FIXME: *_place->off is not properly handled here. */ /* Estimates how many bytes may be shifted from @stc_place to @dst_place. */ errno_t tail40_prep_shift(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { int check_point; uint32_t space; uint32_t overhead; aal_assert("umka-2279", hint != NULL); aal_assert("umka-1664", src_place != NULL); check_point = (src_place->pos.item == hint->pos.item && hint->pos.unit != MAX_UINT32); space = hint->units_bytes; /* If a new item is being created, substract the overhead. */ overhead = hint->create ? src_place->off : 0; if (space <= overhead) { hint->units_bytes = hint->units_number = 0; return 0; } space -= overhead; /* Check if this is left shift. */ if (hint->control & SF_ALLOW_LEFT) { /* Check if should take into account inert point from @hint. */ if (hint->control & SF_UPDATE_POINT && check_point) { /* Correcting @hint->rest. It should contain number of bytes we realy can shift. */ if (space > hint->pos.unit) space = hint->pos.unit; hint->pos.unit -= space; /* Moving insert point to @dst_place. */ if (hint->pos.unit == 0 && hint->control & SF_MOVE_POINT) { hint->result |= SF_MOVE_POINT; hint->pos.unit = space + (dst_place ? dst_place->len - dst_place->off : 0); } } else { if (space + src_place->off > src_place->len) space = src_place->len - src_place->off; } } else { uint32_t right; /* Check if should take into account insert point. */ if (hint->control & SF_UPDATE_POINT && check_point) { /* Is insert point inside item? */ if (hint->pos.unit + src_place->off < src_place->len) { right = src_place->len - hint->pos.unit - src_place->off; /* Insert point inside item and we can move something. */ if (space > right) space = right; /* If all @right units are shifted, update the point if needed. */ if ((space == right) && (hint->control & SF_MOVE_POINT)) { hint->result |= SF_MOVE_POINT; hint->pos.unit = 0; } } else { /* Updating insert point to first position in neighbour item. */ if (hint->control & SF_MOVE_POINT) { hint->result |= SF_MOVE_POINT; hint->pos.unit = 0; } space = 0; } } else { if (space + src_place->off > src_place->len) space = src_place->len - src_place->off; } } hint->units_bytes = space + overhead; hint->units_number = space; return 0; } /* Copy @count of units from @src_place at src_pos to @dst_place and @dst_pos. This function is used in balancing code. */ errno_t tail40_copy(reiser4_place_t *dst_place, uint32_t dst_pos, reiser4_place_t *src_place, uint32_t src_pos, uint32_t count) { aal_assert("umka-2075", dst_place != NULL); aal_assert("umka-2076", src_place != NULL); if (count > 0) { aal_memcpy(dst_place->body + dst_pos + dst_place->off, src_place->body + src_pos + src_place->off, count); place_mkdirty(dst_place); } return 0; } /* Expand tail at @place and @pos by @count bytes. Used in balancing code pathes. */ uint32_t tail40_expand(reiser4_place_t *place, uint32_t pos, uint32_t count) { uint32_t size; aal_assert("vpf-1559", place->len >= pos + count + place->off); size = place->len - pos - place->off - count; if (size && count) { aal_memmove(place->body + place->off + pos + count, place->body + place->off + pos, size); place_mkdirty(place); } return 0; } /* Shrink tail at @place and @pos by @count bytes. Used in balancing code pathes. */ static uint32_t tail40_shrink(reiser4_place_t *place, uint32_t pos, uint32_t count, uint32_t len) { uint32_t size; aal_assert("vpf-1764", place->len >= pos + count + place->off); size = place->len - pos - place->off - count; if (size && count) { aal_memmove(place->body + pos + place->off, place->body + pos + place->off + count, size); place_mkdirty(place); } return 0; } /* Shift some number of units from @src_place to @dst_place. All actions are performed with keeping in mind passed @hint. */ errno_t tail40_shift_units(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { uint32_t pos; uint64_t offset; aal_assert("umka-1665", src_place != NULL); aal_assert("umka-1666", dst_place != NULL); aal_assert("umka-1667", hint != NULL); if (hint->create) hint->units_bytes -= src_place->off; /* Check if this is left shift. */ if (hint->control & SF_ALLOW_LEFT) { pos = dst_place->len - dst_place->off - hint->units_number; /* Expanding tail item at @dst_place by @hint->units_number value. It is that, prep_shift() has prepared for us. */ tail40_expand(dst_place, pos, hint->units_number); /* Copy @hint->units_bytes units from @src_place to @dst_place at @dst_place->len position. */ tail40_copy(dst_place, pos, src_place, 0, hint->units_bytes); /* Shrink @src_place at 0 position by @hint->rest bytes, that is by number of bytes we have just moved to @dst_place. */ tail40_shrink(src_place, 0, hint->units_number, hint->units_bytes); /* Updating @place->key in order to maintain consistency of left delimiting keys. */ offset = objcall(&src_place->key, get_offset); objcall(&src_place->key, set_offset, offset + hint->units_bytes); } else { /* Right shift. Expanding @dst_place at 0 pos. */ tail40_expand(dst_place, 0, hint->units_number); /* Copying data and removing it from source. */ pos = src_place->len - src_place->off - hint->units_number; tail40_copy(dst_place, 0, src_place, pos, hint->units_bytes); tail40_shrink(src_place, pos, hint->units_number, hint->units_bytes); /* Updating place key. */ offset = objcall(&dst_place->key, get_offset); objcall(&dst_place->key, set_offset, offset - hint->units_bytes); } return 0; } /* Removes some number of units from tail at @place based on @hint. This is used in trunc_flow() code path. That is in tail convertion code and in object truncate() functions. */ int64_t tail40_trunc_units(reiser4_place_t *place, trans_hint_t *hint) { uint64_t count; aal_assert("umka-2480", hint != NULL); aal_assert("umka-2479", place != NULL); /* Correcting position. */ if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; /* Correcting count. */ count = hint->count; if (tail40_pos(place) + count > place->len) count = place->len - tail40_pos(place); /* Taking care about rest of tail */ if (tail40_pos(place) + count < place->len) { aal_memmove(place->body + tail40_pos(place), place->body + tail40_pos(place) + count, place->len - (tail40_pos(place) + count)); } /* Updating key if it is needed. */ if (place->pos.unit == 0 && tail40_pos(place) + count < place->len) { body40_get_key(place, place->pos.unit + count, &place->key, NULL); } hint->overhead = (count == place->len - place->off) ? place->off : 0; hint->len = count; hint->bytes = count; return count; } /* Returns item size in bytes */ uint64_t tail40_size(reiser4_place_t *place) { aal_assert("vpf-1210", place != NULL); return place->len - place->off; } #endif reiser4progs-1.0.7.orig/plugin/item/tail40/Makefile.am0000644000175000017500000000111511131470543020310 0ustar fzfzincludedir = -I$(top_srcdir)/include tail40_sources = tail40.c tail40_repair.c tail40.h tail40_repair.h STATIC_LIBS = libtail40-static.la libtail40_static_la_SOURCES = $(tail40_sources) libtail40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libtail40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libtail40_minimal_la_SOURCES = $(tail40_sources) libtail40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/tail40/tail40.h0000644000175000017500000000311311131470543017522 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tail40.h -- reiser4 common tail functions. */ #ifndef TAIL40_H #define TAIL40_H #include #include #define tail40_pos(place) ((place)->pos.unit + (place)->off) extern uint32_t tail40_units(reiser4_place_t *place); extern errno_t tail40_maxreal_key(reiser4_place_t *place, reiser4_key_t *key); extern errno_t tail40_maxposs_key(reiser4_place_t *place, reiser4_key_t *key); extern uint32_t tail40_expand(reiser4_place_t *place, uint32_t pos, uint32_t count); extern errno_t tail40_copy(reiser4_place_t *dst_place, uint32_t dst_pos, reiser4_place_t *src_place, uint32_t src_pos, uint32_t count); extern errno_t tail40_prep_shift(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint); extern errno_t tail40_shift_units(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint); extern lookup_t tail40_lookup(reiser4_place_t *place, lookup_hint_t *hint, lookup_bias_t bias); extern errno_t tail40_fetch_key(reiser4_place_t *place, reiser4_key_t *key); extern uint64_t tail40_size(reiser4_place_t *place); extern errno_t tail40_prep_write(reiser4_place_t *place, trans_hint_t *hint); extern int64_t tail40_write_units(reiser4_place_t *place, trans_hint_t *hint); extern int64_t tail40_trunc_units(reiser4_place_t *place, trans_hint_t *hint); extern int64_t tail40_read_units(reiser4_place_t *place, trans_hint_t *hint); #endif reiser4progs-1.0.7.orig/plugin/item/tail40/tail40_repair.h0000644000175000017500000000133711131470543021072 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tail40_repair.h -- reiser4 common tail repair functions. */ #ifndef TAIL40_REPAIR_H #define TAIL40_REPAIR_H #ifndef ENABLE_MINIMAL #include #include extern errno_t tail40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t tail40_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t tail40_check_struct(reiser4_place_t *place, repair_hint_t *hint); extern errno_t tail40_pack(reiser4_place_t *place, aal_stream_t *stream); extern errno_t tail40_unpack(reiser4_place_t *place, aal_stream_t *stream); #endif #endif reiser4progs-1.0.7.orig/plugin/item/tail40/tail40_repair.c0000644000175000017500000000561311131470543021066 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tail40_repair.c -- reiser4 default tail plugin. */ #ifndef ENABLE_MINIMAL #include "tail40.h" #include #include #include errno_t tail40_check_struct(reiser4_place_t *place, repair_hint_t *hint) { aal_assert("vpf-1508", place != NULL); if (place->len <= place->off) { fsck_mess("Node (%llu), item (%u): %s item of zero length " "found.", place_blknr(place), place->pos.item, place->plug->p.label); return RE_FATAL; } return 0; } errno_t tail40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { reiser4_place_t *src; aal_assert("vpf-982", place != NULL); aal_assert("vpf-983", hint != NULL); aal_assert("vpf-984", hint->specific != NULL); src = (reiser4_place_t *)hint->specific; if (tail40_pos(place) == place->len || place->pos.unit == MAX_UINT32) { /* New item or appending to the end. */ hint->count = src->len - tail40_pos(src); } else { uint64_t doffset, start; doffset = objcall(&place->key, get_offset); start = objcall(&hint->offset, get_offset); if (start < doffset) /* Prepending. */ hint->count = doffset - start; else hint->count = 0; } hint->overhead = (place->pos.unit == MAX_UINT32) ? place->off : 0; hint->bytes = 0; hint->len = hint->count; return 0; } errno_t tail40_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { reiser4_place_t *src; uint64_t offset; uint32_t pos; errno_t res; aal_assert("vpf-987", place != NULL); aal_assert("vpf-988", hint != NULL); src = (reiser4_place_t *)hint->specific; pos = place->pos.unit == MAX_UINT32 ? 0 : place->pos.unit; offset = objcall(&hint->offset, get_offset); if (hint->count) { /* Expand @place & copy @hint->count units there from @src. */ if (place->pos.unit != MAX_UINT32) tail40_expand(place, place->pos.unit, hint->len); res = tail40_copy(place, pos, src, src->pos.unit, hint->count); if (res) return res; place_mkdirty(place); offset += hint->count; } else offset += tail40_units(place) - pos; /* Set the maxkey of the passed operation. */ aal_memcpy(&hint->maxkey, &hint->offset, sizeof(hint->maxkey)); objcall(&hint->maxkey, set_offset, offset); /* Update the item key. */ if (pos == 0 && hint->count) { aal_memcpy(&place->key, &hint->offset, sizeof(place->key)); } return 0; } errno_t tail40_pack(reiser4_place_t *place, aal_stream_t *stream) { aal_assert("vpf-1767", place != NULL); aal_assert("vpf-1768", stream != NULL); if (place->off) { aal_stream_write(stream, place->body, place->off); } return 0; } errno_t tail40_unpack(reiser4_place_t *place, aal_stream_t *stream) { aal_assert("vpf-1769", place != NULL); aal_assert("vpf-1770", stream != NULL); if (place->off) { aal_stream_read(stream, place->body, place->off); } return 0; } #endif reiser4progs-1.0.7.orig/plugin/item/bbox40/0000777000175000017500000000000011134133446016264 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/bbox40/Makefile.in0000644000175000017500000004641311134132273020332 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/bbox40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libbbox40_minimal_la_LIBADD = am__libbbox40_minimal_la_SOURCES_DIST = bbox40.c bbox40_repair.c \ bbox40_repair.h am__objects_1 = libbbox40_minimal_la-bbox40.lo \ libbbox40_minimal_la-bbox40_repair.lo @ENABLE_MINIMAL_TRUE@am_libbbox40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libbbox40_minimal_la_OBJECTS = $(am_libbbox40_minimal_la_OBJECTS) libbbox40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libbbox40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libbbox40_minimal_la_rpath = libbbox40_static_la_LIBADD = am__objects_2 = libbbox40_static_la-bbox40.lo \ libbbox40_static_la-bbox40_repair.lo am_libbbox40_static_la_OBJECTS = $(am__objects_2) libbbox40_static_la_OBJECTS = $(am_libbbox40_static_la_OBJECTS) libbbox40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libbbox40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libbbox40_minimal_la_SOURCES) \ $(libbbox40_static_la_SOURCES) DIST_SOURCES = $(am__libbbox40_minimal_la_SOURCES_DIST) \ $(libbbox40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ bbox40_sources = bbox40.c bbox40_repair.c bbox40_repair.h STATIC_LIBS = libbbox40-static.la libbbox40_static_la_SOURCES = $(bbox40_sources) libbbox40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libbbox40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libbbox40_minimal_la_SOURCES = $(bbox40_sources) @ENABLE_MINIMAL_TRUE@libbbox40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/bbox40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/bbox40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libbbox40-minimal.la: $(libbbox40_minimal_la_OBJECTS) $(libbbox40_minimal_la_DEPENDENCIES) $(libbbox40_minimal_la_LINK) $(am_libbbox40_minimal_la_rpath) $(libbbox40_minimal_la_OBJECTS) $(libbbox40_minimal_la_LIBADD) $(LIBS) libbbox40-static.la: $(libbbox40_static_la_OBJECTS) $(libbbox40_static_la_DEPENDENCIES) $(libbbox40_static_la_LINK) $(libbbox40_static_la_OBJECTS) $(libbbox40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbbox40_minimal_la-bbox40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbbox40_minimal_la-bbox40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbbox40_static_la-bbox40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbbox40_static_la-bbox40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libbbox40_minimal_la-bbox40.lo: bbox40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbbox40_minimal_la_CFLAGS) $(CFLAGS) -MT libbbox40_minimal_la-bbox40.lo -MD -MP -MF $(DEPDIR)/libbbox40_minimal_la-bbox40.Tpo -c -o libbbox40_minimal_la-bbox40.lo `test -f 'bbox40.c' || echo '$(srcdir)/'`bbox40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libbbox40_minimal_la-bbox40.Tpo $(DEPDIR)/libbbox40_minimal_la-bbox40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bbox40.c' object='libbbox40_minimal_la-bbox40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbbox40_minimal_la_CFLAGS) $(CFLAGS) -c -o libbbox40_minimal_la-bbox40.lo `test -f 'bbox40.c' || echo '$(srcdir)/'`bbox40.c libbbox40_minimal_la-bbox40_repair.lo: bbox40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbbox40_minimal_la_CFLAGS) $(CFLAGS) -MT libbbox40_minimal_la-bbox40_repair.lo -MD -MP -MF $(DEPDIR)/libbbox40_minimal_la-bbox40_repair.Tpo -c -o libbbox40_minimal_la-bbox40_repair.lo `test -f 'bbox40_repair.c' || echo '$(srcdir)/'`bbox40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libbbox40_minimal_la-bbox40_repair.Tpo $(DEPDIR)/libbbox40_minimal_la-bbox40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bbox40_repair.c' object='libbbox40_minimal_la-bbox40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbbox40_minimal_la_CFLAGS) $(CFLAGS) -c -o libbbox40_minimal_la-bbox40_repair.lo `test -f 'bbox40_repair.c' || echo '$(srcdir)/'`bbox40_repair.c libbbox40_static_la-bbox40.lo: bbox40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbbox40_static_la_CFLAGS) $(CFLAGS) -MT libbbox40_static_la-bbox40.lo -MD -MP -MF $(DEPDIR)/libbbox40_static_la-bbox40.Tpo -c -o libbbox40_static_la-bbox40.lo `test -f 'bbox40.c' || echo '$(srcdir)/'`bbox40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libbbox40_static_la-bbox40.Tpo $(DEPDIR)/libbbox40_static_la-bbox40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bbox40.c' object='libbbox40_static_la-bbox40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbbox40_static_la_CFLAGS) $(CFLAGS) -c -o libbbox40_static_la-bbox40.lo `test -f 'bbox40.c' || echo '$(srcdir)/'`bbox40.c libbbox40_static_la-bbox40_repair.lo: bbox40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbbox40_static_la_CFLAGS) $(CFLAGS) -MT libbbox40_static_la-bbox40_repair.lo -MD -MP -MF $(DEPDIR)/libbbox40_static_la-bbox40_repair.Tpo -c -o libbbox40_static_la-bbox40_repair.lo `test -f 'bbox40_repair.c' || echo '$(srcdir)/'`bbox40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libbbox40_static_la-bbox40_repair.Tpo $(DEPDIR)/libbbox40_static_la-bbox40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bbox40_repair.c' object='libbbox40_static_la-bbox40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbbox40_static_la_CFLAGS) $(CFLAGS) -c -o libbbox40_static_la-bbox40_repair.lo `test -f 'bbox40_repair.c' || echo '$(srcdir)/'`bbox40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/bbox40/bbox40.c0000644000175000017500000000733511131470543017531 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. bbox40.c -- black box, reiser4 safe link items plugin implementation. */ #include #include "bbox40_repair.h" reiser4_core_t *bbox40_core = NULL; static uint32_t bbox40_units(reiser4_place_t *place) { return 1; } #ifndef ENABLE_MINIMAL static errno_t bbox40_prep_insert(reiser4_place_t *place, trans_hint_t *hint) { slink_hint_t *link; aal_assert("vpf-1569", hint != NULL); link = (slink_hint_t *)hint->specific; aal_assert("vpf-1570", link->key.plug != NULL); hint->overhead = 0; hint->count = 1; hint->len = plugcall(link->key.plug, bodysize); hint->len *= sizeof(uint64_t); if (link->type == SL_TRUNCATE) hint->len += sizeof(uint64_t); return 0; } static errno_t bbox40_insert_units(reiser4_place_t *place, trans_hint_t *hint) { slink_hint_t *link; uint8_t size; aal_assert("vpf-1571", place != NULL); aal_assert("vpf-1572", hint != NULL); link = (slink_hint_t *)hint->specific; aal_assert("vpf-1573", link->key.plug != NULL); size = plugcall(link->key.plug, bodysize) * sizeof(uint64_t); aal_memcpy(place->body, &link->key.body, size); if (link->type == SL_TRUNCATE) aal_memcpy(place->body + size, &link->size, sizeof(uint64_t)); return 0; } static errno_t bbox40_remove_units(reiser4_place_t *place, trans_hint_t *hint) { slink_hint_t *link; aal_assert("vpf-1574", hint != NULL); link = (slink_hint_t *)hint->specific; aal_assert("vpf-1575", link->key.plug != NULL); hint->overhead = 0; hint->len = place->len; return 0; } static errno_t bbox40_fetch_units(reiser4_place_t *place, trans_hint_t *hint) { slink_hint_t *link; uint64_t type; uint8_t size; aal_assert("vpf-1576", hint != NULL); aal_assert("vpf-1577", place != NULL); aal_assert("vpf-1578", place->key.plug != NULL); link = (slink_hint_t *)hint->specific; size = plugcall(place->key.plug, bodysize) * sizeof(uint64_t); link->key.plug = place->key.plug; aal_memcpy(&link->key.body, place->body, size); /* FIXME: this is hardcoded, type should be obtained in another way. */ type = objcall(&place->key, get_offset); if (type == SL_TRUNCATE) aal_memcpy(&link->size, place->body + size, sizeof(uint64_t)); return 0; } #endif static item_balance_ops_t balance_ops = { #ifndef ENABLE_MINIMAL .merge = NULL, .update_key = NULL, .mergeable = NULL, .maxreal_key = NULL, .prep_shift = NULL, .shift_units = NULL, .collision = NULL, .overhead = NULL, #endif .init = NULL, .lookup = NULL, .fetch_key = NULL, .maxposs_key = NULL, .units = bbox40_units }; static item_object_ops_t object_ops = { #ifndef ENABLE_MINIMAL .size = NULL, .bytes = NULL, .prep_write = NULL, .write_units = NULL, .trunc_units = NULL, .prep_insert = bbox40_prep_insert, .insert_units = bbox40_insert_units, .remove_units = bbox40_remove_units, .update_units = NULL, .fetch_units = bbox40_fetch_units, .layout = NULL, #else .fetch_units = NULL, #endif .read_units = NULL }; #ifndef ENABLE_MINIMAL static item_repair_ops_t repair_ops = { .check_struct = bbox40_check_struct, .check_layout = NULL, .prep_insert_raw = bbox40_prep_insert_raw, .insert_raw = bbox40_insert_raw, .pack = NULL, .unpack = NULL }; static item_debug_ops_t debug_ops = { .print = bbox40_print }; #endif reiser4_item_plug_t bbox40_plug = { .p = { .id = {ITEM_BLACKBOX40_ID, BLACK_BOX_ITEM, ITEM_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "bbox40", .desc = "Safe link item plugin.", #endif }, .object = &object_ops, .balance = &balance_ops, #ifndef ENABLE_MINIMAL .repair = &repair_ops, .debug = &debug_ops #endif }; reiser4progs-1.0.7.orig/plugin/item/bbox40/Makefile.am0000644000175000017500000000100611131470543020310 0ustar fzfzincludedir = -I$(top_srcdir)/include bbox40_sources = bbox40.c bbox40_repair.c bbox40_repair.h STATIC_LIBS = libbbox40-static.la libbbox40_static_la_SOURCES = $(bbox40_sources) libbbox40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libbbox40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libbbox40_minimal_la_SOURCES = $(bbox40_sources) libbbox40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/bbox40/bbox40_repair.c0000644000175000017500000000547411131470543021075 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. bbox40_repair.c -- reiser4 default black box plugin. */ #ifndef ENABLE_MINIMAL #include #include "bbox40_repair.h" errno_t bbox40_check_struct(reiser4_place_t *place, repair_hint_t *hint) { uint64_t type; uint8_t size; /* FIXME: this is hardcoded, type should be obtained in another way. */ type = objcall(&place->key, get_offset); if (type >= SL_LAST) { fsck_mess("Node (%llu), item (%u), [%s]: safe link " "item (%s) of the unknown type (%llu) found.", place_blknr(place), place->pos.item, print_key(bbox40_core, &place->key), place->plug->p.label, type); return RE_FATAL; } size = plugcall(place->key.plug, bodysize) * sizeof(uint64_t); if (type == SL_TRUNCATE) size += sizeof(uint64_t); if (size != place->len) { fsck_mess("Node (%llu), item (%u), [%s]: safe link item (%s) " "of the wrong length (%u) found. Should be (%u).", place_blknr(place), place->pos.item, print_key(bbox40_core, &place->key), place->plug->p.label, place->len, size); return RE_FATAL; } return 0; } void bbox40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options) { reiser4_key_t key; uint64_t type; uint16_t size, trunc; /* FIXME: this is hardcoded, type should be obtained in another way. */ type = objcall(&place->key, get_offset); size = plugcall(place->key.plug, bodysize) * sizeof(uint64_t); trunc = (type == SL_TRUNCATE) ? sizeof(uint64_t) : 0; if (place->len != (uint32_t)size + trunc) { aal_stream_format(stream, "Broken item.\n"); return; } aal_memcpy(&key, &place->key, sizeof(key)); aal_memcpy(&key.body, place->body, size); aal_stream_format(stream, "\n %s %s", print_key(bbox40_core, &key), reiser4_slink_name[type]); if (type == SL_TRUNCATE) { uint64_t *len = (uint64_t *)(place->body + size); aal_stream_format(stream, "%llu", *len); } aal_stream_format(stream, "\n"); } errno_t bbox40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { reiser4_place_t *src; aal_assert("vpf-1662", place != NULL); aal_assert("vpf-1663", hint != NULL); aal_assert("vpf-1664", hint->specific != NULL); src = (reiser4_place_t *)hint->specific; hint->overhead = 0; hint->bytes = 0; if (place->pos.unit == MAX_UINT32) { hint->count = 1; hint->len = src->len; } else { hint->count = hint->len = 0; } return 0; } errno_t bbox40_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { reiser4_place_t *src; aal_assert("vpf-1665", place != NULL); aal_assert("vpf-1666", hint != NULL); aal_assert("vpf-1667", hint->specific != NULL); if (!hint->len) return 0; src = (reiser4_place_t *)hint->specific; aal_memcpy(place->body, src->body, hint->len); place_mkdirty(place); return 0; } #endif reiser4progs-1.0.7.orig/plugin/item/bbox40/bbox40_repair.h0000644000175000017500000000132311131470543021067 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. bbox40_repair.h -- black box, reiser4 default safe link plugin repair method declarations. */ #ifndef BLACKBOX40_REPAIR_H #define BLACKBOX40_REPAIR_H #ifndef ENABLE_MINIMAL #include extern reiser4_core_t *bbox40_core; extern errno_t bbox40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t bbox40_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t bbox40_check_struct(reiser4_place_t *place, repair_hint_t *hint); extern void bbox40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options); #endif #endif reiser4progs-1.0.7.orig/plugin/item/body40/0000777000175000017500000000000011134133446016267 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/body40/Makefile.in0000644000175000017500000004131511134132274020332 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/body40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libbody40_minimal_la_LIBADD = am__libbody40_minimal_la_SOURCES_DIST = body40.c body40.h am__objects_1 = libbody40_minimal_la-body40.lo @ENABLE_MINIMAL_TRUE@am_libbody40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libbody40_minimal_la_OBJECTS = $(am_libbody40_minimal_la_OBJECTS) libbody40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libbody40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libbody40_minimal_la_rpath = libbody40_static_la_LIBADD = am__objects_2 = libbody40_static_la-body40.lo am_libbody40_static_la_OBJECTS = $(am__objects_2) libbody40_static_la_OBJECTS = $(am_libbody40_static_la_OBJECTS) libbody40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libbody40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libbody40_minimal_la_SOURCES) \ $(libbody40_static_la_SOURCES) DIST_SOURCES = $(am__libbody40_minimal_la_SOURCES_DIST) \ $(libbody40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ body40_sources = body40.c body40.h libbody40_static_la_SOURCES = $(body40_sources) libbody40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libbody40-minimal.la noinst_LTLIBRARIES = libbody40-static.la $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libbody40_minimal_la_SOURCES = $(body40_sources) @ENABLE_MINIMAL_TRUE@libbody40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/body40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/body40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libbody40-minimal.la: $(libbody40_minimal_la_OBJECTS) $(libbody40_minimal_la_DEPENDENCIES) $(libbody40_minimal_la_LINK) $(am_libbody40_minimal_la_rpath) $(libbody40_minimal_la_OBJECTS) $(libbody40_minimal_la_LIBADD) $(LIBS) libbody40-static.la: $(libbody40_static_la_OBJECTS) $(libbody40_static_la_DEPENDENCIES) $(libbody40_static_la_LINK) $(libbody40_static_la_OBJECTS) $(libbody40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbody40_minimal_la-body40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbody40_static_la-body40.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libbody40_minimal_la-body40.lo: body40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbody40_minimal_la_CFLAGS) $(CFLAGS) -MT libbody40_minimal_la-body40.lo -MD -MP -MF $(DEPDIR)/libbody40_minimal_la-body40.Tpo -c -o libbody40_minimal_la-body40.lo `test -f 'body40.c' || echo '$(srcdir)/'`body40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libbody40_minimal_la-body40.Tpo $(DEPDIR)/libbody40_minimal_la-body40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='body40.c' object='libbody40_minimal_la-body40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbody40_minimal_la_CFLAGS) $(CFLAGS) -c -o libbody40_minimal_la-body40.lo `test -f 'body40.c' || echo '$(srcdir)/'`body40.c libbody40_static_la-body40.lo: body40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbody40_static_la_CFLAGS) $(CFLAGS) -MT libbody40_static_la-body40.lo -MD -MP -MF $(DEPDIR)/libbody40_static_la-body40.Tpo -c -o libbody40_static_la-body40.lo `test -f 'body40.c' || echo '$(srcdir)/'`body40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libbody40_static_la-body40.Tpo $(DEPDIR)/libbody40_static_la-body40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='body40.c' object='libbody40_static_la-body40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbody40_static_la_CFLAGS) $(CFLAGS) -c -o libbody40_static_la-body40.lo `test -f 'body40.c' || echo '$(srcdir)/'`body40.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/body40/body40.h0000644000175000017500000000130611131470543017534 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. body40.h -- file body item plugins common code. */ #ifndef BODY40_H #define BODY40_H #include typedef uint64_t (*trans_func_t) (reiser4_place_t *, uint32_t); extern errno_t body40_get_key(reiser4_place_t *item, uint32_t pos, reiser4_key_t *key, trans_func_t trans_func); extern int body40_mergeable(reiser4_place_t *place1, reiser4_place_t *place2); extern errno_t body40_maxreal_key(reiser4_place_t *item, reiser4_key_t *key, trans_func_t trans_func); extern errno_t body40_maxposs_key(reiser4_place_t *item, reiser4_key_t *key); #endif reiser4progs-1.0.7.orig/plugin/item/body40/Makefile.am0000644000175000017500000000103511131470543020315 0ustar fzfzincludedir = -I$(top_srcdir)/include body40_sources = body40.c body40.h libbody40_static_la_SOURCES = $(body40_sources) libbody40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libbody40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = libbody40-static.la $(MINIMAL_LIBS) if ENABLE_MINIMAL libbody40_minimal_la_SOURCES = $(body40_sources) libbody40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/body40/body40.c0000644000175000017500000000346111131470543017533 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. body40.c -- file body item plugins common code. */ #include "body40.h" /* Builds the key of the unit at @pos and stores it inside passed @key variable. It is needed for updating item key after shifting, etc. */ errno_t body40_get_key(reiser4_place_t *place, uint32_t pos, reiser4_key_t *key, trans_func_t trans_func) { uint64_t offset; aal_memcpy(key, &place->key, sizeof(*key)); offset = objcall(key, get_offset); offset += (trans_func ? trans_func(place, pos) : pos); objcall(key, set_offset, offset); return 0; } /* Returns maximal possible key for file body item at @place. */ errno_t body40_maxposs_key(reiser4_place_t *place, reiser4_key_t *key) { uint64_t offset; reiser4_key_t *maxkey; aal_memcpy(key, &place->key, sizeof(*key)); maxkey = plugcall(key->plug, maximal); offset = objcall(maxkey, get_offset); objcall(key, set_offset, offset); return 0; } #ifndef ENABLE_MINIMAL /* Returns max real key inside passed @place. */ errno_t body40_maxreal_key(reiser4_place_t *place, reiser4_key_t *key, trans_func_t trans_func) { uint64_t units; uint64_t offset; units = objcall(place, balance->units); aal_memcpy(key, &place->key, sizeof(*key)); offset = objcall(key, get_offset); offset += (trans_func ? trans_func(place, units) : units); objcall(key, set_offset, offset - 1); return 0; } /* Checks if two file body items are mergeable. */ int body40_mergeable(reiser4_place_t *place1, reiser4_place_t *place2) { uint64_t offset; reiser4_key_t maxkey; objcall(place1, balance->maxreal_key, &maxkey); offset = objcall(&maxkey, get_offset); objcall(&maxkey, set_offset, offset + 1); return !objcall(&maxkey, compfull, &place2->key); } #endif reiser4progs-1.0.7.orig/plugin/item/extent40/0000777000175000017500000000000011134133446016641 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/extent40/Makefile.in0000644000175000017500000004714311134132274020711 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/extent40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libextent40_minimal_la_LIBADD = am__libextent40_minimal_la_SOURCES_DIST = extent40.c extent40_repair.c \ extent40.h extent40_repair.h am__objects_1 = libextent40_minimal_la-extent40.lo \ libextent40_minimal_la-extent40_repair.lo @ENABLE_MINIMAL_TRUE@am_libextent40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libextent40_minimal_la_OBJECTS = $(am_libextent40_minimal_la_OBJECTS) libextent40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libextent40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libextent40_minimal_la_rpath = libextent40_static_la_LIBADD = am__objects_2 = libextent40_static_la-extent40.lo \ libextent40_static_la-extent40_repair.lo am_libextent40_static_la_OBJECTS = $(am__objects_2) libextent40_static_la_OBJECTS = $(am_libextent40_static_la_OBJECTS) libextent40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libextent40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libextent40_minimal_la_SOURCES) \ $(libextent40_static_la_SOURCES) DIST_SOURCES = $(am__libextent40_minimal_la_SOURCES_DIST) \ $(libextent40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ extent40_sources = extent40.c extent40_repair.c extent40.h extent40_repair.h STATIC_LIBS = libextent40-static.la libextent40_static_la_SOURCES = $(extent40_sources) libextent40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libextent40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libextent40_minimal_la_SOURCES = $(extent40_sources) @ENABLE_MINIMAL_TRUE@libextent40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/extent40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/extent40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libextent40-minimal.la: $(libextent40_minimal_la_OBJECTS) $(libextent40_minimal_la_DEPENDENCIES) $(libextent40_minimal_la_LINK) $(am_libextent40_minimal_la_rpath) $(libextent40_minimal_la_OBJECTS) $(libextent40_minimal_la_LIBADD) $(LIBS) libextent40-static.la: $(libextent40_static_la_OBJECTS) $(libextent40_static_la_DEPENDENCIES) $(libextent40_static_la_LINK) $(libextent40_static_la_OBJECTS) $(libextent40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextent40_minimal_la-extent40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextent40_minimal_la-extent40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextent40_static_la-extent40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextent40_static_la-extent40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libextent40_minimal_la-extent40.lo: extent40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextent40_minimal_la_CFLAGS) $(CFLAGS) -MT libextent40_minimal_la-extent40.lo -MD -MP -MF $(DEPDIR)/libextent40_minimal_la-extent40.Tpo -c -o libextent40_minimal_la-extent40.lo `test -f 'extent40.c' || echo '$(srcdir)/'`extent40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libextent40_minimal_la-extent40.Tpo $(DEPDIR)/libextent40_minimal_la-extent40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extent40.c' object='libextent40_minimal_la-extent40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextent40_minimal_la_CFLAGS) $(CFLAGS) -c -o libextent40_minimal_la-extent40.lo `test -f 'extent40.c' || echo '$(srcdir)/'`extent40.c libextent40_minimal_la-extent40_repair.lo: extent40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextent40_minimal_la_CFLAGS) $(CFLAGS) -MT libextent40_minimal_la-extent40_repair.lo -MD -MP -MF $(DEPDIR)/libextent40_minimal_la-extent40_repair.Tpo -c -o libextent40_minimal_la-extent40_repair.lo `test -f 'extent40_repair.c' || echo '$(srcdir)/'`extent40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libextent40_minimal_la-extent40_repair.Tpo $(DEPDIR)/libextent40_minimal_la-extent40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extent40_repair.c' object='libextent40_minimal_la-extent40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextent40_minimal_la_CFLAGS) $(CFLAGS) -c -o libextent40_minimal_la-extent40_repair.lo `test -f 'extent40_repair.c' || echo '$(srcdir)/'`extent40_repair.c libextent40_static_la-extent40.lo: extent40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextent40_static_la_CFLAGS) $(CFLAGS) -MT libextent40_static_la-extent40.lo -MD -MP -MF $(DEPDIR)/libextent40_static_la-extent40.Tpo -c -o libextent40_static_la-extent40.lo `test -f 'extent40.c' || echo '$(srcdir)/'`extent40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libextent40_static_la-extent40.Tpo $(DEPDIR)/libextent40_static_la-extent40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extent40.c' object='libextent40_static_la-extent40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextent40_static_la_CFLAGS) $(CFLAGS) -c -o libextent40_static_la-extent40.lo `test -f 'extent40.c' || echo '$(srcdir)/'`extent40.c libextent40_static_la-extent40_repair.lo: extent40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextent40_static_la_CFLAGS) $(CFLAGS) -MT libextent40_static_la-extent40_repair.lo -MD -MP -MF $(DEPDIR)/libextent40_static_la-extent40_repair.Tpo -c -o libextent40_static_la-extent40_repair.lo `test -f 'extent40_repair.c' || echo '$(srcdir)/'`extent40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libextent40_static_la-extent40_repair.Tpo $(DEPDIR)/libextent40_static_la-extent40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extent40_repair.c' object='libextent40_static_la-extent40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextent40_static_la_CFLAGS) $(CFLAGS) -c -o libextent40_static_la-extent40_repair.lo `test -f 'extent40_repair.c' || echo '$(srcdir)/'`extent40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/extent40/extent40.h0000644000175000017500000000423111131470543020460 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. extent40.h -- reiser4 default extent plugin. */ #ifndef EXTENT40_H #define EXTENT40_H #include #include #include typedef enum insert_flag { /* Add some units at the end. */ ET40_OVERWRITE = 1 << 0, /* There is a head left in the current dst unit while overwriting. */ ET40_HEAD = 1 << 1, /* There is a tail left in the current dst unit while overwriting. */ ET40_TAIL = 1 << 2, /* Join new unit and existent one. */ ET40_JOIN = 1 << 3 } insert_flag_t; typedef struct extent40 { d64_t start; d64_t width; } extent40_t; extern reiser4_core_t *extent40_core; extern uint32_t extent40_units(reiser4_place_t *place); extern uint64_t extent40_offset(reiser4_place_t *place, uint32_t pos); extern uint32_t extent40_unit(reiser4_place_t *place, uint64_t offset); extern lookup_t extent40_lookup(reiser4_place_t *place, lookup_hint_t *hint, lookup_bias_t bias); extern errno_t extent40_maxreal_key(reiser4_place_t *place, reiser4_key_t *key); extern uint32_t extent40_expand(reiser4_place_t *place, uint32_t pos, uint32_t count); extern uint32_t extent40_shrink(reiser4_place_t *place, uint32_t pos, uint32_t count); #define extent40_device(place) \ ((place)->node->block->device) #define extent40_secsize(place) \ (extent40_device(place)->blksize) #define extent40_body(place) \ ((extent40_t *)(place)->body) #define et40_get_start(et) \ aal_get_le64((et), start) #define et40_set_start(et, val) \ aal_set_le64((et), start, val) #define et40_get_width(et) \ aal_get_le64((et), width) #define et40_set_width(et, val) \ aal_set_le64((et), width, val) #define et40_inc_start(et, val) \ et40_set_start((et), et40_get_start((et)) + val) #define et40_dec_start(et, val) \ et40_set_start((et), et40_get_start((et)) - val) #define et40_inc_width(et, val) \ et40_set_width((et), et40_get_width((et)) + val) #define et40_dec_width(et, val) \ et40_set_width((et), et40_get_width((et)) - val) #endif reiser4progs-1.0.7.orig/plugin/item/extent40/extent40.c0000644000175000017500000011250511131470543020457 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. extent40.c -- reiser4 default extent plugin. */ #ifdef HAVE_CONFIG_H # include #endif #include "extent40.h" #include "extent40_repair.h" reiser4_core_t *extent40_core = NULL; /* Returns number of units in passed extent @place */ uint32_t extent40_units(reiser4_place_t *place) { aal_assert("umka-1446", place != NULL); #ifdef ENABLE_DEBUG if (place->len % sizeof(extent40_t) != 0) { aal_error("Node (%llu), item (%u): Invalid extent " "item size (%u) detected.", place_blknr(place), place->pos.item, place->len); return 0; } #endif return place->len / sizeof(extent40_t); } /* Calculates extent size. */ uint64_t extent40_offset(reiser4_place_t *place, uint32_t pos) { extent40_t *extent; uint64_t blocks = 0; uint32_t i; aal_assert("umka-2204", place != NULL); extent = extent40_body(place); for (i = 0; i < pos; i++, extent++) blocks += et40_get_width(extent); return blocks * place_blksize(place); } /* Builds the key of the unit at @pos and stores it inside passed @key variable. It is needed for updating item key after shifting, etc. */ static errno_t extent40_fetch_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("vpf-623", key != NULL); aal_assert("vpf-622", place != NULL); return body40_get_key(place, place->pos.unit, key, extent40_offset); } #ifndef ENABLE_MINIMAL /* Returns item size in bytes */ static uint64_t extent40_size(reiser4_place_t *place) { uint32_t units = extent40_units(place); return extent40_offset(place, units); } /* Returns actual item size on disk */ static uint64_t extent40_bytes(reiser4_place_t *place) { extent40_t *extent; uint64_t i, blocks; aal_assert("umka-2204", place != NULL); extent = extent40_body(place); /* Count only valuable units. */ for (blocks = 0, i = 0; i < extent40_units(place); i++, extent++) { if (et40_get_start(extent)) blocks += et40_get_width(extent); } return (blocks * place_blksize(place)); } /* Gets the number of unit specified offset lies in. */ uint32_t extent40_unit(reiser4_place_t *place, uint64_t offset) { uint32_t i; uint32_t width = 0; extent40_t *extent; extent = extent40_body(place); for (i = 0; i < extent40_units(place); i++, extent++) { width += et40_get_width(extent) * place_blksize(place); if (offset < width) return i; } return i; } /* Removes @count byte from passed @place at @pos */ static errno_t extent40_remove_units(reiser4_place_t *place, trans_hint_t *hint) { uint32_t len; uint32_t pos; uint32_t units; void *src, *dst; aal_assert("vpf-941", place != NULL); aal_assert("umka-2402", hint != NULL); pos = place->pos.unit; units = extent40_units(place); /* Check for unit pos. */ if (pos == MAX_UINT32) pos = 0; aal_assert("umka-3026", pos + hint->count <= units); /* Calling @hint->region_func for removed region in order to let higher levels know that some extent region is released and perform some actions like release blocks in block allocator, etc. */ if (hint->region_func) { extent40_t *extent; uint32_t start; uint32_t width; uint32_t i; extent = extent40_body(place) + pos; for (i = pos; i < pos + hint->count; i++, extent++) { errno_t res; start = et40_get_start(extent); width = et40_get_width(extent); if (start != EXTENT_HOLE_UNIT) { if ((res = extent40_core->tree_ops.inc_free( place->node->tree, width))) { return res; } } if (start == EXTENT_UNALLOC_UNIT || start == EXTENT_HOLE_UNIT) continue; if ((res = hint->region_func(start, width, hint->data))) return res; } } /* Removing units from @pos to @hint->count. */ dst = extent40_body(place) + pos; src = extent40_body(place) + pos + hint->count; len = place->len - (pos + hint->count) * sizeof(extent40_t); aal_memmove(dst, src, len); /* Updating item's key by key of first unit. */ if (pos == 0) { if (extent40_fetch_key(place, &place->key)) return -EINVAL; } hint->overhead = 0; hint->len = sizeof(extent40_t) * hint->count; place_mkdirty(place); return 0; } /* Truncates extent item stating from left by @hint->count bytes. */ static int64_t extent40_trunc_units(reiser4_place_t *place, trans_hint_t *hint) { int32_t size; uint32_t epos; uint32_t skip; uint64_t count; uint64_t esize; uint64_t offset; uint32_t blksize; reiser4_key_t key; extent40_t *extent; aal_assert("umka-2458", place != NULL); aal_assert("umka-2461", hint != NULL); hint->len = 0; hint->bytes = 0; hint->overhead = 0; /* Check for unit pos. */ if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; blksize = place_blksize(place); extent = extent40_body(place) + place->pos.unit; offset = objcall(&hint->offset, get_offset); /* Get the amount of bytes that cannot be cut at the start. */ skip = (blksize - offset % blksize); if (skip == blksize) skip = 0; /* Set the start key offset to the block border. */ offset += skip; key = hint->offset; objcall(&key, set_offset, offset); /* Get the amount of bytes from @offset through the end of the item. */ offset -= objcall(&place->key, get_offset); esize = extent40_size(place) - offset; aal_assert("vpf-1759", offset % blksize == 0); /* Get number of blocks to be skipped within the unit. */ epos = (offset - extent40_offset(place, place->pos.unit)) / blksize; if (hint->count < skip) return hint->count; if ((count = hint->count - skip) > esize) count = esize; /* Loop though the units until @count of bytes are truncated. We do not increase @place->po.unit, because it will be the same for all ticks of the loop, as units will be removed fully or partially and this means, that @count is over. */ for (size = count; size > 0; ) { uint32_t remove; uint32_t start; uint32_t width; uint32_t eskip; errno_t res; uint32_t i; width = et40_get_width(extent); eskip = size == (int64_t)count ? epos : 0; aal_assert("vpf-1760", eskip < width); /* Calculating what is to be cut out. */ if ((remove = size / blksize) > width - eskip) remove = width - eskip; /* No one block needs to be removed anymore. */ if (remove == 0) break; aal_assert("vpf-1761", eskip == 0 || remove == width - eskip); aal_assert("vpf-1762", place->pos.unit == 0 || remove == width - eskip); /* Removing unit data from the cache */ for (i = 0; i < remove; i++) { aal_hash_table_remove(hint->blocks, &key); offset = objcall(&key, get_offset); objcall(&key, set_offset, (offset + blksize)); } start = et40_get_start(extent); if (start != EXTENT_HOLE_UNIT) { if ((res = extent40_core->tree_ops.inc_free( place->node->tree, remove))) { return res; } } /* Calling region remove notification function. */ if (start != EXTENT_HOLE_UNIT && start != EXTENT_UNALLOC_UNIT) { if ((res = hint->region_func(start + eskip, remove, hint->data))) { return res; } } if (start != EXTENT_HOLE_UNIT) hint->bytes += remove * blksize; /* Check if we remove whole unit. */ if (eskip) { et40_dec_width(extent, remove); hint->bytes += remove * blksize; } else if (remove < width) { if (start != EXTENT_HOLE_UNIT && start != EXTENT_UNALLOC_UNIT) { et40_inc_start(extent, remove); } et40_dec_width(extent, remove); hint->bytes += remove * blksize; } else { /* Here we remove whole unit. So, we count width blocks to be released, etc. */ hint->len += sizeof(extent40_t); /* Taking care about the rest of extent units if we're bot on the last unit. */ if (place->pos.unit < extent40_units(place) - 1) { uint32_t size = sizeof(extent40_t) * extent40_units(place) - (place->pos.unit + 1); aal_memmove(extent, extent + 1, size); } } size -= remove * blksize; } /* Updating key if it makes sense. */ if (place->pos.unit == 0 && epos == 0 && count) { offset = objcall(&place->key, get_offset); objcall(&place->key, set_offset, offset + count / blksize * blksize); } return count + skip; } /* Builds maximal real key in use for specified @place */ errno_t extent40_maxreal_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("vpf-438", key != NULL); aal_assert("vpf-437", place != NULL); return body40_maxreal_key(place, key, extent40_offset); } #endif /* Builds maximal possible key for the extent item */ errno_t extent40_maxposs_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("umka-1211", place != NULL); aal_assert("umka-1212", key != NULL); return body40_maxposs_key(place, key); } /* Performs lookup for specified @key inside the passed @place. Result of lookup will be stored in @pos. */ lookup_t extent40_lookup(reiser4_place_t *place, lookup_hint_t *hint, lookup_bias_t bias) { uint64_t offset; uint64_t wanted; uint32_t i, units; extent40_t *extent; aal_assert("umka-1500", place != NULL); aal_assert("umka-1501", hint != NULL); extent = extent40_body(place); units = extent40_units(place); wanted = objcall(hint->key, get_offset); offset = objcall(&place->key, get_offset); for (i = 0; i < units; i++, extent++) { offset += (et40_get_width(extent) * place_blksize(place)); if (offset > wanted) { place->pos.unit = i; return PRESENT; } } place->pos.unit = units; return (bias == FIND_CONV ? PRESENT : ABSENT); } #ifndef ENABLE_MINIMAL /* Reads @count bytes of extent data from the extent item at passed @pos into specified @buff. Uses data cache. */ static int64_t extent40_read_units(reiser4_place_t *place, trans_hint_t *hint) { void *buff; uint32_t i; errno_t res; uint64_t read; uint64_t count; uint32_t blksize; reiser4_key_t key; aal_block_t *block; uint64_t rel_offset; uint64_t read_offset; uint64_t block_offset; aal_assert("umka-1421", place != NULL); aal_assert("umka-1422", hint != NULL); count = hint->count; buff = hint->specific; if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; extent40_fetch_key(place, &key); blksize = place_blksize(place); read = count; /* Initializing read offset */ read_offset = objcall(&hint->offset, get_offset); rel_offset = read_offset - objcall(&key, get_offset); /* Loop through the units until needed amount of data is read or extent item is over. */ for (i = place->pos.unit; i < extent40_units(place) && count > 0; i++) { uint32_t size; extent40_t *extent; uint64_t blk, start; extent = extent40_body(place); /* Calculating start block for read. */ start = et40_get_start(extent + i); blk = start + (rel_offset / blksize); if (start == EXTENT_HOLE_UNIT) { /* Handle the holes. Here we fill @buff by zeros, as hole is detected during read. */ uint64_t width = et40_get_width(extent + i) - (rel_offset / blksize); for (; width > 0 && count > 0; count -= size, buff += size, read_offset += size, width--) { uint32_t rest; rest = blksize - (read_offset % blksize); if ((size = count) > rest) size = rest; aal_memset(buff, 0, size); } } else while (blk < start + et40_get_width(extent + i) && count > 0) { /* Loop though the one unit. */ uint32_t rest; rest = blksize - (read_offset % blksize); if ((size = count) > rest) size = rest; /* Initilaizing offset of block needed data lie in. It is needed for getting block from data cache. */ block_offset = read_offset - (read_offset & (blksize - 1)); objcall(&key, set_offset, block_offset); /* Getting block from the cache. */ block = aal_hash_table_lookup(hint->blocks, &key); if (!block) { reiser4_key_t *ins_key; /* If block is not found in cache, we read it and put to cache. */ aal_device_t *device = extent40_device(place); block = aal_block_load(device, blksize, blk); if (!block) return -EIO; ins_key = aal_calloc(sizeof(*ins_key), 0); if (!ins_key) return -ENOMEM; aal_memcpy(ins_key, &key, sizeof(key)); aal_hash_table_insert(hint->blocks, ins_key, block); } /* Copying data from found (loaded) block to @buff. */ aal_memcpy(buff, block->data + (read_offset % blksize), size); buff += size; count -= size; /* Updating read offset and blk next read will be performed from. */ read_offset += size; if ((read_offset % blksize) == 0) blk++; } res = extent40_core->tree_ops.mpressure(place->node->tree); if (res) return res; rel_offset = 0; } return read - count; } #else /* Reads @count bytes of extent data from the extent item at passed @pos into specified @buff. This function is used in minimal mode. It does not use data cache and reads data by 512 bytes chunks. This is needed because of GRUB, which has ugly mechanism of getting real block numbers data lie in. */ static int64_t extent40_read_units(reiser4_place_t *place, trans_hint_t *hint) { void *buff; uint32_t i; uint32_t read; uint32_t count; uint32_t blksize; uint32_t secsize; reiser4_key_t key; uint64_t rel_offset; uint64_t read_offset; aal_assert("umka-1421", place != NULL); buff = hint->specific; count = (uint32_t)hint->count; if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; extent40_fetch_key(place, &key); blksize = place_blksize(place); secsize = extent40_secsize(place); read_offset = objcall(&hint->offset, get_offset); rel_offset = read_offset - objcall(&key, get_offset); read = count; for (i = place->pos.unit; i < extent40_units(place) && count > 0; i++, rel_offset = 0) { uint32_t blkchunk; uint64_t blk, start; /* Calculating start block for read. */ start = et40_get_start(extent40_body(place) + i); blk = start + aal_div64(rel_offset, blksize, NULL); /* Loop though the extent blocks */ while (blk < start + et40_get_width(extent40_body(place) + i) && count > 0) { blk_t sec; uint32_t blklocal; blklocal = aal_mod64(rel_offset, blksize); if ((blkchunk = blksize - blklocal) > count) blkchunk = count; sec = (blk * (blksize / secsize)) + (blklocal / secsize); /* Loop though one block (4096) */ while (blkchunk > 0) { uint32_t secchunk; uint32_t seclocal; aal_block_t *block; /* Calculating data chunk to be copied */ seclocal = (blklocal % secsize); if ((secchunk = secsize - seclocal) > blkchunk) secchunk = blkchunk; /* Reading one sector */ if (!(block = aal_block_load(extent40_device(place), secsize, sec))) { return -EIO; } /* Copy data to passed buffer */ aal_memcpy(buff, block->data + seclocal, secchunk); aal_block_free(block); if ((seclocal + secchunk) % secsize == 0) sec++; buff += secchunk; count -= secchunk; rel_offset += secchunk; blkchunk -= secchunk; blklocal += secchunk; } if (blklocal % blksize == 0) blk++; } rel_offset = 0; } return (uint64_t)read - count; } #endif /* Updates extent unit at @place by @data */ static int64_t extent40_fetch_units(reiser4_place_t *place, trans_hint_t *hint) { uint32_t i, pos; extent40_t *extent; ptr_hint_t *ptr_hint; aal_assert("umka-2435", hint != NULL); aal_assert("umka-2434", place != NULL); pos = place->pos.unit == MAX_UINT32 ? 0 : place->pos.unit; extent = extent40_body(place) + pos; ptr_hint = (ptr_hint_t *)hint->specific; for (i = pos; i < pos + hint->count; i++, ptr_hint++, extent++) { ptr_hint->start = et40_get_start(extent); ptr_hint->width = et40_get_width(extent); } return hint->count; } #ifndef ENABLE_MINIMAL /* Checks if two extent items are mergeable */ static int extent40_mergeable(reiser4_place_t *place1, reiser4_place_t *place2) { aal_assert("umka-2199", place1 != NULL); aal_assert("umka-2200", place2 != NULL); return body40_mergeable(place1, place2); } uint32_t extent40_expand(reiser4_place_t *place, uint32_t pos, uint32_t count) { /* Preparing space in @dst_place */ if (pos < extent40_units(place)) { uint32_t size; void *src, *dst; src = (extent40_t *)place->body + pos; dst = src + (count * sizeof(extent40_t)); size = (extent40_units(place) - pos - count) * sizeof(extent40_t); aal_memmove(dst, src, size); place_mkdirty(place); } return 0; } uint32_t extent40_shrink(reiser4_place_t *place, uint32_t pos, uint32_t count) { /* Srinking @dst_place. */ if (pos < extent40_units(place)) { uint32_t size; void *src, *dst; dst = (extent40_t *)place->body + pos; src = dst + (count * sizeof(extent40_t)); size = (extent40_units(place) - pos) * sizeof(extent40_t); aal_memmove(dst, src, size); place_mkdirty(place); } return 0; } /* Makes copy of units from @src_place to @dst_place */ static errno_t extent40_copy(reiser4_place_t *dst_place, uint32_t dst_pos, reiser4_place_t *src_place, uint32_t src_pos, uint32_t count) { /* Copying units from @src_place to @dst_place */ if (count > 0) { uint32_t size; void *src, *dst; size = count * sizeof(extent40_t); src = (extent40_t *)src_place->body + src_pos; dst = (extent40_t *)dst_place->body + dst_pos; aal_memmove(dst, src, size); place_mkdirty(dst_place); } return 0; } /* Updates extent unit at @place by @data */ static int64_t extent40_update_units(reiser4_place_t *place, trans_hint_t *hint) { uint32_t i, pos; extent40_t *extent; ptr_hint_t *ptr_hint; aal_assert("umka-2431", hint != NULL); aal_assert("umka-2430", place != NULL); pos = place->pos.unit == MAX_UINT32 ? 0 : place->pos.unit; extent = extent40_body(place) + pos; ptr_hint = (ptr_hint_t *)hint->specific; for (i = pos; i < pos + hint->count; i++, ptr_hint++, extent++) { et40_set_start(extent, ptr_hint->start); et40_set_width(extent, ptr_hint->width); } place_mkdirty(place); return hint->count; } /* Estmates how many bytes is needed to insert @hint->count extent units to passed @place. */ static errno_t extent40_prep_insert(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("umka-2426", place != NULL); aal_assert("umka-2427", hint != NULL); hint->len = hint->count * sizeof(extent40_t); return 0; } /* Inserts one or more extent units to @place */ static int64_t extent40_insert_units(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("umka-2429", hint != NULL); aal_assert("umka-2428", place != NULL); if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; /* Expanding extent item at @place */ extent40_expand(place, place->pos.unit, hint->count); /* Updating @count units at @place */ return extent40_update_units(place, hint); } static int64_t extent40_alloc_block(reiser4_place_t *place, aal_hash_table_t *blocks, uint64_t ins_offset, uint64_t count) { reiser4_key_t *ins_key, key; aal_device_t *device; aal_block_t *block; uint64_t offset, bytes; uint32_t blksize; errno_t res; device = extent40_device(place); blksize = place_blksize(place); /* Get offset aligned to the blksize. */ offset = (ins_offset - (ins_offset & (blksize - 1))); count = (ins_offset + count + blksize - 1) / blksize * blksize - offset; /* Prepare the key of the new allocated block. */ aal_memcpy(&key, &place->key, sizeof(key)); bytes = count; if ((res = extent40_core->tree_ops.dec_free(place->node->tree, count / blksize))) { return res; } for (; count > 0; count -= blksize, offset += blksize) { /* Update @key offset. */ objcall(&key, set_offset, offset); /* Calculating size to be written this time. */ if (!(block = aal_block_alloc(device, blksize, 0))) return -ENOMEM; if (!(ins_key = aal_calloc(sizeof(*ins_key), 0))) return -ENOMEM; aal_memcpy(ins_key, &key, sizeof(key)); aal_hash_table_insert(blocks, ins_key, block); } return bytes; } /* Obtain the block from the block hash table by the @key. */ static aal_block_t *extent40_load_block(reiser4_place_t *place, aal_hash_table_t *blocks, reiser4_key_t *key, blk_t start, blk_t off) { reiser4_key_t *ins_key; aal_device_t *device; aal_block_t *block; uint32_t blksize; device = extent40_device(place); blksize = place_blksize(place); /* Obtain the block from the block hash table. */ if ((block = aal_hash_table_lookup(blocks, key))) return block; if (start == EXTENT_UNALLOC_UNIT) { aal_error("Block (%llu), item (%u): " "Unallocated extent unit without attached " "block detected.", place_blknr(place), place->pos.item); return NULL; } /* Loading data block. */ if (!(block = aal_block_load(device, blksize, start + off))) { aal_error("Can't read block %llu. %s.", start + off, device->error); return NULL; } if (!(ins_key = aal_calloc(sizeof(*ins_key), 0))) goto error_free_block; aal_memcpy(ins_key, key, sizeof(*key)); /* Updating block in data cache. */ aal_hash_table_insert(blocks, ins_key, block); return block; error_free_block: aal_block_free(block); return NULL; } /* Estimates extent write operation */ static errno_t extent40_prep_write(reiser4_place_t *place, trans_hint_t *hint) { reiser4_key_t key; extent40_t *extent; uint64_t unit_size; uint64_t uni_off; uint64_t ins_off; uint64_t max_off; uint64_t start; int64_t count; int64_t size; uint32_t unit_pos; uint32_t blksize; uint32_t units; aal_assert("umka-1836", hint != NULL); aal_assert("umka-2425", place != NULL); hint->len = 0; hint->overhead = 0; hint->insert_flags = 0; unit_pos = place->pos.unit; units = place->pos.unit == MAX_UINT32 ? 0 : extent40_units(place); /* Set maxkey as the start key of the operation. The amount of bytes handled will be added later. */ aal_memcpy(&hint->maxkey, &hint->offset, sizeof(hint->maxkey)); if (place->pos.unit == MAX_UINT32 || unit_pos == units) { /* Inserting a new item or appending units. */ /* Set maxkey as the limit of the operation. */ max_off = objcall(&hint->maxkey, get_offset); max_off += hint->count; objcall(&hint->maxkey, set_offset, max_off); if (place->pos.unit != MAX_UINT32) { uint64_t width; /* If new data could be attached to the end of existent, no new unit is needed. It is possible if we write data over not allocated unit or hole over the hole. */ extent = extent40_body(place) + units - 1; start = et40_get_start(extent); width = et40_get_width(extent); if ((start == EXTENT_UNALLOC_UNIT && hint->specific) || (start == EXTENT_HOLE_UNIT && !hint->specific)) { /* New unit is merged with the last one. */ hint->insert_flags |= ET40_JOIN; } else { /* Cannot merge with the last unit. */ hint->len += sizeof(extent40_t); } } else { /* New item, 1 unit is allocated. */ hint->len += sizeof(extent40_t); } } else { /* Writing inside item. */ extent40_fetch_key(place, &key); blksize = place_blksize(place); /* Getting maximal real key, it limits the amount of data being written at once. */ uni_off = objcall(&key, get_offset); ins_off = objcall(&hint->offset, get_offset); aal_assert("vpf-1697", uni_off <= ins_off); extent = extent40_body(place) + unit_pos; /* This loop checks if we insert some data inside extent and we should take into account possible holes. */ for (count = hint->count; count > 0 && unit_pos < units; count -= size, unit_pos++, extent++, ins_off += size, uni_off += unit_size) { /* If some space is already required for the previous units, handle only it, unit to avoid problems with splitting units on tree expand. */ if (hint->len) break; start = et40_get_start(extent); unit_size = et40_get_width(extent) * blksize; size = unit_size - (ins_off - uni_off); if (size > count) size = count; /* New unit needs to be allocated if data are written to a hole and not the whole hole is overwritten, in other words it needs to be splitted, */ if (start == EXTENT_HOLE_UNIT && hint->specific) { /* At least one block is left in the hole. */ if (ins_off >= uni_off + blksize) hint->len += sizeof(extent40_t); /* At least one block is left in the hole. */ if (ins_off + size + blksize <= uni_off + unit_size) { hint->len += sizeof(extent40_t); } /* If we already overwrite some units, do not require space, just overwrite them -- tree_expand may split this unit off */ if (hint->len && unit_pos != place->pos.unit) { hint->len = 0; break; } } } objcall(&hint->maxkey, set_offset, ins_off); hint->insert_flags |= ET40_OVERWRITE; } return 0; } /* Writes data to extent. */ static int64_t extent40_write_units(reiser4_place_t *place, trans_hint_t *hint) { aal_device_t *device; aal_block_t *block; extent40_t *extent; reiser4_key_t key; uint64_t unit_size; uint64_t max_off; uint64_t ins_off; uint64_t uni_off; uint64_t blk_off; uint64_t total; uint64_t start; int64_t count; int64_t bytes; int64_t size; uint32_t unit_pos; uint32_t blksize; uint32_t width; uint32_t units; errno_t res; char *buff; aal_assert("umka-2357", hint != NULL); aal_assert("umka-2356", place != NULL); /* Correcting insert point, as it may point to -1 (create new item) and behind last unit (adding data at the end of item). */ if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; hint->bytes = 0; buff = hint->specific; unit_pos = place->pos.unit; units = extent40_units(place); device = extent40_device(place); blksize = place_blksize(place); /* Get the offset range being handled: ins_off, max_off. */ ins_off = objcall(&hint->offset, get_offset); max_off = objcall(&hint->maxkey, get_offset); total = max_off - ins_off; count = total; if (hint->insert_flags & ET40_OVERWRITE) { /* If overwrite requires space, split the unit correctly. */ extent = extent40_body(place) + unit_pos; uni_off = extent40_offset(place, unit_pos); /* This loop checks if we insert some data inside extent and we should take into account possible holes. */ for ( ; count > 0 && unit_pos < units; count -= size, unit_pos++, extent++, ins_off += size, uni_off += unit_size) { start = et40_get_start(extent); width = et40_get_width(extent); unit_size = width * blksize; size = unit_size - (ins_off - uni_off); if (size > count) size = count; if (start != EXTENT_HOLE_UNIT || !buff) continue; /* Overwrite the hole with the data. (1) the whole hole gets overwritten; (2) a part of it, needs to be splitted; (3) a middle part, 2 splits are needed. */ aal_assert("vpf-1700", ins_off >= uni_off); if (ins_off >= uni_off + blksize) { /* Overwrite the tail. */ /* Add the unit after the current one. */ extent40_expand(place, unit_pos + 1, 1); /* Get the size of the current. */ unit_size = ins_off - uni_off; unit_size /= blksize; aal_assert("vpf-1699", width > unit_size); /* Reset widths of the current and the next. */ et40_set_width(extent, unit_size); et40_set_width(extent + 1, width - unit_size); et40_set_start(extent + 1, EXTENT_HOLE_UNIT); /* Recalc the unit size values. */ unit_size *= blksize; size = 0; } if (ins_off + size + blksize <= uni_off + unit_size) { /* Overwrite the head. */ /* Add the unit after the current one. */ extent40_expand(place, unit_pos + 1, 1); /* Get the size of the next. */ unit_size = ins_off + size - uni_off; unit_size = (unit_size + blksize - 1) / blksize; aal_assert("vpf-1701", width > unit_size); /* Reset widths of the current and the next. */ et40_set_width(extent, unit_size); et40_set_width(extent + 1, width - unit_size); et40_set_start(extent + 1, EXTENT_HOLE_UNIT); /* Recalc the unit size values. */ unit_size *= blksize; } if (!size) continue; et40_set_start(extent, EXTENT_UNALLOC_UNIT); /* Size bytes are to be written to this unit. */ bytes = extent40_alloc_block(place, hint->blocks, ins_off, size); if (bytes < 0) return bytes; hint->bytes += bytes; aal_assert("vpf-1703", bytes == width * blksize); } } else { int allocate = 0; /* Calculating width in blocks of new unit to be inserted. */ width = max_off - ins_off; width = (width + blksize - 1) / blksize; if (unit_pos && (hint->insert_flags & ET40_JOIN)) { /* Some units exist and new get merged with the last. */ /* Increment the width of the last unit. */ place->pos.unit--; unit_pos--; extent = extent40_body(place) + unit_pos; start = et40_get_start(extent); et40_inc_width(extent, width); allocate = (start == EXTENT_UNALLOC_UNIT); } else { /* First unit or cannot merge with the last one. */ extent = extent40_body(place) + unit_pos; /* If some data are being inserted, allocate some blocks for them later. */ if (buff) { et40_set_start(extent, EXTENT_UNALLOC_UNIT); allocate = 1; } else { et40_set_start(extent, EXTENT_HOLE_UNIT); } et40_set_width(extent, width); } if (allocate) { if ((bytes = extent40_alloc_block(place, hint->blocks, ins_off, count)) < 0) { return bytes; } hint->bytes += bytes; aal_assert("vpf-1703", bytes == width * blksize); } } /* Updating @key by unit key as it is changed. */ extent40_fetch_key(place, &key); extent = extent40_body(place) + place->pos.unit; uni_off = objcall(&key, get_offset); ins_off = objcall(&hint->offset, get_offset); count = total; /* Second stage -- writing data to allocated blocks. */ for ( ; count > 0; count -= size, ins_off += size) { blk_t blk; /* Calculating size to be written this time. */ size = blksize - (ins_off & (blksize - 1)); /* Block offset we will insert in. */ blk_off = ins_off - (ins_off & (blksize - 1)); if (size > count) size = count; /* Preparing key for getting data by it. */ objcall(&key, set_offset, blk_off); /* Checking if we write data inside item. */ aal_assert("vpf-1705", blk_off + size <= max_off); start = et40_get_start(extent); width = et40_get_width(extent); /* Nothing to be done if hole gets overwritten with hole. */ if (start == EXTENT_HOLE_UNIT && !buff) continue; /* Blocks must be allocated already. */ aal_assert("vpf-1706", start != EXTENT_HOLE_UNIT); blk = (blk_off - uni_off) / blksize; if (!(block = extent40_load_block(place, hint->blocks, &key, start, blk))) { return -EINVAL; } /* Writting data to @block. */ if (buff) { aal_memcpy(block->data + ins_off - blk_off, buff, size); buff += size; } else { /* Writting a hole. */ aal_memset(block->data + ins_off - blk_off, 0, size); } block->dirty = 1; if (blk == width) { extent++; uni_off += (width * blksize); } } if ((res = extent40_core->tree_ops.mpressure(place->node->tree))) return res; place_mkdirty(place); return total; } /* Calls @region_func for each block number extent points to. It is needed for calculating fragmentation, etc. */ static errno_t extent40_layout(reiser4_place_t *place, region_func_t region_func, void *data) { extent40_t *extent; uint32_t i, units; errno_t res = 0; aal_assert("umka-1747", place != NULL); aal_assert("umka-1748", region_func != NULL); extent = extent40_body(place); units = extent40_units(place); for (i = 0; i < units; i++, extent++) { uint64_t start; uint64_t width; start = et40_get_start(extent); if (start == EXTENT_UNALLOC_UNIT || start == EXTENT_HOLE_UNIT) continue; width = et40_get_width(extent); if ((res = region_func(start, width, data))) return res; } return 0; } /* Estimates how many bytes may be shifted into neighbour item */ static errno_t extent40_prep_shift(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { int check_point; uint32_t units; aal_assert("umka-1705", hint != NULL); aal_assert("umka-1704", src_place != NULL); hint->units_number = 0; check_point = (src_place->pos.item == hint->pos.item && hint->pos.unit != MAX_UINT32); if (hint->control & SF_ALLOW_LEFT) { uint32_t left; /* If we have to take into account insert point. */ if (hint->control & SF_UPDATE_POINT && check_point) { left = hint->pos.unit * sizeof(extent40_t); if (hint->control & SF_HOLD_POS && hint->control & SF_MOVE_POINT) { units = extent40_units(src_place); if (units > hint->pos.unit) left += sizeof(extent40_t); } if (hint->units_bytes > left) hint->units_bytes = left; /* Units to be moved. */ units = hint->units_bytes / sizeof(extent40_t); if (hint->pos.unit <= units && (hint->control & SF_MOVE_POINT)) { hint->result |= SF_MOVE_POINT; hint->pos.unit = dst_place ? dst_place->len : 0; hint->pos.unit += hint->units_bytes; hint->pos.unit /= sizeof(extent40_t); if (hint->control & SF_HOLD_POS) hint->pos.unit--; } else { hint->pos.unit -= hint->units_bytes / sizeof(extent40_t); } } else { if (hint->units_bytes > src_place->len) hint->units_bytes = src_place->len; } } else { uint32_t right; /* The same check as abowe, but for right shift */ if (hint->control & SF_UPDATE_POINT && check_point) { units = extent40_units(src_place); /* Check is it is possible to move something into right neighbour item. */ if (hint->pos.unit < units) { units -= hint->pos.unit; units *= sizeof(extent40_t); right = units; if (hint->control & SF_HOLD_POS && !(hint->control & SF_MOVE_POINT)) { right -= sizeof(extent40_t); } if (hint->units_bytes > right) hint->units_bytes = right; if ((hint->control & SF_MOVE_POINT) && hint->units_bytes == units) { hint->result |= SF_MOVE_POINT; hint->pos.unit = 0; } } else { /* There is noning to move, update insert point, flags and out. */ if (hint->control & SF_MOVE_POINT) { hint->result |= SF_MOVE_POINT; hint->pos.unit = 0; } hint->units_bytes = 0; } } else { if (hint->units_bytes > src_place->len) hint->units_bytes = src_place->len; } } hint->units_bytes -= hint->units_bytes % sizeof(extent40_t); hint->units_number = hint->units_bytes / sizeof(extent40_t); return 0; } static errno_t extent40_shift_units(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { uint32_t pos; aal_assert("umka-1708", hint != NULL); aal_assert("umka-1706", src_place != NULL); aal_assert("umka-1707", dst_place != NULL); if (hint->control & SF_ALLOW_LEFT) { pos = extent40_units(dst_place) - hint->units_number; /* Preparing space in @dst_place. */ extent40_expand(dst_place, pos, hint->units_number); /* Copying data from the @src_place to @dst_place. */ extent40_copy(dst_place, pos, src_place, 0, hint->units_number); /* Updating item's key by the first unit key. */ body40_get_key(src_place, hint->units_number, &src_place->key, extent40_offset); /* Removing units in @src_place. */ extent40_shrink(src_place, 0, hint->units_number); } else { /* Preparing space in @dst_place */ extent40_expand(dst_place, 0, hint->units_number); /* Copying data from the @src_place to @dst_place. */ pos = extent40_units(src_place) - hint->units_number; extent40_copy(dst_place, 0, src_place, pos, hint->units_number); /* Updating item's key by the first unit key. */ body40_get_key(src_place, pos, &dst_place->key, extent40_offset); /* Removing units in @src_place. */ extent40_shrink(src_place, pos, hint->units_number); } return 0; } #endif static item_balance_ops_t balance_ops = { #ifndef ENABLE_MINIMAL .merge = NULL, .update_key = NULL, .mergeable = extent40_mergeable, .prep_shift = extent40_prep_shift, .shift_units = extent40_shift_units, .maxreal_key = extent40_maxreal_key, .collision = NULL, .overhead = NULL, #endif .init = NULL, .units = extent40_units, .lookup = extent40_lookup, .fetch_key = extent40_fetch_key, .maxposs_key = extent40_maxposs_key }; static item_object_ops_t object_ops = { #ifndef ENABLE_MINIMAL .remove_units = extent40_remove_units, .update_units = extent40_update_units, .prep_insert = extent40_prep_insert, .insert_units = extent40_insert_units, .prep_write = extent40_prep_write, .write_units = extent40_write_units, .trunc_units = extent40_trunc_units, .layout = extent40_layout, .size = extent40_size, .bytes = extent40_bytes, #endif .read_units = extent40_read_units, .fetch_units = extent40_fetch_units }; #ifndef ENABLE_MINIMAL static item_repair_ops_t repair_ops = { .check_layout = extent40_check_layout, .check_struct = extent40_check_struct, .prep_insert_raw = extent40_prep_insert_raw, .insert_raw = extent40_insert_raw, .pack = NULL, .unpack = NULL }; static item_debug_ops_t debug_ops = { .print = extent40_print, }; #endif reiser4_item_plug_t extent40_plug = { .p = { .id = {ITEM_EXTENT40_ID, EXTENT_ITEM, ITEM_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "extent40", .desc = "Extent file body item plugin.", #endif }, .object = &object_ops, .balance = &balance_ops, #ifndef ENABLE_MINIMAL .repair = &repair_ops, .debug = &debug_ops, #endif }; reiser4progs-1.0.7.orig/plugin/item/extent40/extent40_repair.h0000644000175000017500000000153411131470543022025 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. extent40_repair.h -- reiser4 extent plugin repair functions. */ #ifndef EXTENT40_REPAIR_H #define EXTENT40_REPAIR_H #ifndef ENABLE_MINIMAL #include #include #include "extent40.h" extern errno_t extent40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t extent40_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t extent40_check_struct(reiser4_place_t *place, repair_hint_t *hint); extern errno_t extent40_check_layout(reiser4_place_t *place, repair_hint_t *hint, region_func_t region_func, void *data); extern void extent40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options); #endif #endif reiser4progs-1.0.7.orig/plugin/item/extent40/Makefile.am0000644000175000017500000000115511131470543020672 0ustar fzfzincludedir = -I$(top_srcdir)/include extent40_sources = extent40.c extent40_repair.c extent40.h extent40_repair.h STATIC_LIBS = libextent40-static.la libextent40_static_la_SOURCES = $(extent40_sources) libextent40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libextent40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libextent40_minimal_la_SOURCES = $(extent40_sources) libextent40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/extent40/extent40_repair.c0000644000175000017500000003117211131470543022021 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. extent40_repare.c -- repair dafault extent plugin methods. */ #ifndef ENABLE_MINIMAL #include "extent40.h" #include static int extent40_join_units(reiser4_place_t *place, int fix) { uint32_t i, count, joint; extent40_t *extent; extent = extent40_body(place); count = extent40_units(place); joint = 0; for (i = 0; i < count; i++, extent++) { bool_t join = 0; /* width == 0. */ if (!et40_get_width(extent)) goto shrink; if (i == 0) continue; join = (et40_get_start(extent - 1) == 0 && et40_get_start(extent) == 0); join = (et40_get_start(extent - 1) + et40_get_width(extent - 1) == et40_get_start(extent)) || join; if (!join) continue; shrink: joint++; if (!fix) continue; if (i) { et40_set_width(extent - 1, et40_get_width(extent - 1) + et40_get_width(extent)); } extent40_shrink(place, i, 1); count--; extent--; i--; } return joint; } errno_t extent40_check_layout(reiser4_place_t *place, repair_hint_t *hint, region_func_t func, void *data) { extent40_t *extent; uint32_t i, units; errno_t result = 0; aal_assert("vpf-724", place != NULL); aal_assert("vpf-725", func != NULL); extent = extent40_body(place); units = extent40_units(place); for (i = 0; i < units; i++, extent++) { uint64_t start, width; errno_t res; start = et40_get_start(extent); width = et40_get_width(extent); if (start == EXTENT_HOLE_UNIT || start == EXTENT_UNALLOC_UNIT || width == 0) { continue; } if ((res = func(start, width, data)) < 0) return res; if (!res) continue; /* Zero the problem region. */ fsck_mess("Node (%llu), item (%u), unit (%u), [%s]: " "points %s region [%llu..%llu].%s", place_blknr(place), place->pos.item, i, print_key(extent40_core, &place->key), res == RE_FATAL? "out of the fs," : "to the already used blocks, ", start, start + width - 1, hint->mode != RM_CHECK ? " Zeroed." : ""); if (hint->mode != RM_CHECK) { et40_set_start(extent, 0); place_mkdirty(place); } else result = RE_FIXABLE; } if (hint->mode != RM_CHECK) { if ((units = extent40_join_units(place, 1))) { fsck_mess("Node (%llu), item (%u): %u mergable units " "were found in the extent40 unit.%s", place_blknr(place), place->pos.item, units, hint->mode == RM_CHECK ? "" : " Merged."); hint->len += (units * sizeof(extent40_t)); } } return result; } errno_t extent40_check_struct(reiser4_place_t *place, repair_hint_t *hint) { extent40_t *extent; uint32_t i, units; errno_t res = 0; aal_assert("vpf-750", place != NULL); /* Length must be divisible by the extent40 unit length. */ if (place->len % sizeof(extent40_t)) { fsck_mess("Node (%llu), item (%u), [%s]: extent40 " "item of not valid length found.", place_blknr(place), place->pos.item, print_key(extent40_core, &place->key)); return RE_FATAL; } /* Offset must be divisible by block size. */ if (objcall(&place->key, get_offset) % place_blksize(place)) { fsck_mess("Node (%llu), item (%u), [%s]: extent40 " "item with not valid key offset found.", place_blknr(place), place->pos.item, print_key(extent40_core, &place->key)); return RE_FATAL; } extent = extent40_body(place); units = extent40_units(place); if (!units) { fsck_mess("Node (%llu), item (%u): empty extent40 item " "found.", place_blknr(place), place->pos.item); return RE_FATAL; } /* Zero all unallocated units if any found. */ for (i = 0; i < units; i++, extent++) { uint64_t start; if (!(start = et40_get_start(extent))) continue; if (start != EXTENT_UNALLOC_UNIT) continue; fsck_mess("Node (%llu), item (%u), unit (%u), " "[%s]: unallocated unit is found.%s", place_blknr(place), place->pos.item, i, print_key(extent40_core, &place->key), hint->mode == RM_CHECK ? "" : "Zeroed."); if (hint->mode != RM_CHECK) { et40_set_start(extent, 0); place_mkdirty(place); } else res |= RE_FIXABLE; } if (hint->mode != RM_CHECK) { if ((units = extent40_join_units(place, 1))) { fsck_mess("Node (%llu), item (%u): %u mergable units " "were found in the extent40 unit.%s", place_blknr(place), place->pos.item, units, hint->mode == RM_CHECK ? "" : " Merged."); hint->len += (units * sizeof(extent40_t)); } } return res; } static uint32_t extent40_head(reiser4_place_t *place, uint32_t pos, reiser4_key_t *key) { uint64_t koffset, offset, doffset; koffset = objcall(key, get_offset); offset = objcall(&place->key, get_offset); aal_assert("vpf-1381", koffset >= offset); offset = koffset - offset; doffset = extent40_offset(place, pos); aal_assert("vpf-1787", offset >= doffset); return (offset - doffset) / place_blksize(place); } errno_t extent40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { extent40_t *sextent, *dextent; int32_t send, sunits; reiser4_place_t *src; uint64_t offset; aal_assert("vpf-1372", place != NULL); aal_assert("vpf-1373", hint != NULL); aal_assert("vpf-1382", hint->specific != NULL); src = (reiser4_place_t *)hint->specific; sextent = extent40_body(src); dextent = extent40_body(place); /* Get the offset of the dst item key. */ offset = objcall(&place->key, get_offset); /* Probably all units will be inserted. */ send = src->pos.unit - 1; sunits = extent40_units(src); /* Get the head within the first @src unit. Head should be calculated here because we may try to insert not from the beginning of the @src in any case. */ hint->head = extent40_head(src, src->pos.unit, &hint->offset); hint->tail = 0; hint->insert_flags = 0; if (place->pos.unit == MAX_UINT32 || place->pos.unit == extent40_units(place)) { /* The whole item to be inserted. */ send = sunits - 1; } else if (objcall(&hint->offset, compfull, &place->key) < 0) { /* Get the @src end unit and the tail within it. */ offset -= objcall(&src->key, get_offset); send = extent40_unit(src, offset - 1); hint->tail = et40_get_width(sextent + send) - extent40_head(src, send, &place->key); } else if (!et40_get_start(dextent + place->pos.unit) && et40_get_start(sextent + src->pos.unit)) { /* Estimate the overwrite. */ hint->insert_flags |= ET40_OVERWRITE; /* Overwrite through the next dst unit key. */ offset += extent40_offset(place, place->pos.unit + 1); /* Get the end position. */ offset -= objcall(&src->key, get_offset); send = extent40_unit(src, offset - 1); if (send < sunits) { hint->tail = (extent40_offset(src, send + 1) - offset) / place_blksize(src); } else { /* The src item finished earlier then dst item by key offset, then some part of the dst item will not be overwritten, set TAIL falg here. */ send = sunits - 1; hint->tail = 0; hint->insert_flags |= ET40_TAIL; } if (extent40_head(place, place->pos.unit, &hint->offset)) hint->insert_flags |= ET40_HEAD; } hint->overhead = 0; hint->bytes = 0; hint->count = send + 1 - src->pos.unit; hint->len = hint->count; if (hint->insert_flags & ET40_OVERWRITE) { /* If this is an overrite, the current dst unit can be used instead of adding another one (if there is no head in dst) and one more unit should be inserted (if there is a tail). */ hint->len += (hint->insert_flags & ET40_TAIL ? 1 : 0) - (hint->insert_flags & ET40_HEAD ? 0 : 1); } hint->len *= sizeof(extent40_t); return 0; } int64_t extent40_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { uint32_t i, sstart, dstart, count; extent40_t *sextent, *dextent; uint64_t head, tail, offset; reiser4_place_t *src; errno_t res; aal_assert("vpf-1383", place != NULL); aal_assert("vpf-1384", hint != NULL); aal_assert("vpf-1385", hint->specific != NULL); src = (reiser4_place_t *)hint->specific; sextent = extent40_body(src); dextent = extent40_body(place); if (place->pos.unit == MAX_UINT32) place->pos.unit = 0; /* @head & @tail were calculated for the start unit, but if ET40_HEAD flag is set, data should be inserted to the next unit. */ dstart = place->pos.unit + (hint->insert_flags & ET40_HEAD ? 1 : 0); sstart = src->pos.unit == MAX_UINT32 ? 0 : src->pos.unit; /* Set the maxkey of the passed operation. */ aal_memcpy(&hint->maxkey, &hint->offset, sizeof(hint->maxkey)); if (!hint->count) { /* If there is nothing to be done, skip as much as possible. */ if (et40_get_start(dextent + dstart)) { /* Skip all not zero pointers in @dst. */ count = extent40_units(place); while (dstart < count && et40_get_start(dextent + dstart)) { dstart++; } /* Get the offset for the maxkey. */ offset = objcall(&place->key, get_offset); offset += extent40_offset(place, dstart); } else { uint32_t scount; /* Skip all zero pointers in @src. */ scount = extent40_units(src); while (sstart < scount && !et40_get_start(sextent + sstart)) { sstart++; } /* Get the offset for the maxkey. */ offset = objcall(&src->key, get_offset); offset += extent40_offset(src, sstart); } objcall(&hint->maxkey, set_offset, offset); return 0; } count = hint->count; if (hint->insert_flags & ET40_OVERWRITE) { count += hint->insert_flags & ET40_TAIL ? 1 : 0; count -= hint->insert_flags & ET40_HEAD ? 0 : 1; } /* Set the maxkey offset correctly. */ offset = objcall(&src->key, get_offset); offset += extent40_offset(src, sstart + hint->count); offset -= hint->tail * place_blksize(src); objcall(&hint->maxkey, set_offset, offset); tail = head = 0; if (hint->insert_flags & ET40_TAIL) { /* Get the amount of blocks to be left in the head. */ tail = extent40_head(place, place->pos.unit, &hint->maxkey); } if (hint->insert_flags & ET40_HEAD) { /* Get the amount of blocks to be left in the tail. */ head = extent40_head(place, place->pos.unit, &hint->offset); } /* Expanding extent item at @place */ extent40_expand(place, dstart, count); /* If some tail should be cut off the current dst unit, set the correct width there. */ if (hint->insert_flags & ET40_TAIL) { uint64_t width; /* Set the correct width. Start is 0 because allocated units are not overwritten. */ et40_set_start(dextent + place->pos.unit + count, 0); width = et40_get_width(dextent + place->pos.unit) - tail; et40_set_width(dextent + place->pos.unit + count, width); /* Fix the current dst unit after cutting. */ et40_set_width(dextent + place->pos.unit, tail); } /* If some head should be left in the current dst unit, set the correct width there. */ if (hint->insert_flags & ET40_HEAD) { /* Get the amount of blocks to be left. */ /* Fix the current dst unit. */ et40_set_width(dextent + place->pos.unit, head); } dextent += dstart; sextent += sstart; aal_memcpy(dextent, sextent, hint->count * sizeof(extent40_t)); if (hint->head) { /* Cut head blocks of the first unit copied from src, if it was not the hole (==0). */ if ((dstart = et40_get_start(dextent))) et40_set_start(dextent, dstart + hint->head); et40_set_width(dextent, et40_get_width(dextent) - hint->head); } /* Fix the tail unit. */ dextent += hint->count - 1; if (hint->tail) { et40_set_width(dextent, et40_get_width(dextent) - hint->tail); } /* Call region_func for all inserted regions. */ if (hint->region_func) { uint64_t dwidth; dextent -= (hint->count - 1); for (i = 0; i < hint->count; i++, dextent++) { dstart = et40_get_start(dextent); dwidth = et40_get_width(dextent); if (dstart == EXTENT_UNALLOC_UNIT || dstart == EXTENT_HOLE_UNIT) { continue; } if ((res = hint->region_func(dstart, dwidth, hint->data))) { return res; } } } /* Update the item key. */ if (objcall(&hint->offset, compfull, &place->key) < 0) aal_memcpy(&place->key, &hint->offset, sizeof(place->key)); place_mkdirty(place); return 0; } /* Prints extent item into specified @stream */ void extent40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options) { uint32_t i, count; extent40_t *extent; aal_assert("umka-1205", place != NULL); aal_assert("umka-1206", stream != NULL); extent = extent40_body(place); count = extent40_units(place); aal_stream_format(stream, "\nUNITS=%u [", count); for (i = 0; i < count; i++) { aal_stream_format(stream, "%llu(%llu)%s", et40_get_start(extent + i), et40_get_width(extent + i), (i < count - 1 ? " " : "")); } aal_stream_format(stream, "]\n"); } #endif reiser4progs-1.0.7.orig/plugin/item/ctail40/0000777000175000017500000000000011134133446016426 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/ctail40/Makefile.in0000644000175000017500000004670011134132274020474 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/ctail40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libctail40_minimal_la_LIBADD = am__libctail40_minimal_la_SOURCES_DIST = ctail40.c ctail40.h \ ctail40_repair.c ctail40_repair.h am__objects_1 = libctail40_minimal_la-ctail40.lo \ libctail40_minimal_la-ctail40_repair.lo @ENABLE_MINIMAL_TRUE@am_libctail40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libctail40_minimal_la_OBJECTS = $(am_libctail40_minimal_la_OBJECTS) libctail40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libctail40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libctail40_minimal_la_rpath = libctail40_static_la_LIBADD = am__objects_2 = libctail40_static_la-ctail40.lo \ libctail40_static_la-ctail40_repair.lo am_libctail40_static_la_OBJECTS = $(am__objects_2) libctail40_static_la_OBJECTS = $(am_libctail40_static_la_OBJECTS) libctail40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libctail40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libctail40_minimal_la_SOURCES) \ $(libctail40_static_la_SOURCES) DIST_SOURCES = $(am__libctail40_minimal_la_SOURCES_DIST) \ $(libctail40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ctail40_sources = ctail40.c ctail40.h ctail40_repair.c ctail40_repair.h STATIC_LIBS = libctail40-static.la libctail40_static_la_SOURCES = $(ctail40_sources) libctail40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libctail40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libctail40_minimal_la_SOURCES = $(ctail40_sources) @ENABLE_MINIMAL_TRUE@libctail40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/ctail40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/ctail40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libctail40-minimal.la: $(libctail40_minimal_la_OBJECTS) $(libctail40_minimal_la_DEPENDENCIES) $(libctail40_minimal_la_LINK) $(am_libctail40_minimal_la_rpath) $(libctail40_minimal_la_OBJECTS) $(libctail40_minimal_la_LIBADD) $(LIBS) libctail40-static.la: $(libctail40_static_la_OBJECTS) $(libctail40_static_la_DEPENDENCIES) $(libctail40_static_la_LINK) $(libctail40_static_la_OBJECTS) $(libctail40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctail40_minimal_la-ctail40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctail40_minimal_la-ctail40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctail40_static_la-ctail40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libctail40_static_la-ctail40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libctail40_minimal_la-ctail40.lo: ctail40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libctail40_minimal_la_CFLAGS) $(CFLAGS) -MT libctail40_minimal_la-ctail40.lo -MD -MP -MF $(DEPDIR)/libctail40_minimal_la-ctail40.Tpo -c -o libctail40_minimal_la-ctail40.lo `test -f 'ctail40.c' || echo '$(srcdir)/'`ctail40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libctail40_minimal_la-ctail40.Tpo $(DEPDIR)/libctail40_minimal_la-ctail40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctail40.c' object='libctail40_minimal_la-ctail40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libctail40_minimal_la_CFLAGS) $(CFLAGS) -c -o libctail40_minimal_la-ctail40.lo `test -f 'ctail40.c' || echo '$(srcdir)/'`ctail40.c libctail40_minimal_la-ctail40_repair.lo: ctail40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libctail40_minimal_la_CFLAGS) $(CFLAGS) -MT libctail40_minimal_la-ctail40_repair.lo -MD -MP -MF $(DEPDIR)/libctail40_minimal_la-ctail40_repair.Tpo -c -o libctail40_minimal_la-ctail40_repair.lo `test -f 'ctail40_repair.c' || echo '$(srcdir)/'`ctail40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libctail40_minimal_la-ctail40_repair.Tpo $(DEPDIR)/libctail40_minimal_la-ctail40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctail40_repair.c' object='libctail40_minimal_la-ctail40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libctail40_minimal_la_CFLAGS) $(CFLAGS) -c -o libctail40_minimal_la-ctail40_repair.lo `test -f 'ctail40_repair.c' || echo '$(srcdir)/'`ctail40_repair.c libctail40_static_la-ctail40.lo: ctail40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libctail40_static_la_CFLAGS) $(CFLAGS) -MT libctail40_static_la-ctail40.lo -MD -MP -MF $(DEPDIR)/libctail40_static_la-ctail40.Tpo -c -o libctail40_static_la-ctail40.lo `test -f 'ctail40.c' || echo '$(srcdir)/'`ctail40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libctail40_static_la-ctail40.Tpo $(DEPDIR)/libctail40_static_la-ctail40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctail40.c' object='libctail40_static_la-ctail40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libctail40_static_la_CFLAGS) $(CFLAGS) -c -o libctail40_static_la-ctail40.lo `test -f 'ctail40.c' || echo '$(srcdir)/'`ctail40.c libctail40_static_la-ctail40_repair.lo: ctail40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libctail40_static_la_CFLAGS) $(CFLAGS) -MT libctail40_static_la-ctail40_repair.lo -MD -MP -MF $(DEPDIR)/libctail40_static_la-ctail40_repair.Tpo -c -o libctail40_static_la-ctail40_repair.lo `test -f 'ctail40_repair.c' || echo '$(srcdir)/'`ctail40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libctail40_static_la-ctail40_repair.Tpo $(DEPDIR)/libctail40_static_la-ctail40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctail40_repair.c' object='libctail40_static_la-ctail40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libctail40_static_la_CFLAGS) $(CFLAGS) -c -o libctail40_static_la-ctail40_repair.lo `test -f 'ctail40_repair.c' || echo '$(srcdir)/'`ctail40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/ctail40/ctail40_repair.c0000644000175000017500000000124611131470543021372 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ctail40_repair.c -- reiser4 compressed item file body plugin. */ #ifndef ENABLE_MINIMAL #include "ctail40.h" #include errno_t ctail40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { place->off = sizeof(ctail40_t); return tail40_prep_insert_raw(place, hint); } void ctail40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options) { aal_assert("vpf-1892", place != NULL); aal_assert("vpf-1893", stream != NULL); aal_stream_format(stream, " shift=%lu\n", ct40_get_shift(place->body)); } #endif reiser4progs-1.0.7.orig/plugin/item/ctail40/ctail40.h0000644000175000017500000000103411131470543020030 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ctail40.h -- reiser4 compressed tail item plugin functions. */ #ifndef CTAIL40_H #define CTAIL40_H #include #include extern reiser4_core_t *ctail40_core; typedef struct ctail40 { /* Cluster size is block size shifted to this field. */ d8_t shift; d8_t body[0]; } ctail40_t; #define ct40_get_shift(ct) (((ctail40_t *)ct)->shift) #define ct40_set_shift(ct, val) (((ctail40_t *)ct)->shift = val) #endif reiser4progs-1.0.7.orig/plugin/item/ctail40/ctail40.c0000644000175000017500000001017311131470543020027 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ctail40.c -- reiser4 compressed tail item plugin repair functions. */ #ifndef ENABLE_MINIMAL #include "ctail40.h" #include "ctail40_repair.h" #include #include #include reiser4_core_t *ctail40_core = NULL; static void ctail40_init(reiser4_place_t *place) { aal_assert("vpf-1763", place != NULL); place->off = sizeof(ctail40_t); } /* Return 1 if two ctail items are mergeable while balancing. 0 otherwise. */ static int ctail40_mergeable(reiser4_place_t *place1, reiser4_place_t *place2) { uint64_t off1; uint64_t off2; uint64_t shift; aal_assert("vpf-1765", place1 != NULL); aal_assert("vpf-1807", place2 != NULL); aal_assert("vpf-1808", place1->plug == place2->plug); shift = ct40_get_shift(place1->body); aal_assert("vpf-1809", shift == ct40_get_shift(place2->body)); off1 = objcall(&place1->key, get_offset); off2 = objcall(&place2->key, get_offset); shift = (1 << shift) - 1; /* If they are of different clusters, not mergeable. */ if ((off1 & ~shift) != (off2 & ~shift)) return 0; return body40_mergeable(place1, place2); } static errno_t ctail40_prep_shift(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { if (dst_place) dst_place->off = sizeof(ctail40_t); return tail40_prep_shift(src_place, dst_place, hint); } errno_t ctail40_shift_units(reiser4_place_t *src_place, reiser4_place_t *dst_place, shift_hint_t *hint) { if (hint->create) aal_memcpy(dst_place->body, src_place->body, src_place->off); return tail40_shift_units(src_place, dst_place, hint); } static errno_t ctail40_prep_write(reiser4_place_t *place, trans_hint_t *hint) { place->off = sizeof(ctail40_t); return tail40_prep_write(place, hint); } static int64_t ctail40_fetch_units(reiser4_place_t *place, trans_hint_t *hint) { ctail_hint_t *chint; aal_assert("vpf-1862", place != NULL); aal_assert("vpf-1861", hint != NULL); chint = (ctail_hint_t *)hint->specific; chint->shift = ct40_get_shift(place->body); return 1; } static int64_t ctail40_update_units(reiser4_place_t *place, trans_hint_t *hint) { ctail_hint_t *chint; aal_assert("umka-2431", hint != NULL); aal_assert("umka-2430", place != NULL); chint = (ctail_hint_t *)hint->specific; ct40_set_shift(place->body, chint->shift); place_mkdirty(place); return 1; } static int32_t ctail40_merge(reiser4_place_t *left, reiser4_place_t *right) { aal_memmove(right->body, right->body + sizeof(ctail40_t), right->len - sizeof(ctail40_t)); return sizeof(ctail40_t); } static item_balance_ops_t balance_ops = { .merge = ctail40_merge, .update_key = NULL, .mergeable = ctail40_mergeable, .maxreal_key = tail40_maxreal_key, .prep_shift = ctail40_prep_shift, .shift_units = ctail40_shift_units, .collision = NULL, .overhead = NULL, .init = ctail40_init, .units = tail40_units, .lookup = tail40_lookup, .fetch_key = tail40_fetch_key, .maxposs_key = tail40_maxposs_key }; static item_object_ops_t object_ops = { .size = tail40_size, .bytes = tail40_size, .prep_write = ctail40_prep_write, .write_units = tail40_write_units, .trunc_units = tail40_trunc_units, .prep_insert = NULL, .insert_units = NULL, .remove_units = NULL, .update_units = ctail40_update_units, .layout = NULL, .fetch_units = ctail40_fetch_units, .read_units = tail40_read_units }; static item_repair_ops_t repair_ops = { .check_struct = tail40_check_struct, .check_layout = NULL, .prep_insert_raw = ctail40_prep_insert_raw, .insert_raw = tail40_insert_raw, .pack = tail40_pack, .unpack = tail40_unpack }; static item_debug_ops_t debug_ops = { .print = ctail40_print }; reiser4_item_plug_t ctail40_plug = { .p = { .id = {ITEM_CTAIL40_ID, CTAIL_ITEM, ITEM_PLUG_TYPE}, .label = "ctail40", .desc = "Compressed file body item plugin.", }, .object = &object_ops, .balance = &balance_ops, .repair = &repair_ops, .debug = &debug_ops, }; #endif reiser4progs-1.0.7.orig/plugin/item/ctail40/Makefile.am0000644000175000017500000000113211131470543020452 0ustar fzfzincludedir = -I$(top_srcdir)/include ctail40_sources = ctail40.c ctail40.h ctail40_repair.c ctail40_repair.h STATIC_LIBS = libctail40-static.la libctail40_static_la_SOURCES = $(ctail40_sources) libctail40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libctail40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libctail40_minimal_la_SOURCES = $(ctail40_sources) libctail40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/item/ctail40/ctail40_repair.h0000644000175000017500000000066211131470543021400 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ctail40_repair.h -- reiser4 compressed file body item repair declarations. */ #ifndef CTAIL40_REPAIR_H #define CTAIL40_REPAIR_H extern errno_t ctail40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern void ctail40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options); #endif reiser4progs-1.0.7.orig/plugin/item/Makefile.am0000644000175000017500000000011711131470543017214 0ustar fzfzSUBDIRS = body40 plain40 tail40 ctail40 extent40 cde40 nodeptr40 stat40 bbox40 reiser4progs-1.0.7.orig/plugin/item/stat40/0000777000175000017500000000000011134133446016305 5ustar fzfzreiser4progs-1.0.7.orig/plugin/item/stat40/Makefile.in0000644000175000017500000004643511134132274020360 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/item/stat40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libstat40_minimal_la_LIBADD = am__libstat40_minimal_la_SOURCES_DIST = stat40.c stat40_repair.c \ stat40.h stat40_repair.h am__objects_1 = libstat40_minimal_la-stat40.lo \ libstat40_minimal_la-stat40_repair.lo @ENABLE_MINIMAL_TRUE@am_libstat40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libstat40_minimal_la_OBJECTS = $(am_libstat40_minimal_la_OBJECTS) libstat40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libstat40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libstat40_minimal_la_rpath = libstat40_static_la_LIBADD = am__objects_2 = libstat40_static_la-stat40.lo \ libstat40_static_la-stat40_repair.lo am_libstat40_static_la_OBJECTS = $(am__objects_2) libstat40_static_la_OBJECTS = $(am_libstat40_static_la_OBJECTS) libstat40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libstat40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libstat40_minimal_la_SOURCES) \ $(libstat40_static_la_SOURCES) DIST_SOURCES = $(am__libstat40_minimal_la_SOURCES_DIST) \ $(libstat40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ stat40_sources = stat40.c stat40_repair.c stat40.h stat40_repair.h STATIC_LIBS = libstat40-static.la libstat40_static_la_SOURCES = $(stat40_sources) libstat40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libstat40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libstat40_minimal_la_SOURCES = $(stat40_sources) @ENABLE_MINIMAL_TRUE@libstat40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/item/stat40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/item/stat40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libstat40-minimal.la: $(libstat40_minimal_la_OBJECTS) $(libstat40_minimal_la_DEPENDENCIES) $(libstat40_minimal_la_LINK) $(am_libstat40_minimal_la_rpath) $(libstat40_minimal_la_OBJECTS) $(libstat40_minimal_la_LIBADD) $(LIBS) libstat40-static.la: $(libstat40_static_la_OBJECTS) $(libstat40_static_la_DEPENDENCIES) $(libstat40_static_la_LINK) $(libstat40_static_la_OBJECTS) $(libstat40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstat40_minimal_la-stat40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstat40_minimal_la-stat40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstat40_static_la-stat40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstat40_static_la-stat40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libstat40_minimal_la-stat40.lo: stat40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstat40_minimal_la_CFLAGS) $(CFLAGS) -MT libstat40_minimal_la-stat40.lo -MD -MP -MF $(DEPDIR)/libstat40_minimal_la-stat40.Tpo -c -o libstat40_minimal_la-stat40.lo `test -f 'stat40.c' || echo '$(srcdir)/'`stat40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libstat40_minimal_la-stat40.Tpo $(DEPDIR)/libstat40_minimal_la-stat40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stat40.c' object='libstat40_minimal_la-stat40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstat40_minimal_la_CFLAGS) $(CFLAGS) -c -o libstat40_minimal_la-stat40.lo `test -f 'stat40.c' || echo '$(srcdir)/'`stat40.c libstat40_minimal_la-stat40_repair.lo: stat40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstat40_minimal_la_CFLAGS) $(CFLAGS) -MT libstat40_minimal_la-stat40_repair.lo -MD -MP -MF $(DEPDIR)/libstat40_minimal_la-stat40_repair.Tpo -c -o libstat40_minimal_la-stat40_repair.lo `test -f 'stat40_repair.c' || echo '$(srcdir)/'`stat40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libstat40_minimal_la-stat40_repair.Tpo $(DEPDIR)/libstat40_minimal_la-stat40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stat40_repair.c' object='libstat40_minimal_la-stat40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstat40_minimal_la_CFLAGS) $(CFLAGS) -c -o libstat40_minimal_la-stat40_repair.lo `test -f 'stat40_repair.c' || echo '$(srcdir)/'`stat40_repair.c libstat40_static_la-stat40.lo: stat40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstat40_static_la_CFLAGS) $(CFLAGS) -MT libstat40_static_la-stat40.lo -MD -MP -MF $(DEPDIR)/libstat40_static_la-stat40.Tpo -c -o libstat40_static_la-stat40.lo `test -f 'stat40.c' || echo '$(srcdir)/'`stat40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libstat40_static_la-stat40.Tpo $(DEPDIR)/libstat40_static_la-stat40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stat40.c' object='libstat40_static_la-stat40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstat40_static_la_CFLAGS) $(CFLAGS) -c -o libstat40_static_la-stat40.lo `test -f 'stat40.c' || echo '$(srcdir)/'`stat40.c libstat40_static_la-stat40_repair.lo: stat40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstat40_static_la_CFLAGS) $(CFLAGS) -MT libstat40_static_la-stat40_repair.lo -MD -MP -MF $(DEPDIR)/libstat40_static_la-stat40_repair.Tpo -c -o libstat40_static_la-stat40_repair.lo `test -f 'stat40_repair.c' || echo '$(srcdir)/'`stat40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libstat40_static_la-stat40_repair.Tpo $(DEPDIR)/libstat40_static_la-stat40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stat40_repair.c' object='libstat40_static_la-stat40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstat40_static_la_CFLAGS) $(CFLAGS) -c -o libstat40_static_la-stat40_repair.lo `test -f 'stat40_repair.c' || echo '$(srcdir)/'`stat40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/item/stat40/stat40_repair.h0000644000175000017500000000123111131470543021127 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. stat40_repair.h -- reiser4 stat data repair functions. */ #ifndef STAT40_REPAIR_H #define STAT40_REPAIR_H #ifndef ENABLE_MINIMAL #include #include extern errno_t stat40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t stat40_insert_raw(reiser4_place_t *place, trans_hint_t *hint); extern errno_t stat40_check_struct(reiser4_place_t *place, repair_hint_t *hint); extern void stat40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options); #endif #endif reiser4progs-1.0.7.orig/plugin/item/stat40/stat40_repair.c0000644000175000017500000001252611131470543021133 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. stat40_repair.c -- reiser4 default stat data plugin. */ #ifndef ENABLE_MINIMAL #include "stat40.h" #include typedef struct repair_stat_hint { repair_hint_t *repair; uint64_t extmask; uint64_t goodmask; uint64_t len; } repair_stat_hint_t; static errno_t cb_check_ext(stat_entity_t *stat, uint64_t extmask, void *data) { repair_stat_hint_t *hint = (repair_stat_hint_t *)data; uint8_t chunk; uint32_t len; /* Set read extmask. */ if (!stat->plug) { hint->extmask |= ((uint64_t)extmask); hint->len += sizeof(stat40_t); return 0; } /* Extention plugin was found, set the bit into @goodmask. */ hint->goodmask |= ((uint64_t)1 << stat->plug->p.id.id); if ((chunk = stat->plug->p.id.id / 16) > 0) { hint->goodmask |= ((uint64_t)1 << (chunk * 16 - 1)); } if (stat->plug->check_struct) { errno_t res; if ((res = objcall(stat, check_struct, hint->repair))) return res; } len = objcall(stat, length, NULL); hint->len += len; /* Some part of the extention was removed. Shrink the item. */ if (hint->repair->len) { uint32_t oldlen = len + hint->repair->len; aal_memmove(stat_body(stat) + len, stat_body(stat) + oldlen, stat->place->len - stat->offset - oldlen); place_mkdirty(stat->place); hint->repair->len = 0; } return 0; } static errno_t cb_fix_mask(stat_entity_t *stat, uint64_t extmask, void *data) { uint64_t *mask = (uint64_t *)data; if (stat->plug) return 0; /* This time the callback is called for the extmask. Fix it. */ st40_set_extmask(stat_body(stat), *(uint16_t *)mask); (*mask) >>= 16; return 0; } errno_t stat40_check_struct(reiser4_place_t *place, repair_hint_t *hint) { repair_stat_hint_t stat; errno_t res; aal_assert("vpf-775", place != NULL); aal_memset(&stat, 0, sizeof(stat)); stat.repair = hint; if ((res = stat40_traverse(place, cb_check_ext, &stat)) < 0) return res; if (res) { fsck_mess("Node (%llu), item (%u), [%s]: does " "not look like a valid stat data.", place_blknr(place), place->pos.item, print_key(stat40_core, &place->key)); return RE_FATAL; } if (stat.len + hint->len < place->len) { fsck_mess("Node (%llu), item (%u), [%s]: item has the " "wrong length (%u). Should be (%llu).%s", place_blknr(place), place->pos.item, print_key(stat40_core, &place->key), place->len, stat.len + hint->len, hint->mode == RM_BUILD ? " Fixed." : ""); if (hint->mode != RM_BUILD) return RE_FATAL; hint->len = place->len - stat.len; place_mkdirty(place); } /* Check the extention mask. */ if (stat.extmask != stat.goodmask) { fsck_mess("Node (%llu), item (%u), [%s]: item has the " "wrong extention mask (%llu). Should be (%llu)." "%s", place_blknr(place), place->pos.item, print_key(stat40_core, &place->key), stat.extmask, stat.goodmask, hint->mode == RM_CHECK ? "" : " Fixed."); if (hint->mode == RM_CHECK) return RE_FIXABLE; if ((res = stat40_traverse(place, cb_fix_mask, &stat.goodmask)) < 0) return res; place_mkdirty(place); } return 0; } /* Callback for counting stat data extensions in use. */ static errno_t cb_count_ext(stat_entity_t *stat, uint64_t extmask, void *data) { if (!stat->plug) return 0; (*(uint32_t *)data)++; return 0; } /* This function returns stat data extension count. */ static uint32_t stat40_sdext_count(reiser4_place_t *place) { uint32_t count = 0; if (stat40_traverse(place, cb_count_ext, &count) < 0) return 0; return count; } /* Prints extension into @stream. */ static errno_t cb_print_ext(stat_entity_t *stat, uint64_t extmask, void *data) { uint16_t length; aal_stream_t *stream; stream = (aal_stream_t *)data; if (!stat->plug) { aal_stream_format(stream, "mask:\t\t0x%x\n", extmask); return 0; } aal_stream_format(stream, "plugin:\t\t%s\n", stat->plug->p.label); aal_stream_format(stream, "offset:\t\t%u\n", stat->offset); length = objcall(stat, length, NULL); aal_stream_format(stream, "len:\t\t%u\n", length); objcall(stat, print, stream, 0); return 0; } /* Prints statdata item into passed @stream */ void stat40_print(reiser4_place_t *place, aal_stream_t *stream, uint16_t options) { aal_assert("umka-1407", place != NULL); aal_assert("umka-1408", stream != NULL); aal_stream_format(stream, "\nexts:\t\t%u\n", stat40_sdext_count(place)); stat40_traverse(place, cb_print_ext, (void *)stream); } errno_t stat40_prep_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { reiser4_place_t *src; aal_assert("vpf-1668", place != NULL); aal_assert("vpf-1669", hint != NULL); aal_assert("vpf-1670", hint->specific != NULL); src = (reiser4_place_t *)hint->specific; hint->overhead = 0; hint->bytes = 0; if (place->pos.unit == MAX_UINT32) { hint->count = 1; hint->len = src->len; } else { hint->count = hint->len = 0; } return 0; } errno_t stat40_insert_raw(reiser4_place_t *place, trans_hint_t *hint) { reiser4_place_t *src; aal_assert("vpf-1671", place != NULL); aal_assert("vpf-1672", hint != NULL); aal_assert("vpf-1673", hint->specific != NULL); if (!hint->len) return 0; src = (reiser4_place_t *)hint->specific; aal_memcpy(place->body, src->body, hint->len); place_mkdirty(place); return 0; } #endif reiser4progs-1.0.7.orig/plugin/item/stat40/stat40.c0000644000175000017500000003520711131470543017572 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. stat40.c -- reiser4 stat data plugin. */ #include "stat40.h" #include "stat40_repair.h" #include reiser4_core_t *stat40_core = NULL; /* The function which implements stat40 layout pass. This function is used for all statdata extension-related actions. For example for reading, or counting. */ errno_t stat40_traverse(reiser4_place_t *place, ext_func_t ext_func, void *data) { uint16_t extmask = 0; uint16_t chunks = 0; stat_entity_t stat; uint16_t i; aal_assert("umka-1197", place != NULL); aal_assert("umka-2059", ext_func != NULL); aal_memset(&stat, 0, sizeof(stat)); stat.place = place; /* Loop though the all possible extensions and calling passed @ext_func for each of them if corresponing extension exists. */ for (i = 0; i < STAT40_EXTNR; i++) { errno_t res; if (i == 0 || ((i + 1) % 16 == 0)) { /* Check if next pack exists. */ if (i > 0) { if (!((1 << (16 - 1)) & extmask) || i + 1 == STAT40_EXTNR) { break; } } extmask = st40_get_extmask(stat_body(&stat)); stat.plug = NULL; /* Call the callback for every read extmask. */ res = ext_func(&stat, extmask << (chunks * 16), data); if (res) return res; chunks++; stat.offset += sizeof(stat40_t); if (i > 0) continue; } /* If extension is not present, we going to the next one */ if (!((1 << (i - (chunks - 1) * 16)) & extmask)) continue; /* Getting extension plugin from the plugin factory */ stat.plug = (reiser4_sdext_plug_t *) stat40_core->factory_ops.ifind(SDEXT_PLUG_TYPE,i); if (!stat.plug) continue; /* Call the callback for every found extension. */ if ((res = ext_func(&stat, extmask, data))) return res; if (stat.plug->info) stat.plug->info(&stat); /* Calculating the pointer to the next extension body */ stat.offset += objcall(&stat, length, NULL); } return 0; } /* Callback for opening one extension */ static errno_t cb_open_ext(stat_entity_t *stat, uint64_t extmask, void *data) { stat_hint_t *stath; trans_hint_t *hint; /* Method open is not defined, this probably means, we only interested in symlink's length method in order to reach other symlinks body. So, we retrun 0 here. */ if (!stat->plug || !stat->plug->open) return 0; hint = (trans_hint_t *)data; stath = hint->specific; /* Reading mask into hint */ stath->extmask |= ((uint64_t)1 << stat->plug->p.id.id); /* We load @ext if its hint present in @stath */ if (stath->ext[stat->plug->p.id.id]) { void *sdext = stath->ext[stat->plug->p.id.id]; return objcall(stat, open, sdext); } return 0; } static inline reiser4_plug_t *stat40_file_mode(tree_entity_t *tree, uint16_t mode) { if (S_ISLNK(mode)) return tree->tset[TSET_SYMFILE]; else if (S_ISREG(mode)) return tree->tset[TSET_REGFILE]; else if (S_ISDIR(mode)) return tree->tset[TSET_DIRFILE]; else if (S_ISCHR(mode)) return tree->tset[TSET_SPLFILE]; else if (S_ISBLK(mode)) return tree->tset[TSET_SPLFILE]; else if (S_ISFIFO(mode)) return tree->tset[TSET_SPLFILE]; else if (S_ISSOCK(mode)) return tree->tset[TSET_SPLFILE]; return NULL; } static inline reiser4_plug_t *stat40_dir_mode(tree_entity_t *tree, uint16_t mode) { return NULL; } /* Decodes the object plug from the mode if needed. */ static void stat40_decode_pset(tree_entity_t *tree, sdhint_plug_t *plugh, sdhint_lw_t *lwh) { aal_assert("vpf-1630", tree != NULL); aal_assert("vpf-1631", plugh != NULL); aal_assert("vpf-1632", lwh != NULL); /* Object plugin does not need to be set. */ if (!plugh->plug[PSET_OBJ]) { plugh->plug[PSET_OBJ] = stat40_file_mode(tree, lwh->mode); plugh->plug_mask |= (1 << PSET_OBJ); } } /* Fetches whole statdata item with extensions into passed @buff */ static int64_t stat40_fetch_units(reiser4_place_t *place, trans_hint_t *hint) { bool_t lw_local = 0; sdhint_lw_t lwh; void **exts; aal_assert("umka-1415", hint != NULL); aal_assert("umka-1414", place != NULL); aal_assert("vpf-1633", place->node != NULL); exts = ((stat_hint_t *)hint->specific)->ext; /* If plug_hint is fetched, lw is needed also to adjust PSET_OBJ. */ if (exts[SDEXT_PSET_ID]) { if (!exts[SDEXT_LW_ID]) { exts[SDEXT_LW_ID] = &lwh; lw_local = 1; } } if (stat40_traverse(place, cb_open_ext, hint)) return -EINVAL; /* Adjust PSET_OBJ. */ if (exts[SDEXT_PSET_ID]) { stat40_decode_pset(place->node->tree, (sdhint_plug_t *)exts[SDEXT_PSET_ID], (sdhint_lw_t *)exts[SDEXT_LW_ID]); if (lw_local) exts[SDEXT_LW_ID] = NULL; } return 1; } /* This function returns unit count. This value must be 1 if item has not units. It is because balancing code assumes that if item has more than one unit the it may be shifted out. That is because w ecan't return the number of extensions here. Extensions are the statdata private bussiness. */ static uint32_t stat40_units(reiser4_place_t *place) { return 1; } #ifndef ENABLE_MINIMAL static errno_t stat40_encode_pset(reiser4_place_t *place, trans_hint_t *hint) { stat_hint_t *sd_hint; sdhint_plug_t *plugh; tree_entity_t *tree; uint16_t mode; errno_t res; aal_assert("vpf-1634", hint != NULL); aal_assert("vpf-1635", place != NULL); aal_assert("vpf-1636", place->node != NULL); if (!hint->specific || !((stat_hint_t *)hint->specific)->ext) return 0; sd_hint = (stat_hint_t *)hint->specific; plugh = ((sdhint_plug_t *)sd_hint->ext[SDEXT_PSET_ID]); if (!plugh || !(plugh->plug_mask & (1 << PSET_OBJ))) return 0; /* If LW hint is not present, fetch it from disk. */ if (!sd_hint->ext[SDEXT_LW_ID]) { trans_hint_t trans; stat_hint_t stat; sdhint_lw_t lwh; aal_memset(&stat, 0, sizeof(stat)); trans.specific = &stat; stat.ext[SDEXT_LW_ID] = &lwh; if ((res = stat40_fetch_units(place, &trans)) != 1) return res; /* If there is no LW extention at all, nothing to encode. */ if (!(stat.extmask & (1 << SDEXT_LW_ID))) return 0; mode = lwh.mode; } else { mode = ((sdhint_lw_t *)sd_hint->ext[SDEXT_LW_ID])->mode; } tree = place->node->tree; /* These all is performed on plugh hint, not on the object. So this altered plug_mask will not be reflected in the object plug_mask. */ if (plugh->plug[PSET_OBJ] == stat40_file_mode(tree, mode)) plugh->plug_mask &= ~(1 << PSET_OBJ); plugh->plug_mask &= ~(1 << PSET_DIR); /* Throw away the SD_PLUG if mask is empty. */ if (!plugh->plug_mask) sd_hint->extmask &= ~(1 << SDEXT_PSET_ID); return 0; } /* Estimates how many bytes will be needed for creating statdata item described by passed @hint at passed @pos. */ static errno_t stat40_prep_insert(reiser4_place_t *place, trans_hint_t *hint) { stat_hint_t *stath; errno_t res; uint16_t i; aal_assert("vpf-074", hint != NULL); hint->len = 0; if ((res = stat40_encode_pset(place, hint))) return res; if (place->pos.unit == MAX_UINT32) hint->len = sizeof(stat40_t); stath = (stat_hint_t *)hint->specific; aal_assert("umka-2360", stath->extmask != 0); /* Estimating the all stat data extensions */ for (i = 0; i < STAT40_EXTNR; i++) { reiser4_sdext_plug_t *plug; /* Check if extension is present in mask */ if (!(((uint64_t)1 << i) & stath->extmask)) continue; aal_assert("vpf-773", stath->ext[i] != NULL); /* If we are on the extension which is multiple of 16 (each mask has 16 bits) then we add to hint's len the size of next mask. */ if ((i + 1) % 16 == 0) { hint->len += sizeof(stat40_t); continue; } /* Getting extension plugin */ plug = (reiser4_sdext_plug_t *) stat40_core->factory_ops.ifind(SDEXT_PLUG_TYPE, i); if (!plug) { aal_error("Can't find stat data extension plugin " "by its id 0x%x.", i); return -EINVAL; } /* Calculating length of the corresponding extension and add it to the estimated value. */ hint->len += plugcall(plug, length, NULL, stath->ext[i]); } return 0; } /* Function for modifying stat40. */ static int64_t stat40_modify(reiser4_place_t *place, trans_hint_t *hint, int insert) { stat_hint_t *stath; stat_entity_t stat; uint16_t extmask = 0; uint16_t chunks = 0; uint16_t i; stath = (stat_hint_t *)hint->specific; aal_memset(&stat, 0, sizeof(stat)); stat.place = place; /* If this is a new item being inserted, zero the on-disk mask. */ if (place->pos.unit == MAX_UINT32 && insert) st40_set_extmask(stat_body(&stat), 0); if (!stath->extmask) return 0; for (i = 0; i < STAT40_EXTNR; i++) { /* Stat data contains 16 bit mask of extensions used in it. The first 15 bits of the mask denote the first 15 extensions in the stat data. And the bit number is the stat data extension plugin id. If the last bit turned on, then one more 16 bit mask present and so on. So, we should add sizeof(mask) to extension body pointer, in the case we are on bit dedicated to indicating if next extension exists or not. */ /* Check if we are on next extension mask. */ if (i == 0 || ((i + 1) % 16 == 0)) { if (i > 0) { if (!((1 << (16 - 1)) & extmask) || i + 1 == STAT40_EXTNR) { break; } } extmask = st40_get_extmask(stat_body(&stat)); if (insert) { /* Calculating new extmask in order to update old one. */ extmask |= (((stath->extmask >> i) & 0x000000000000ffff)); /* Update mask.*/ st40_set_extmask(stat_body(&stat), extmask); } chunks++; stat.offset += sizeof(stat40_t); if (i > 0) continue; } /* Check if extension is present in mask */ if (!((1 << (i << (chunks - 1) * 16)) & extmask)) continue; /* Getting extension plugin by extent number. */ stat.plug = (reiser4_sdext_plug_t *) stat40_core->factory_ops.ifind(SDEXT_PLUG_TYPE, i); if (!stat.plug) { aal_error("Can't find stat data extension plugin " "by its id 0x%x.", i); return -EINVAL; } /* Initializing extension data at passed area */ if (stath->ext[i]) { if (insert) { uint32_t extsize; /* Moving the rest of stat data to the right to keep stat data extension packed. */ extsize = plugcall(stat.plug, length, NULL, stath->ext[i]); aal_memmove(stat_body(&stat) + extsize, stat_body(&stat), place->len - (stat.offset + extsize)); } objcall(&stat, init, stath->ext[i]); } if (stat.plug->info) stat.plug->info(&stat); /* Getting pointer to the next extension. It is evaluating as the previous pointer plus its size. */ stat.offset += objcall(&stat, length, NULL); } place_mkdirty(place); return 1; } /* This method is for insert stat data extensions. */ static int64_t stat40_insert_units(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("vpf-076", place != NULL); aal_assert("vpf-075", hint != NULL); return stat40_modify(place, hint, 1); } /* This method is for update stat data extensions. */ static int64_t stat40_update_units(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("umka-2588", place != NULL); aal_assert("umka-2589", hint != NULL); return stat40_modify(place, hint, 0); } /* Removes stat data extensions marked in passed hint stat data extensions mask. Needed for fsck. */ static errno_t stat40_remove_units(reiser4_place_t *place, trans_hint_t *hint) { uint16_t old_extmask = 0; uint16_t new_extmask; uint16_t extsize; uint16_t chunks = 0; stat_entity_t stat; stat_hint_t *stath; uint16_t i; aal_assert("umka-2590", place != NULL); aal_assert("umka-2591", hint != NULL); hint->overhead = 0; hint->len = 0; stath = (stat_hint_t *)hint->specific; aal_memset(&stat, 0, sizeof(stat)); stat.place = place; for (i = 0; i < STAT40_EXTNR; i++) { /* Check if we are on next extension mask. */ if (i == 0 || ((i + 1) % 16 == 0)) { /* Getting current old mask. It is needed to calculate extbody correctly to shrink stat data. */ if (i > 0) { if (!((1 << (16 - 1)) & old_extmask) || i + 1 == STAT40_EXTNR) { break; } } old_extmask = st40_get_extmask(stat_body(&stat)); /* Calculating new extmask in order to update old one. */ new_extmask = old_extmask & ~(((stath->extmask >> i) & 0x000000000000ffff)); /* Update mask.*/ st40_set_extmask(stat_body(&stat), new_extmask); chunks++; stat.offset += sizeof(stat40_t); if (i > 0) continue; } /* Check if we're interested in this extension. */ if (!((1 << (i - (chunks - 1) * 16)) & old_extmask)) continue; /* Getting extension plugin by extent number. */ stat.plug = (reiser4_sdext_plug_t *) stat40_core->factory_ops.ifind(SDEXT_PLUG_TYPE, i); if (!stat.plug) { aal_error("Can't find stat data extension plugin " "by its id 0x%x.", i); return -EINVAL; } extsize = objcall(&stat, length, NULL); if ((((uint64_t)1 << i) & stath->extmask)) { /* Moving the rest of stat data to left in odrer to keep stat data extension packed. */ aal_memmove(stat_body(&stat), stat_body(&stat) + extsize, place->len - (stat.offset + extsize)); hint->len += extsize; } else { /* Setting pointer to the next extension. */ stat.offset += extsize; if (stat.plug->info) stat.plug->info(&stat); } } place_mkdirty(place); return 0; } #endif static item_balance_ops_t balance_ops = { #ifndef ENABLE_MINIMAL .merge = NULL, .prep_shift = NULL, .shift_units = NULL, .update_key = NULL, .maxreal_key = NULL, .mergeable = NULL, .collision = NULL, .overhead = NULL, #endif .init = NULL, .lookup = NULL, .fetch_key = NULL, .maxposs_key = NULL, .units = stat40_units, }; static item_object_ops_t object_ops = { .read_units = NULL, #ifndef ENABLE_MINIMAL .prep_write = NULL, .write_units = NULL, .prep_insert = stat40_prep_insert, .insert_units = stat40_insert_units, .update_units = stat40_update_units, .remove_units = stat40_remove_units, .trunc_units = NULL, .layout = NULL, .size = NULL, .bytes = NULL, #endif .fetch_units = stat40_fetch_units }; #ifndef ENABLE_MINIMAL static item_repair_ops_t repair_ops = { .check_struct = stat40_check_struct, .check_layout = NULL, .prep_insert_raw = stat40_prep_insert_raw, .insert_raw = stat40_insert_raw, .pack = NULL, .unpack = NULL }; static item_debug_ops_t debug_ops = { .print = stat40_print, }; #endif reiser4_item_plug_t stat40_plug = { .p = { .id = {ITEM_STAT40_ID, STAT_ITEM, ITEM_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "stat40", .desc = "StatData item plugin.", #endif }, .object = &object_ops, .balance = &balance_ops, #ifndef ENABLE_MINIMAL .repair = &repair_ops, .debug = &debug_ops, #endif }; reiser4progs-1.0.7.orig/plugin/item/stat40/stat40.h0000644000175000017500000000153311131470543017572 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. stat40.h -- reiser4 default stat data structures. */ #ifndef STAT40_H #define STAT40_H #include #include /* Macro for getting stat data body from item */ #define stat40_body(place) ((stat40_t *)place->body) /* Type for stat40 layout callback function */ typedef errno_t (*ext_func_t) (stat_entity_t *, uint64_t, void *); extern errno_t stat40_traverse(reiser4_place_t *place, ext_func_t ext_func, void *data); typedef struct stat40 { d16_t extmask; } stat40_t; extern reiser4_core_t *stat40_core; #define STAT40_EXTNR (64) #define st40_get_extmask(stat) aal_get_le16(((stat40_t *)stat), extmask) #define st40_set_extmask(stat, val) aal_set_le16(((stat40_t *)stat), extmask, val) #endif reiser4progs-1.0.7.orig/plugin/item/stat40/Makefile.am0000644000175000017500000000112511131470543020333 0ustar fzfzincludedir = -I$(top_srcdir)/include stat40_sources = stat40.c stat40_repair.c stat40.h stat40_repair.h STATIC_LIBS = libstat40-static.la libstat40_static_la_SOURCES = $(stat40_sources) libstat40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libstat40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libstat40_minimal_la_SOURCES = $(stat40_sources) libstat40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/fibre/0000777000175000017500000000000011134133447015320 5ustar fzfzreiser4progs-1.0.7.orig/plugin/fibre/lexic_fibre/0000777000175000017500000000000011134133447017573 5ustar fzfzreiser4progs-1.0.7.orig/plugin/fibre/lexic_fibre/lexic_fibre.c0000644000175000017500000000100411131470543022177 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. lexic.c -- lexicographic fibration code. */ #ifdef ENABLE_LEXIC_FIBRE #include static uint8_t fibre_lexic_build(char *name, uint32_t len) { return 0; } reiser4_fibre_plug_t fibre_lexic_plug = { .p = { .id = {FIBRE_LEXIC_ID, 0, FIBRE_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "lexic_fibre", .desc = "Lexicographic fibration plugin.", #endif }, .build = fibre_lexic_build }; #endif reiser4progs-1.0.7.orig/plugin/fibre/lexic_fibre/Makefile.in0000644000175000017500000004233411134132272021635 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/fibre/lexic_fibre DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) liblexic_fibre_minimal_la_LIBADD = am__liblexic_fibre_minimal_la_SOURCES_DIST = lexic_fibre.c am__objects_1 = liblexic_fibre_minimal_la-lexic_fibre.lo @ENABLE_MINIMAL_TRUE@am_liblexic_fibre_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) liblexic_fibre_minimal_la_OBJECTS = \ $(am_liblexic_fibre_minimal_la_OBJECTS) liblexic_fibre_minimal_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(liblexic_fibre_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_liblexic_fibre_minimal_la_rpath = liblexic_fibre_static_la_LIBADD = am__objects_2 = liblexic_fibre_static_la-lexic_fibre.lo am_liblexic_fibre_static_la_OBJECTS = $(am__objects_2) liblexic_fibre_static_la_OBJECTS = \ $(am_liblexic_fibre_static_la_OBJECTS) liblexic_fibre_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(liblexic_fibre_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(liblexic_fibre_minimal_la_SOURCES) \ $(liblexic_fibre_static_la_SOURCES) DIST_SOURCES = $(am__liblexic_fibre_minimal_la_SOURCES_DIST) \ $(liblexic_fibre_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lexic_fibre_sources = lexic_fibre.c STATIC_LIBS = liblexic_fibre-static.la liblexic_fibre_static_la_SOURCES = $(lexic_fibre_sources) liblexic_fibre_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = liblexic_fibre-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@liblexic_fibre_minimal_la_SOURCES = $(lexic_fibre_sources) @ENABLE_MINIMAL_TRUE@liblexic_fibre_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/fibre/lexic_fibre/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/fibre/lexic_fibre/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done liblexic_fibre-minimal.la: $(liblexic_fibre_minimal_la_OBJECTS) $(liblexic_fibre_minimal_la_DEPENDENCIES) $(liblexic_fibre_minimal_la_LINK) $(am_liblexic_fibre_minimal_la_rpath) $(liblexic_fibre_minimal_la_OBJECTS) $(liblexic_fibre_minimal_la_LIBADD) $(LIBS) liblexic_fibre-static.la: $(liblexic_fibre_static_la_OBJECTS) $(liblexic_fibre_static_la_DEPENDENCIES) $(liblexic_fibre_static_la_LINK) $(liblexic_fibre_static_la_OBJECTS) $(liblexic_fibre_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblexic_fibre_minimal_la-lexic_fibre.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblexic_fibre_static_la-lexic_fibre.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< liblexic_fibre_minimal_la-lexic_fibre.lo: lexic_fibre.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblexic_fibre_minimal_la_CFLAGS) $(CFLAGS) -MT liblexic_fibre_minimal_la-lexic_fibre.lo -MD -MP -MF $(DEPDIR)/liblexic_fibre_minimal_la-lexic_fibre.Tpo -c -o liblexic_fibre_minimal_la-lexic_fibre.lo `test -f 'lexic_fibre.c' || echo '$(srcdir)/'`lexic_fibre.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liblexic_fibre_minimal_la-lexic_fibre.Tpo $(DEPDIR)/liblexic_fibre_minimal_la-lexic_fibre.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lexic_fibre.c' object='liblexic_fibre_minimal_la-lexic_fibre.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblexic_fibre_minimal_la_CFLAGS) $(CFLAGS) -c -o liblexic_fibre_minimal_la-lexic_fibre.lo `test -f 'lexic_fibre.c' || echo '$(srcdir)/'`lexic_fibre.c liblexic_fibre_static_la-lexic_fibre.lo: lexic_fibre.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblexic_fibre_static_la_CFLAGS) $(CFLAGS) -MT liblexic_fibre_static_la-lexic_fibre.lo -MD -MP -MF $(DEPDIR)/liblexic_fibre_static_la-lexic_fibre.Tpo -c -o liblexic_fibre_static_la-lexic_fibre.lo `test -f 'lexic_fibre.c' || echo '$(srcdir)/'`lexic_fibre.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liblexic_fibre_static_la-lexic_fibre.Tpo $(DEPDIR)/liblexic_fibre_static_la-lexic_fibre.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lexic_fibre.c' object='liblexic_fibre_static_la-lexic_fibre.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblexic_fibre_static_la_CFLAGS) $(CFLAGS) -c -o liblexic_fibre_static_la-lexic_fibre.lo `test -f 'lexic_fibre.c' || echo '$(srcdir)/'`lexic_fibre.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/fibre/lexic_fibre/Makefile.am0000644000175000017500000000102611131470543021620 0ustar fzfzincludedir = -I$(top_srcdir)/include lexic_fibre_sources = lexic_fibre.c STATIC_LIBS = liblexic_fibre-static.la liblexic_fibre_static_la_SOURCES= $(lexic_fibre_sources) liblexic_fibre_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = liblexic_fibre-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL liblexic_fibre_minimal_la_SOURCES = $(lexic_fibre_sources) liblexic_fibre_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/fibre/dot_o_fibre/0000777000175000017500000000000011134133447017573 5ustar fzfzreiser4progs-1.0.7.orig/plugin/fibre/dot_o_fibre/Makefile.in0000644000175000017500000004233411134132272021635 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/fibre/dot_o_fibre DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libdot_o_fibre_minimal_la_LIBADD = am__libdot_o_fibre_minimal_la_SOURCES_DIST = dot_o_fibre.c am__objects_1 = libdot_o_fibre_minimal_la-dot_o_fibre.lo @ENABLE_MINIMAL_TRUE@am_libdot_o_fibre_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libdot_o_fibre_minimal_la_OBJECTS = \ $(am_libdot_o_fibre_minimal_la_OBJECTS) libdot_o_fibre_minimal_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libdot_o_fibre_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libdot_o_fibre_minimal_la_rpath = libdot_o_fibre_static_la_LIBADD = am__objects_2 = libdot_o_fibre_static_la-dot_o_fibre.lo am_libdot_o_fibre_static_la_OBJECTS = $(am__objects_2) libdot_o_fibre_static_la_OBJECTS = \ $(am_libdot_o_fibre_static_la_OBJECTS) libdot_o_fibre_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libdot_o_fibre_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libdot_o_fibre_minimal_la_SOURCES) \ $(libdot_o_fibre_static_la_SOURCES) DIST_SOURCES = $(am__libdot_o_fibre_minimal_la_SOURCES_DIST) \ $(libdot_o_fibre_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dot_o_fibre_sources = dot_o_fibre.c STATIC_LIBS = libdot_o_fibre-static.la libdot_o_fibre_static_la_SOURCES = $(dot_o_fibre_sources) libdot_o_fibre_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libdot_o_fibre-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libdot_o_fibre_minimal_la_SOURCES = $(dot_o_fibre_sources) @ENABLE_MINIMAL_TRUE@libdot_o_fibre_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/fibre/dot_o_fibre/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/fibre/dot_o_fibre/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libdot_o_fibre-minimal.la: $(libdot_o_fibre_minimal_la_OBJECTS) $(libdot_o_fibre_minimal_la_DEPENDENCIES) $(libdot_o_fibre_minimal_la_LINK) $(am_libdot_o_fibre_minimal_la_rpath) $(libdot_o_fibre_minimal_la_OBJECTS) $(libdot_o_fibre_minimal_la_LIBADD) $(LIBS) libdot_o_fibre-static.la: $(libdot_o_fibre_static_la_OBJECTS) $(libdot_o_fibre_static_la_DEPENDENCIES) $(libdot_o_fibre_static_la_LINK) $(libdot_o_fibre_static_la_OBJECTS) $(libdot_o_fibre_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdot_o_fibre_minimal_la-dot_o_fibre.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdot_o_fibre_static_la-dot_o_fibre.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libdot_o_fibre_minimal_la-dot_o_fibre.lo: dot_o_fibre.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdot_o_fibre_minimal_la_CFLAGS) $(CFLAGS) -MT libdot_o_fibre_minimal_la-dot_o_fibre.lo -MD -MP -MF $(DEPDIR)/libdot_o_fibre_minimal_la-dot_o_fibre.Tpo -c -o libdot_o_fibre_minimal_la-dot_o_fibre.lo `test -f 'dot_o_fibre.c' || echo '$(srcdir)/'`dot_o_fibre.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libdot_o_fibre_minimal_la-dot_o_fibre.Tpo $(DEPDIR)/libdot_o_fibre_minimal_la-dot_o_fibre.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dot_o_fibre.c' object='libdot_o_fibre_minimal_la-dot_o_fibre.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdot_o_fibre_minimal_la_CFLAGS) $(CFLAGS) -c -o libdot_o_fibre_minimal_la-dot_o_fibre.lo `test -f 'dot_o_fibre.c' || echo '$(srcdir)/'`dot_o_fibre.c libdot_o_fibre_static_la-dot_o_fibre.lo: dot_o_fibre.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdot_o_fibre_static_la_CFLAGS) $(CFLAGS) -MT libdot_o_fibre_static_la-dot_o_fibre.lo -MD -MP -MF $(DEPDIR)/libdot_o_fibre_static_la-dot_o_fibre.Tpo -c -o libdot_o_fibre_static_la-dot_o_fibre.lo `test -f 'dot_o_fibre.c' || echo '$(srcdir)/'`dot_o_fibre.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libdot_o_fibre_static_la-dot_o_fibre.Tpo $(DEPDIR)/libdot_o_fibre_static_la-dot_o_fibre.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dot_o_fibre.c' object='libdot_o_fibre_static_la-dot_o_fibre.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdot_o_fibre_static_la_CFLAGS) $(CFLAGS) -c -o libdot_o_fibre_static_la-dot_o_fibre.lo `test -f 'dot_o_fibre.c' || echo '$(srcdir)/'`dot_o_fibre.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/fibre/dot_o_fibre/dot_o_fibre.c0000644000175000017500000000114711131470543022207 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. dot_o.c -- ".o" fibration code. */ #ifdef ENABLE_DOT_O_FIBRE #include static uint8_t fibre_dot_o_build(char *name, uint32_t len) { aal_assert("vpf-1565", name != NULL); if (len > 2 && name[len - 1] == 'o' && name[len - 2] == '.') return 1; return 0; } reiser4_fibre_plug_t fibre_dot_o_plug = { .p = { .id = {FIBRE_DOT_O_ID, 0, FIBRE_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "dot_o_fibre", .desc = "'.o' fibration plugin.", #endif }, .build = fibre_dot_o_build }; #endif reiser4progs-1.0.7.orig/plugin/fibre/dot_o_fibre/Makefile.am0000644000175000017500000000102611131470543021620 0ustar fzfzincludedir = -I$(top_srcdir)/include dot_o_fibre_sources = dot_o_fibre.c STATIC_LIBS = libdot_o_fibre-static.la libdot_o_fibre_static_la_SOURCES= $(dot_o_fibre_sources) libdot_o_fibre_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libdot_o_fibre-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libdot_o_fibre_minimal_la_SOURCES = $(dot_o_fibre_sources) libdot_o_fibre_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/fibre/Makefile.in0000644000175000017500000003440311134132272017360 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/fibre DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = lexic_fibre dot_o_fibre ext_1_fibre ext_3_fibre all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/fibre/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/fibre/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/fibre/ext_3_fibre/0000777000175000017500000000000011134133447017511 5ustar fzfzreiser4progs-1.0.7.orig/plugin/fibre/ext_3_fibre/ext_3_fibre.c0000644000175000017500000000120311131470543022034 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ext_3.c -- 3-symbol extention fibration code. */ #ifdef ENABLE_EXT_3_FIBRE #include static uint8_t fibre_ext_3_build(char *name, uint32_t len) { if (len > 4 && name[len - 4] == '.') return (uint8_t)(name[len - 3] + name[len - 2] + name[len - 1]); return 0; } reiser4_fibre_plug_t fibre_ext_3_plug = { .p = { .id = {FIBRE_EXT_3_ID, 0, FIBRE_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "ext_3_fibre", .desc = "3-symbol extention fibration plugin.", #endif }, .build = fibre_ext_3_build }; #endif reiser4progs-1.0.7.orig/plugin/fibre/ext_3_fibre/Makefile.in0000644000175000017500000004233411134132272021553 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/fibre/ext_3_fibre DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libext_3_fibre_minimal_la_LIBADD = am__libext_3_fibre_minimal_la_SOURCES_DIST = ext_3_fibre.c am__objects_1 = libext_3_fibre_minimal_la-ext_3_fibre.lo @ENABLE_MINIMAL_TRUE@am_libext_3_fibre_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libext_3_fibre_minimal_la_OBJECTS = \ $(am_libext_3_fibre_minimal_la_OBJECTS) libext_3_fibre_minimal_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libext_3_fibre_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libext_3_fibre_minimal_la_rpath = libext_3_fibre_static_la_LIBADD = am__objects_2 = libext_3_fibre_static_la-ext_3_fibre.lo am_libext_3_fibre_static_la_OBJECTS = $(am__objects_2) libext_3_fibre_static_la_OBJECTS = \ $(am_libext_3_fibre_static_la_OBJECTS) libext_3_fibre_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libext_3_fibre_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libext_3_fibre_minimal_la_SOURCES) \ $(libext_3_fibre_static_la_SOURCES) DIST_SOURCES = $(am__libext_3_fibre_minimal_la_SOURCES_DIST) \ $(libext_3_fibre_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ext_3_fibre_sources = ext_3_fibre.c STATIC_LIBS = libext_3_fibre-static.la libext_3_fibre_static_la_SOURCES = $(ext_3_fibre_sources) libext_3_fibre_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libext_3_fibre-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libext_3_fibre_minimal_la_SOURCES = $(ext_3_fibre_sources) @ENABLE_MINIMAL_TRUE@libext_3_fibre_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/fibre/ext_3_fibre/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/fibre/ext_3_fibre/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libext_3_fibre-minimal.la: $(libext_3_fibre_minimal_la_OBJECTS) $(libext_3_fibre_minimal_la_DEPENDENCIES) $(libext_3_fibre_minimal_la_LINK) $(am_libext_3_fibre_minimal_la_rpath) $(libext_3_fibre_minimal_la_OBJECTS) $(libext_3_fibre_minimal_la_LIBADD) $(LIBS) libext_3_fibre-static.la: $(libext_3_fibre_static_la_OBJECTS) $(libext_3_fibre_static_la_DEPENDENCIES) $(libext_3_fibre_static_la_LINK) $(libext_3_fibre_static_la_OBJECTS) $(libext_3_fibre_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libext_3_fibre_minimal_la-ext_3_fibre.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libext_3_fibre_static_la-ext_3_fibre.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libext_3_fibre_minimal_la-ext_3_fibre.lo: ext_3_fibre.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libext_3_fibre_minimal_la_CFLAGS) $(CFLAGS) -MT libext_3_fibre_minimal_la-ext_3_fibre.lo -MD -MP -MF $(DEPDIR)/libext_3_fibre_minimal_la-ext_3_fibre.Tpo -c -o libext_3_fibre_minimal_la-ext_3_fibre.lo `test -f 'ext_3_fibre.c' || echo '$(srcdir)/'`ext_3_fibre.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libext_3_fibre_minimal_la-ext_3_fibre.Tpo $(DEPDIR)/libext_3_fibre_minimal_la-ext_3_fibre.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ext_3_fibre.c' object='libext_3_fibre_minimal_la-ext_3_fibre.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libext_3_fibre_minimal_la_CFLAGS) $(CFLAGS) -c -o libext_3_fibre_minimal_la-ext_3_fibre.lo `test -f 'ext_3_fibre.c' || echo '$(srcdir)/'`ext_3_fibre.c libext_3_fibre_static_la-ext_3_fibre.lo: ext_3_fibre.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libext_3_fibre_static_la_CFLAGS) $(CFLAGS) -MT libext_3_fibre_static_la-ext_3_fibre.lo -MD -MP -MF $(DEPDIR)/libext_3_fibre_static_la-ext_3_fibre.Tpo -c -o libext_3_fibre_static_la-ext_3_fibre.lo `test -f 'ext_3_fibre.c' || echo '$(srcdir)/'`ext_3_fibre.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libext_3_fibre_static_la-ext_3_fibre.Tpo $(DEPDIR)/libext_3_fibre_static_la-ext_3_fibre.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ext_3_fibre.c' object='libext_3_fibre_static_la-ext_3_fibre.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libext_3_fibre_static_la_CFLAGS) $(CFLAGS) -c -o libext_3_fibre_static_la-ext_3_fibre.lo `test -f 'ext_3_fibre.c' || echo '$(srcdir)/'`ext_3_fibre.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/fibre/ext_3_fibre/Makefile.am0000644000175000017500000000102611131470543021536 0ustar fzfzincludedir = -I$(top_srcdir)/include ext_3_fibre_sources = ext_3_fibre.c STATIC_LIBS = libext_3_fibre-static.la libext_3_fibre_static_la_SOURCES= $(ext_3_fibre_sources) libext_3_fibre_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libext_3_fibre-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libext_3_fibre_minimal_la_SOURCES = $(ext_3_fibre_sources) libext_3_fibre_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/fibre/ext_1_fibre/0000777000175000017500000000000011134133447017507 5ustar fzfzreiser4progs-1.0.7.orig/plugin/fibre/ext_1_fibre/Makefile.in0000644000175000017500000004233411134132272021551 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/fibre/ext_1_fibre DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libext_1_fibre_minimal_la_LIBADD = am__libext_1_fibre_minimal_la_SOURCES_DIST = ext_1_fibre.c am__objects_1 = libext_1_fibre_minimal_la-ext_1_fibre.lo @ENABLE_MINIMAL_TRUE@am_libext_1_fibre_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libext_1_fibre_minimal_la_OBJECTS = \ $(am_libext_1_fibre_minimal_la_OBJECTS) libext_1_fibre_minimal_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libext_1_fibre_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libext_1_fibre_minimal_la_rpath = libext_1_fibre_static_la_LIBADD = am__objects_2 = libext_1_fibre_static_la-ext_1_fibre.lo am_libext_1_fibre_static_la_OBJECTS = $(am__objects_2) libext_1_fibre_static_la_OBJECTS = \ $(am_libext_1_fibre_static_la_OBJECTS) libext_1_fibre_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libext_1_fibre_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libext_1_fibre_minimal_la_SOURCES) \ $(libext_1_fibre_static_la_SOURCES) DIST_SOURCES = $(am__libext_1_fibre_minimal_la_SOURCES_DIST) \ $(libext_1_fibre_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ext_1_fibre_sources = ext_1_fibre.c STATIC_LIBS = libext_1_fibre-static.la libext_1_fibre_static_la_SOURCES = $(ext_1_fibre_sources) libext_1_fibre_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libext_1_fibre-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libext_1_fibre_minimal_la_SOURCES = $(ext_1_fibre_sources) @ENABLE_MINIMAL_TRUE@libext_1_fibre_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/fibre/ext_1_fibre/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/fibre/ext_1_fibre/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libext_1_fibre-minimal.la: $(libext_1_fibre_minimal_la_OBJECTS) $(libext_1_fibre_minimal_la_DEPENDENCIES) $(libext_1_fibre_minimal_la_LINK) $(am_libext_1_fibre_minimal_la_rpath) $(libext_1_fibre_minimal_la_OBJECTS) $(libext_1_fibre_minimal_la_LIBADD) $(LIBS) libext_1_fibre-static.la: $(libext_1_fibre_static_la_OBJECTS) $(libext_1_fibre_static_la_DEPENDENCIES) $(libext_1_fibre_static_la_LINK) $(libext_1_fibre_static_la_OBJECTS) $(libext_1_fibre_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libext_1_fibre_minimal_la-ext_1_fibre.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libext_1_fibre_static_la-ext_1_fibre.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libext_1_fibre_minimal_la-ext_1_fibre.lo: ext_1_fibre.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libext_1_fibre_minimal_la_CFLAGS) $(CFLAGS) -MT libext_1_fibre_minimal_la-ext_1_fibre.lo -MD -MP -MF $(DEPDIR)/libext_1_fibre_minimal_la-ext_1_fibre.Tpo -c -o libext_1_fibre_minimal_la-ext_1_fibre.lo `test -f 'ext_1_fibre.c' || echo '$(srcdir)/'`ext_1_fibre.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libext_1_fibre_minimal_la-ext_1_fibre.Tpo $(DEPDIR)/libext_1_fibre_minimal_la-ext_1_fibre.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ext_1_fibre.c' object='libext_1_fibre_minimal_la-ext_1_fibre.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libext_1_fibre_minimal_la_CFLAGS) $(CFLAGS) -c -o libext_1_fibre_minimal_la-ext_1_fibre.lo `test -f 'ext_1_fibre.c' || echo '$(srcdir)/'`ext_1_fibre.c libext_1_fibre_static_la-ext_1_fibre.lo: ext_1_fibre.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libext_1_fibre_static_la_CFLAGS) $(CFLAGS) -MT libext_1_fibre_static_la-ext_1_fibre.lo -MD -MP -MF $(DEPDIR)/libext_1_fibre_static_la-ext_1_fibre.Tpo -c -o libext_1_fibre_static_la-ext_1_fibre.lo `test -f 'ext_1_fibre.c' || echo '$(srcdir)/'`ext_1_fibre.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libext_1_fibre_static_la-ext_1_fibre.Tpo $(DEPDIR)/libext_1_fibre_static_la-ext_1_fibre.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ext_1_fibre.c' object='libext_1_fibre_static_la-ext_1_fibre.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libext_1_fibre_static_la_CFLAGS) $(CFLAGS) -c -o libext_1_fibre_static_la-ext_1_fibre.lo `test -f 'ext_1_fibre.c' || echo '$(srcdir)/'`ext_1_fibre.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/fibre/ext_1_fibre/ext_1_fibre.c0000644000175000017500000000117711131470543022042 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ext_t.c -- 1 symbol extention fibration code. */ #ifdef ENABLE_EXT_1_FIBRE #include static uint8_t fibre_ext_1_build(char *name, uint32_t len) { aal_assert("vpf-1566", name != NULL); if (len > 2 && name[len - 2] == '.') return (uint8_t)name[len - 1]; return 0; } reiser4_fibre_plug_t fibre_ext_1_plug = { .p = { .id = {FIBRE_EXT_1_ID, 0, FIBRE_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "ext_1_fibre", .desc = "1-symbol extention fibration plugin.", #endif }, .build = fibre_ext_1_build }; #endif reiser4progs-1.0.7.orig/plugin/fibre/ext_1_fibre/Makefile.am0000644000175000017500000000102611131470543021534 0ustar fzfzincludedir = -I$(top_srcdir)/include ext_1_fibre_sources = ext_1_fibre.c STATIC_LIBS = libext_1_fibre-static.la libext_1_fibre_static_la_SOURCES= $(ext_1_fibre_sources) libext_1_fibre_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libext_1_fibre-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libext_1_fibre_minimal_la_SOURCES = $(ext_1_fibre_sources) libext_1_fibre_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/fibre/Makefile.am0000644000175000017500000000007411131470543017347 0ustar fzfzSUBDIRS = lexic_fibre dot_o_fibre ext_1_fibre ext_3_fibre reiser4progs-1.0.7.orig/plugin/Makefile.in0000644000175000017500000006663711134132271016306 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) @ENABLE_MINIMAL_TRUE@libreiser4_plugin_minimal_la_DEPENDENCIES = \ @ENABLE_MINIMAL_TRUE@ format/format40/libformat40-minimal.la \ @ENABLE_MINIMAL_TRUE@ oid/oid40/liboid40-minimal.la \ @ENABLE_MINIMAL_TRUE@ node/node40/libnode40-minimal.la \ @ENABLE_MINIMAL_TRUE@ key/key_common/libkey_common-minimal.la \ @ENABLE_MINIMAL_TRUE@ key/key_short/libkey_short-minimal.la \ @ENABLE_MINIMAL_TRUE@ key/key_large/libkey_large-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/body40/libbody40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/nodeptr40/libnodeptr40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/cde40/libcde40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/tail40/libtail40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/plain40/libplain40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/ctail40/libctail40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/extent40/libextent40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/stat40/libstat40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/bbox40/libbbox40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/obj40/libobj40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/dir40/libdir40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/reg40/libreg40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/sym40/libsym40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/spl40/libspl40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/ccreg40/libccreg40-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_unix/libsdext_unix-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_lw/libsdext_lw-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_lt/libsdext_lt-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_symlink/libsdext_symlink-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_plug/libsdext_plug-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_flags/libsdext_flags-minimal.la \ @ENABLE_MINIMAL_TRUE@ policy/tails/libtails-minimal.la \ @ENABLE_MINIMAL_TRUE@ policy/extents/libextents-minimal.la \ @ENABLE_MINIMAL_TRUE@ policy/smart/libsmart-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/r5_hash/libr5_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/fnv1_hash/libfnv1_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/rupasov_hash/librupasov_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/tea_hash/libtea_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/deg_hash/libdeg_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ fibre/lexic_fibre/liblexic_fibre-minimal.la \ @ENABLE_MINIMAL_TRUE@ fibre/dot_o_fibre/libdot_o_fibre-minimal.la \ @ENABLE_MINIMAL_TRUE@ fibre/ext_1_fibre/libext_1_fibre-minimal.la \ @ENABLE_MINIMAL_TRUE@ fibre/ext_3_fibre/libext_3_fibre-minimal.la \ @ENABLE_MINIMAL_TRUE@ compress/libcompress-minimal.la am_libreiser4_plugin_minimal_la_OBJECTS = libreiser4_plugin_minimal_la_OBJECTS = \ $(am_libreiser4_plugin_minimal_la_OBJECTS) @ENABLE_MINIMAL_TRUE@am_libreiser4_plugin_minimal_la_rpath = libreiser4_plugin_la_DEPENDENCIES = \ format/format40/libformat40-static.la \ journal/journal40/libjournal40-static.la \ alloc/alloc40/liballoc40-static.la \ oid/oid40/liboid40-static.la node/node40/libnode40-static.la \ key/key_common/libkey_common-static.la \ key/key_short/libkey_short-static.la \ key/key_large/libkey_large-static.la \ item/nodeptr40/libnodeptr40-static.la \ item/cde40/libcde40-static.la item/body40/libbody40-static.la \ item/tail40/libtail40-static.la \ item/plain40/libplain40-static.la \ item/ctail40/libctail40-static.la \ item/extent40/libextent40-static.la \ item/stat40/libstat40-static.la \ item/bbox40/libbbox40-static.la \ object/obj40/libobj40-static.la \ object/dir40/libdir40-static.la \ object/reg40/libreg40-static.la \ object/sym40/libsym40-static.la \ object/spl40/libspl40-static.la \ object/ccreg40/libccreg40-static.la \ sdext/sdext_unix/libsdext_unix-static.la \ sdext/sdext_lw/libsdext_lw-static.la \ sdext/sdext_lt/libsdext_lt-static.la \ sdext/sdext_symlink/libsdext_symlink-static.la \ sdext/sdext_plug/libsdext_plug-static.la \ sdext/sdext_crypto/libsdext_crypto-static.la \ sdext/sdext_flags/libsdext_flags-static.la \ policy/tails/libtails-static.la \ policy/extents/libextents-static.la \ policy/smart/libsmart-static.la \ hash/r5_hash/libr5_hash-static.la \ hash/fnv1_hash/libfnv1_hash-static.la \ hash/rupasov_hash/librupasov_hash-static.la \ hash/tea_hash/libtea_hash-static.la \ hash/deg_hash/libdeg_hash-static.la \ fibre/lexic_fibre/liblexic_fibre-static.la \ fibre/dot_o_fibre/libdot_o_fibre-static.la \ fibre/ext_1_fibre/libext_1_fibre-static.la \ fibre/ext_3_fibre/libext_3_fibre-static.la \ compress/libcompress-static.la am_libreiser4_plugin_la_OBJECTS = libreiser4_plugin_la_OBJECTS = $(am_libreiser4_plugin_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libreiser4_plugin_minimal_la_SOURCES) \ $(libreiser4_plugin_la_SOURCES) DIST_SOURCES = $(libreiser4_plugin_minimal_la_SOURCES) \ $(libreiser4_plugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = format journal alloc oid node key hash \ sdext item object policy fibre compress @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libreiser4-plugin-minimal.la noinst_LTLIBRARIES = libreiser4-plugin.la $(MINIMAL_LIBS) libreiser4_plugin_la_LIBADD = format/format40/libformat40-static.la \ journal/journal40/libjournal40-static.la \ alloc/alloc40/liballoc40-static.la \ oid/oid40/liboid40-static.la \ node/node40/libnode40-static.la \ key/key_common/libkey_common-static.la \ key/key_short/libkey_short-static.la \ key/key_large/libkey_large-static.la \ item/nodeptr40/libnodeptr40-static.la \ item/cde40/libcde40-static.la \ item/body40/libbody40-static.la \ item/tail40/libtail40-static.la \ item/plain40/libplain40-static.la \ item/ctail40/libctail40-static.la \ item/extent40/libextent40-static.la \ item/stat40/libstat40-static.la \ item/bbox40/libbbox40-static.la \ object/obj40/libobj40-static.la \ object/dir40/libdir40-static.la \ object/reg40/libreg40-static.la \ object/sym40/libsym40-static.la \ object/spl40/libspl40-static.la \ object/ccreg40/libccreg40-static.la \ sdext/sdext_unix/libsdext_unix-static.la \ sdext/sdext_lw/libsdext_lw-static.la \ sdext/sdext_lt/libsdext_lt-static.la \ sdext/sdext_symlink/libsdext_symlink-static.la \ sdext/sdext_plug/libsdext_plug-static.la \ sdext/sdext_crypto/libsdext_crypto-static.la \ sdext/sdext_flags/libsdext_flags-static.la \ policy/tails/libtails-static.la \ policy/extents/libextents-static.la \ policy/smart/libsmart-static.la \ hash/r5_hash/libr5_hash-static.la \ hash/fnv1_hash/libfnv1_hash-static.la \ hash/rupasov_hash/librupasov_hash-static.la \ hash/tea_hash/libtea_hash-static.la \ hash/deg_hash/libdeg_hash-static.la \ fibre/lexic_fibre/liblexic_fibre-static.la \ fibre/dot_o_fibre/libdot_o_fibre-static.la \ fibre/ext_1_fibre/libext_1_fibre-static.la \ fibre/ext_3_fibre/libext_3_fibre-static.la \ compress/libcompress-static.la @ENABLE_MINIMAL_TRUE@libreiser4_plugin_minimal_la_LIBADD = format/format40/libformat40-minimal.la \ @ENABLE_MINIMAL_TRUE@ oid/oid40/liboid40-minimal.la \ @ENABLE_MINIMAL_TRUE@ node/node40/libnode40-minimal.la \ @ENABLE_MINIMAL_TRUE@ key/key_common/libkey_common-minimal.la \ @ENABLE_MINIMAL_TRUE@ key/key_short/libkey_short-minimal.la \ @ENABLE_MINIMAL_TRUE@ key/key_large/libkey_large-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/body40/libbody40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/nodeptr40/libnodeptr40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/cde40/libcde40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/tail40/libtail40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/plain40/libplain40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/ctail40/libctail40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/extent40/libextent40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/stat40/libstat40-minimal.la \ @ENABLE_MINIMAL_TRUE@ item/bbox40/libbbox40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/obj40/libobj40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/dir40/libdir40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/reg40/libreg40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/sym40/libsym40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/spl40/libspl40-minimal.la \ @ENABLE_MINIMAL_TRUE@ object/ccreg40/libccreg40-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_unix/libsdext_unix-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_lw/libsdext_lw-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_lt/libsdext_lt-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_symlink/libsdext_symlink-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_plug/libsdext_plug-minimal.la \ @ENABLE_MINIMAL_TRUE@ sdext/sdext_flags/libsdext_flags-minimal.la \ @ENABLE_MINIMAL_TRUE@ policy/tails/libtails-minimal.la \ @ENABLE_MINIMAL_TRUE@ policy/extents/libextents-minimal.la \ @ENABLE_MINIMAL_TRUE@ policy/smart/libsmart-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/r5_hash/libr5_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/fnv1_hash/libfnv1_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/rupasov_hash/librupasov_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/tea_hash/libtea_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ hash/deg_hash/libdeg_hash-minimal.la \ @ENABLE_MINIMAL_TRUE@ fibre/lexic_fibre/liblexic_fibre-minimal.la \ @ENABLE_MINIMAL_TRUE@ fibre/dot_o_fibre/libdot_o_fibre-minimal.la \ @ENABLE_MINIMAL_TRUE@ fibre/ext_1_fibre/libext_1_fibre-minimal.la \ @ENABLE_MINIMAL_TRUE@ fibre/ext_3_fibre/libext_3_fibre-minimal.la \ @ENABLE_MINIMAL_TRUE@ compress/libcompress-minimal.la @ENABLE_MINIMAL_TRUE@libreiser4_plugin_minimal_la_SOURCES = libreiser4_plugin_la_SOURCES = all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libreiser4-plugin-minimal.la: $(libreiser4_plugin_minimal_la_OBJECTS) $(libreiser4_plugin_minimal_la_DEPENDENCIES) $(LINK) $(am_libreiser4_plugin_minimal_la_rpath) $(libreiser4_plugin_minimal_la_OBJECTS) $(libreiser4_plugin_minimal_la_LIBADD) $(LIBS) libreiser4-plugin.la: $(libreiser4_plugin_la_OBJECTS) $(libreiser4_plugin_la_DEPENDENCIES) $(LINK) $(libreiser4_plugin_la_OBJECTS) $(libreiser4_plugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/hash/0000777000175000017500000000000011134133445015152 5ustar fzfzreiser4progs-1.0.7.orig/plugin/hash/r5_hash/0000777000175000017500000000000011134133445016503 5ustar fzfzreiser4progs-1.0.7.orig/plugin/hash/r5_hash/Makefile.in0000644000175000017500000004147511134132273020555 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/hash/r5_hash DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libr5_hash_minimal_la_LIBADD = am__libr5_hash_minimal_la_SOURCES_DIST = r5_hash.c am__objects_1 = libr5_hash_minimal_la-r5_hash.lo @ENABLE_MINIMAL_TRUE@am_libr5_hash_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libr5_hash_minimal_la_OBJECTS = $(am_libr5_hash_minimal_la_OBJECTS) libr5_hash_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libr5_hash_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libr5_hash_minimal_la_rpath = libr5_hash_static_la_LIBADD = am__objects_2 = libr5_hash_static_la-r5_hash.lo am_libr5_hash_static_la_OBJECTS = $(am__objects_2) libr5_hash_static_la_OBJECTS = $(am_libr5_hash_static_la_OBJECTS) libr5_hash_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libr5_hash_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libr5_hash_minimal_la_SOURCES) \ $(libr5_hash_static_la_SOURCES) DIST_SOURCES = $(am__libr5_hash_minimal_la_SOURCES_DIST) \ $(libr5_hash_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ r5_hash_sources = r5_hash.c STATIC_LIBS = libr5_hash-static.la libr5_hash_static_la_SOURCES = $(r5_hash_sources) libr5_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libr5_hash-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libr5_hash_minimal_la_SOURCES = $(r5_hash_sources) @ENABLE_MINIMAL_TRUE@libr5_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/hash/r5_hash/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/hash/r5_hash/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libr5_hash-minimal.la: $(libr5_hash_minimal_la_OBJECTS) $(libr5_hash_minimal_la_DEPENDENCIES) $(libr5_hash_minimal_la_LINK) $(am_libr5_hash_minimal_la_rpath) $(libr5_hash_minimal_la_OBJECTS) $(libr5_hash_minimal_la_LIBADD) $(LIBS) libr5_hash-static.la: $(libr5_hash_static_la_OBJECTS) $(libr5_hash_static_la_DEPENDENCIES) $(libr5_hash_static_la_LINK) $(libr5_hash_static_la_OBJECTS) $(libr5_hash_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libr5_hash_minimal_la-r5_hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libr5_hash_static_la-r5_hash.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libr5_hash_minimal_la-r5_hash.lo: r5_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libr5_hash_minimal_la_CFLAGS) $(CFLAGS) -MT libr5_hash_minimal_la-r5_hash.lo -MD -MP -MF $(DEPDIR)/libr5_hash_minimal_la-r5_hash.Tpo -c -o libr5_hash_minimal_la-r5_hash.lo `test -f 'r5_hash.c' || echo '$(srcdir)/'`r5_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libr5_hash_minimal_la-r5_hash.Tpo $(DEPDIR)/libr5_hash_minimal_la-r5_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='r5_hash.c' object='libr5_hash_minimal_la-r5_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libr5_hash_minimal_la_CFLAGS) $(CFLAGS) -c -o libr5_hash_minimal_la-r5_hash.lo `test -f 'r5_hash.c' || echo '$(srcdir)/'`r5_hash.c libr5_hash_static_la-r5_hash.lo: r5_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libr5_hash_static_la_CFLAGS) $(CFLAGS) -MT libr5_hash_static_la-r5_hash.lo -MD -MP -MF $(DEPDIR)/libr5_hash_static_la-r5_hash.Tpo -c -o libr5_hash_static_la-r5_hash.lo `test -f 'r5_hash.c' || echo '$(srcdir)/'`r5_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libr5_hash_static_la-r5_hash.Tpo $(DEPDIR)/libr5_hash_static_la-r5_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='r5_hash.c' object='libr5_hash_static_la-r5_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libr5_hash_static_la_CFLAGS) $(CFLAGS) -c -o libr5_hash_static_la-r5_hash.lo `test -f 'r5_hash.c' || echo '$(srcdir)/'`r5_hash.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/hash/r5_hash/r5_hash.c0000644000175000017500000000112511131470543020173 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. r5_hash.c -- r5 hash implementation. */ #ifdef ENABLE_R5_HASH #include uint64_t r5_hash_build(unsigned char *name, uint32_t len) { uint32_t i; uint64_t a = 0; for (i = 0; i < len; i++) { a += name[i] << 4; a += name[i] >> 4; a *= 11; } return a; } reiser4_hash_plug_t r5_hash_plug = { .p = { .id = {HASH_R5_ID, 0, HASH_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "r5_hash", .desc = "R5 hash plugin.", #endif }, .build = r5_hash_build, }; #endif reiser4progs-1.0.7.orig/plugin/hash/r5_hash/Makefile.am0000644000175000017500000000105711131470543020536 0ustar fzfzincludedir = -I$(top_srcdir)/include r5_hash_sources = r5_hash.c STATIC_LIBS = libr5_hash-static.la libr5_hash_static_la_SOURCES = $(r5_hash_sources) libr5_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libr5_hash-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libr5_hash_minimal_la_SOURCES = $(r5_hash_sources) libr5_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/hash/Makefile.in0000644000175000017500000003440111134132273017213 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/hash DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = r5_hash fnv1_hash rupasov_hash tea_hash deg_hash all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/hash/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/hash/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/hash/deg_hash/0000777000175000017500000000000011134133445016714 5ustar fzfzreiser4progs-1.0.7.orig/plugin/hash/deg_hash/Makefile.in0000644000175000017500000004164211134132273020762 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/hash/deg_hash DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libdeg_hash_minimal_la_LIBADD = am__libdeg_hash_minimal_la_SOURCES_DIST = deg_hash.c am__objects_1 = libdeg_hash_minimal_la-deg_hash.lo @ENABLE_MINIMAL_TRUE@am_libdeg_hash_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libdeg_hash_minimal_la_OBJECTS = $(am_libdeg_hash_minimal_la_OBJECTS) libdeg_hash_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libdeg_hash_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libdeg_hash_minimal_la_rpath = libdeg_hash_static_la_LIBADD = am__objects_2 = libdeg_hash_static_la-deg_hash.lo am_libdeg_hash_static_la_OBJECTS = $(am__objects_2) libdeg_hash_static_la_OBJECTS = $(am_libdeg_hash_static_la_OBJECTS) libdeg_hash_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libdeg_hash_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libdeg_hash_minimal_la_SOURCES) \ $(libdeg_hash_static_la_SOURCES) DIST_SOURCES = $(am__libdeg_hash_minimal_la_SOURCES_DIST) \ $(libdeg_hash_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ deg_hash_sources = deg_hash.c STATIC_LIBS = libdeg_hash-static.la libdeg_hash_static_la_SOURCES = $(deg_hash_sources) libdeg_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libdeg_hash-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libdeg_hash_minimal_la_SOURCES = $(deg_hash_sources) @ENABLE_MINIMAL_TRUE@libdeg_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/hash/deg_hash/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/hash/deg_hash/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libdeg_hash-minimal.la: $(libdeg_hash_minimal_la_OBJECTS) $(libdeg_hash_minimal_la_DEPENDENCIES) $(libdeg_hash_minimal_la_LINK) $(am_libdeg_hash_minimal_la_rpath) $(libdeg_hash_minimal_la_OBJECTS) $(libdeg_hash_minimal_la_LIBADD) $(LIBS) libdeg_hash-static.la: $(libdeg_hash_static_la_OBJECTS) $(libdeg_hash_static_la_DEPENDENCIES) $(libdeg_hash_static_la_LINK) $(libdeg_hash_static_la_OBJECTS) $(libdeg_hash_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdeg_hash_minimal_la-deg_hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdeg_hash_static_la-deg_hash.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libdeg_hash_minimal_la-deg_hash.lo: deg_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdeg_hash_minimal_la_CFLAGS) $(CFLAGS) -MT libdeg_hash_minimal_la-deg_hash.lo -MD -MP -MF $(DEPDIR)/libdeg_hash_minimal_la-deg_hash.Tpo -c -o libdeg_hash_minimal_la-deg_hash.lo `test -f 'deg_hash.c' || echo '$(srcdir)/'`deg_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libdeg_hash_minimal_la-deg_hash.Tpo $(DEPDIR)/libdeg_hash_minimal_la-deg_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='deg_hash.c' object='libdeg_hash_minimal_la-deg_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdeg_hash_minimal_la_CFLAGS) $(CFLAGS) -c -o libdeg_hash_minimal_la-deg_hash.lo `test -f 'deg_hash.c' || echo '$(srcdir)/'`deg_hash.c libdeg_hash_static_la-deg_hash.lo: deg_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdeg_hash_static_la_CFLAGS) $(CFLAGS) -MT libdeg_hash_static_la-deg_hash.lo -MD -MP -MF $(DEPDIR)/libdeg_hash_static_la-deg_hash.Tpo -c -o libdeg_hash_static_la-deg_hash.lo `test -f 'deg_hash.c' || echo '$(srcdir)/'`deg_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libdeg_hash_static_la-deg_hash.Tpo $(DEPDIR)/libdeg_hash_static_la-deg_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='deg_hash.c' object='libdeg_hash_static_la-deg_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdeg_hash_static_la_CFLAGS) $(CFLAGS) -c -o libdeg_hash_static_la-deg_hash.lo `test -f 'deg_hash.c' || echo '$(srcdir)/'`deg_hash.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/hash/deg_hash/deg_hash.c0000644000175000017500000000110211131470543020610 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. deg_hash.c -- degenerate hash implementation. It is needed for testing reiser4progs with not unique keys. */ #ifdef ENABLE_DEG_HASH #include uint64_t deg_hash_build(unsigned char *name, uint32_t len) { return 0xc0c0c0c010101010ull; } reiser4_hash_plug_t deg_hash_plug = { .p = { .id = {HASH_DEG_ID, 0, HASH_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "deg_hash", .desc = "Degenerate hash plugin.", #endif }, .build = deg_hash_build, }; #endif reiser4progs-1.0.7.orig/plugin/hash/deg_hash/Makefile.am0000644000175000017500000000107211131470543020744 0ustar fzfzincludedir = -I$(top_srcdir)/include deg_hash_sources = deg_hash.c STATIC_LIBS = libdeg_hash-static.la libdeg_hash_static_la_SOURCES = $(deg_hash_sources) libdeg_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libdeg_hash-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libdeg_hash_minimal_la_SOURCES = $(deg_hash_sources) libdeg_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/hash/fnv1_hash/0000777000175000017500000000000011134133445017027 5ustar fzfzreiser4progs-1.0.7.orig/plugin/hash/fnv1_hash/fnv1_hash.c0000644000175000017500000000124611131470543021047 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. fnv1_hash.c -- fnv1 hash implementation. */ #ifdef ENABLE_FNV1_HASH #include static uint64_t fnv1_hash_build(unsigned char *name, uint32_t len) { uint32_t i; uint64_t a = 0xcbf29ce484222325ull; const uint64_t fnv_64_prime = 0x100000001b3ull; for(i = 0; i < len; i++) { a *= fnv_64_prime; a ^= (uint64_t)name[i]; } return a; } reiser4_hash_plug_t fnv1_hash_plug = { .p = { .id = {HASH_FNV1_ID, 0, HASH_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "fnv1_hash", .desc = "Fnv1 hash plugin.", #endif }, .build = fnv1_hash_build, }; #endif reiser4progs-1.0.7.orig/plugin/hash/fnv1_hash/Makefile.in0000644000175000017500000004201311134132273021066 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/hash/fnv1_hash DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libfnv1_hash_minimal_la_LIBADD = am__libfnv1_hash_minimal_la_SOURCES_DIST = fnv1_hash.c am__objects_1 = libfnv1_hash_minimal_la-fnv1_hash.lo @ENABLE_MINIMAL_TRUE@am_libfnv1_hash_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libfnv1_hash_minimal_la_OBJECTS = \ $(am_libfnv1_hash_minimal_la_OBJECTS) libfnv1_hash_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libfnv1_hash_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libfnv1_hash_minimal_la_rpath = libfnv1_hash_static_la_LIBADD = am__objects_2 = libfnv1_hash_static_la-fnv1_hash.lo am_libfnv1_hash_static_la_OBJECTS = $(am__objects_2) libfnv1_hash_static_la_OBJECTS = $(am_libfnv1_hash_static_la_OBJECTS) libfnv1_hash_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libfnv1_hash_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libfnv1_hash_minimal_la_SOURCES) \ $(libfnv1_hash_static_la_SOURCES) DIST_SOURCES = $(am__libfnv1_hash_minimal_la_SOURCES_DIST) \ $(libfnv1_hash_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fnv1_hash_sources = fnv1_hash.c STATIC_LIBS = libfnv1_hash-static.la libfnv1_hash_static_la_SOURCES = $(fnv1_hash_sources) libfnv1_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libfnv1_hash-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libfnv1_hash_minimal_la_SOURCES = $(fnv1_hash_sources) @ENABLE_MINIMAL_TRUE@libfnv1_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/hash/fnv1_hash/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/hash/fnv1_hash/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libfnv1_hash-minimal.la: $(libfnv1_hash_minimal_la_OBJECTS) $(libfnv1_hash_minimal_la_DEPENDENCIES) $(libfnv1_hash_minimal_la_LINK) $(am_libfnv1_hash_minimal_la_rpath) $(libfnv1_hash_minimal_la_OBJECTS) $(libfnv1_hash_minimal_la_LIBADD) $(LIBS) libfnv1_hash-static.la: $(libfnv1_hash_static_la_OBJECTS) $(libfnv1_hash_static_la_DEPENDENCIES) $(libfnv1_hash_static_la_LINK) $(libfnv1_hash_static_la_OBJECTS) $(libfnv1_hash_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfnv1_hash_minimal_la-fnv1_hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfnv1_hash_static_la-fnv1_hash.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libfnv1_hash_minimal_la-fnv1_hash.lo: fnv1_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfnv1_hash_minimal_la_CFLAGS) $(CFLAGS) -MT libfnv1_hash_minimal_la-fnv1_hash.lo -MD -MP -MF $(DEPDIR)/libfnv1_hash_minimal_la-fnv1_hash.Tpo -c -o libfnv1_hash_minimal_la-fnv1_hash.lo `test -f 'fnv1_hash.c' || echo '$(srcdir)/'`fnv1_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libfnv1_hash_minimal_la-fnv1_hash.Tpo $(DEPDIR)/libfnv1_hash_minimal_la-fnv1_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fnv1_hash.c' object='libfnv1_hash_minimal_la-fnv1_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfnv1_hash_minimal_la_CFLAGS) $(CFLAGS) -c -o libfnv1_hash_minimal_la-fnv1_hash.lo `test -f 'fnv1_hash.c' || echo '$(srcdir)/'`fnv1_hash.c libfnv1_hash_static_la-fnv1_hash.lo: fnv1_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfnv1_hash_static_la_CFLAGS) $(CFLAGS) -MT libfnv1_hash_static_la-fnv1_hash.lo -MD -MP -MF $(DEPDIR)/libfnv1_hash_static_la-fnv1_hash.Tpo -c -o libfnv1_hash_static_la-fnv1_hash.lo `test -f 'fnv1_hash.c' || echo '$(srcdir)/'`fnv1_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libfnv1_hash_static_la-fnv1_hash.Tpo $(DEPDIR)/libfnv1_hash_static_la-fnv1_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fnv1_hash.c' object='libfnv1_hash_static_la-fnv1_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfnv1_hash_static_la_CFLAGS) $(CFLAGS) -c -o libfnv1_hash_static_la-fnv1_hash.lo `test -f 'fnv1_hash.c' || echo '$(srcdir)/'`fnv1_hash.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/hash/fnv1_hash/Makefile.am0000644000175000017500000000107711131470543021064 0ustar fzfzincludedir = -I$(top_srcdir)/include fnv1_hash_sources = fnv1_hash.c STATIC_LIBS = libfnv1_hash-static.la libfnv1_hash_static_la_SOURCES = $(fnv1_hash_sources) libfnv1_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libfnv1_hash-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libfnv1_hash_minimal_la_SOURCES = $(fnv1_hash_sources) libfnv1_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/hash/rupasov_hash/0000777000175000017500000000000011134133445017654 5ustar fzfzreiser4progs-1.0.7.orig/plugin/hash/rupasov_hash/Makefile.in0000644000175000017500000004247611134132273021730 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/hash/rupasov_hash DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) librupasov_hash_minimal_la_LIBADD = am__librupasov_hash_minimal_la_SOURCES_DIST = rupasov_hash.c am__objects_1 = librupasov_hash_minimal_la-rupasov_hash.lo @ENABLE_MINIMAL_TRUE@am_librupasov_hash_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) librupasov_hash_minimal_la_OBJECTS = \ $(am_librupasov_hash_minimal_la_OBJECTS) librupasov_hash_minimal_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(librupasov_hash_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_librupasov_hash_minimal_la_rpath = librupasov_hash_static_la_LIBADD = am__objects_2 = librupasov_hash_static_la-rupasov_hash.lo am_librupasov_hash_static_la_OBJECTS = $(am__objects_2) librupasov_hash_static_la_OBJECTS = \ $(am_librupasov_hash_static_la_OBJECTS) librupasov_hash_static_la_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(librupasov_hash_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(librupasov_hash_minimal_la_SOURCES) \ $(librupasov_hash_static_la_SOURCES) DIST_SOURCES = $(am__librupasov_hash_minimal_la_SOURCES_DIST) \ $(librupasov_hash_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ rupasov_hash_sources = rupasov_hash.c STATIC_LIBS = librupasov_hash-static.la librupasov_hash_static_la_SOURCES = $(rupasov_hash_sources) librupasov_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = librupasov_hash-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@librupasov_hash_minimal_la_SOURCES = $(rupasov_hash_sources) @ENABLE_MINIMAL_TRUE@librupasov_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/hash/rupasov_hash/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/hash/rupasov_hash/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done librupasov_hash-minimal.la: $(librupasov_hash_minimal_la_OBJECTS) $(librupasov_hash_minimal_la_DEPENDENCIES) $(librupasov_hash_minimal_la_LINK) $(am_librupasov_hash_minimal_la_rpath) $(librupasov_hash_minimal_la_OBJECTS) $(librupasov_hash_minimal_la_LIBADD) $(LIBS) librupasov_hash-static.la: $(librupasov_hash_static_la_OBJECTS) $(librupasov_hash_static_la_DEPENDENCIES) $(librupasov_hash_static_la_LINK) $(librupasov_hash_static_la_OBJECTS) $(librupasov_hash_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librupasov_hash_minimal_la-rupasov_hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/librupasov_hash_static_la-rupasov_hash.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< librupasov_hash_minimal_la-rupasov_hash.lo: rupasov_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librupasov_hash_minimal_la_CFLAGS) $(CFLAGS) -MT librupasov_hash_minimal_la-rupasov_hash.lo -MD -MP -MF $(DEPDIR)/librupasov_hash_minimal_la-rupasov_hash.Tpo -c -o librupasov_hash_minimal_la-rupasov_hash.lo `test -f 'rupasov_hash.c' || echo '$(srcdir)/'`rupasov_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librupasov_hash_minimal_la-rupasov_hash.Tpo $(DEPDIR)/librupasov_hash_minimal_la-rupasov_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rupasov_hash.c' object='librupasov_hash_minimal_la-rupasov_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librupasov_hash_minimal_la_CFLAGS) $(CFLAGS) -c -o librupasov_hash_minimal_la-rupasov_hash.lo `test -f 'rupasov_hash.c' || echo '$(srcdir)/'`rupasov_hash.c librupasov_hash_static_la-rupasov_hash.lo: rupasov_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librupasov_hash_static_la_CFLAGS) $(CFLAGS) -MT librupasov_hash_static_la-rupasov_hash.lo -MD -MP -MF $(DEPDIR)/librupasov_hash_static_la-rupasov_hash.Tpo -c -o librupasov_hash_static_la-rupasov_hash.lo `test -f 'rupasov_hash.c' || echo '$(srcdir)/'`rupasov_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/librupasov_hash_static_la-rupasov_hash.Tpo $(DEPDIR)/librupasov_hash_static_la-rupasov_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rupasov_hash.c' object='librupasov_hash_static_la-rupasov_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librupasov_hash_static_la_CFLAGS) $(CFLAGS) -c -o librupasov_hash_static_la-rupasov_hash.lo `test -f 'rupasov_hash.c' || echo '$(srcdir)/'`rupasov_hash.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/hash/rupasov_hash/rupasov_hash.c0000644000175000017500000000207211131470543022517 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. rupasov_hash.c -- rupasov hash. */ #ifdef ENABLE_RUPASOV_HASH #include uint64_t rupasov_hash_build(unsigned char *name, uint32_t len) { uint32_t i; uint64_t a, c; uint32_t j, pow; for (pow = 1, i = 1; i < len; i++) pow = pow * 10; if (len == 1) a = name[0] - 48; else a = (name[0] - 48) * pow; for (i = 1; i < len; i++) { c = name[i] - 48; for (pow = 1, j = i; j < len - 1; j++) pow = pow * 10; a = a + c * pow; } for (; i < 40; i++) { c = '0' - 48; for (pow = 1,j = i; j < len - 1; j++) pow = pow * 10; a = a + c * pow; } for (; i < 256; i++) { c = i; for (pow = 1, j = i; j < len - 1; j++) pow = pow * 10; a = a + c * pow; } a = a << 7; return a; } reiser4_hash_plug_t rupasov_hash_plug = { .p = { .id = {HASH_RUPASOV_ID, 0, HASH_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "rupasov_hash", .desc = "Rupasov hash plugin.", #endif }, .build = rupasov_hash_build }; #endif reiser4progs-1.0.7.orig/plugin/hash/rupasov_hash/Makefile.am0000644000175000017500000000115611131470543021707 0ustar fzfzincludedir = -I$(top_srcdir)/include rupasov_hash_sources = rupasov_hash.c STATIC_LIBS = librupasov_hash-static.la librupasov_hash_static_la_SOURCES = $(rupasov_hash_sources) librupasov_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = librupasov_hash-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL librupasov_hash_minimal_la_SOURCES = $(rupasov_hash_sources) librupasov_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/hash/tea_hash/0000777000175000017500000000000011134133445016726 5ustar fzfzreiser4progs-1.0.7.orig/plugin/hash/tea_hash/Makefile.in0000644000175000017500000004164211134132273020774 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/hash/tea_hash DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libtea_hash_minimal_la_LIBADD = am__libtea_hash_minimal_la_SOURCES_DIST = tea_hash.c am__objects_1 = libtea_hash_minimal_la-tea_hash.lo @ENABLE_MINIMAL_TRUE@am_libtea_hash_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libtea_hash_minimal_la_OBJECTS = $(am_libtea_hash_minimal_la_OBJECTS) libtea_hash_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libtea_hash_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libtea_hash_minimal_la_rpath = libtea_hash_static_la_LIBADD = am__objects_2 = libtea_hash_static_la-tea_hash.lo am_libtea_hash_static_la_OBJECTS = $(am__objects_2) libtea_hash_static_la_OBJECTS = $(am_libtea_hash_static_la_OBJECTS) libtea_hash_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libtea_hash_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libtea_hash_minimal_la_SOURCES) \ $(libtea_hash_static_la_SOURCES) DIST_SOURCES = $(am__libtea_hash_minimal_la_SOURCES_DIST) \ $(libtea_hash_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ tea_hash_sources = tea_hash.c STATIC_LIBS = libtea_hash-static.la libtea_hash_static_la_SOURCES = $(tea_hash_sources) libtea_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libtea_hash-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libtea_hash_minimal_la_SOURCES = $(tea_hash_sources) @ENABLE_MINIMAL_TRUE@libtea_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/hash/tea_hash/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/hash/tea_hash/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libtea_hash-minimal.la: $(libtea_hash_minimal_la_OBJECTS) $(libtea_hash_minimal_la_DEPENDENCIES) $(libtea_hash_minimal_la_LINK) $(am_libtea_hash_minimal_la_rpath) $(libtea_hash_minimal_la_OBJECTS) $(libtea_hash_minimal_la_LIBADD) $(LIBS) libtea_hash-static.la: $(libtea_hash_static_la_OBJECTS) $(libtea_hash_static_la_DEPENDENCIES) $(libtea_hash_static_la_LINK) $(libtea_hash_static_la_OBJECTS) $(libtea_hash_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtea_hash_minimal_la-tea_hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtea_hash_static_la-tea_hash.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libtea_hash_minimal_la-tea_hash.lo: tea_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtea_hash_minimal_la_CFLAGS) $(CFLAGS) -MT libtea_hash_minimal_la-tea_hash.lo -MD -MP -MF $(DEPDIR)/libtea_hash_minimal_la-tea_hash.Tpo -c -o libtea_hash_minimal_la-tea_hash.lo `test -f 'tea_hash.c' || echo '$(srcdir)/'`tea_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libtea_hash_minimal_la-tea_hash.Tpo $(DEPDIR)/libtea_hash_minimal_la-tea_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tea_hash.c' object='libtea_hash_minimal_la-tea_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtea_hash_minimal_la_CFLAGS) $(CFLAGS) -c -o libtea_hash_minimal_la-tea_hash.lo `test -f 'tea_hash.c' || echo '$(srcdir)/'`tea_hash.c libtea_hash_static_la-tea_hash.lo: tea_hash.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtea_hash_static_la_CFLAGS) $(CFLAGS) -MT libtea_hash_static_la-tea_hash.lo -MD -MP -MF $(DEPDIR)/libtea_hash_static_la-tea_hash.Tpo -c -o libtea_hash_static_la-tea_hash.lo `test -f 'tea_hash.c' || echo '$(srcdir)/'`tea_hash.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libtea_hash_static_la-tea_hash.Tpo $(DEPDIR)/libtea_hash_static_la-tea_hash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tea_hash.c' object='libtea_hash_static_la-tea_hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtea_hash_static_la_CFLAGS) $(CFLAGS) -c -o libtea_hash_static_la-tea_hash.lo `test -f 'tea_hash.c' || echo '$(srcdir)/'`tea_hash.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/hash/tea_hash/tea_hash.c0000644000175000017500000000641411131470543020647 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tea_hash.c -- tea hash implementation. */ #ifdef ENABLE_TEA_HASH #include #define FULLROUNDS 10 #define PARTROUNDS 6 #define DELTA 0x9E3779B9 #define tea_hash_core(rounds) \ do { \ uint64_t sum = 0; \ int n = rounds; \ uint64_t b0, b1; \ \ b0 = h0; \ b1 = h1; \ \ do { \ sum += DELTA; \ b0 += ((b1 << 4) + a) ^ (b1 + sum) ^ ((b1 >> 5) + b); \ b1 += ((b0 << 4) + c) ^ (b0 + sum) ^ ((b0 >> 5) + d); \ } while (--n); \ \ h0 += b0; \ h1 += b1; \ } while(0) uint64_t tea_hash_build(unsigned char *name, uint32_t len) { uint64_t k[] = { 0x9464a485, 0x542e1a94, 0x3e846bff, 0xb75bcfc3}; uint64_t i; uint64_t pad; uint64_t a, b, c, d; uint64_t h0 = k[0], h1 = k[1]; pad = (uint64_t)len | ((uint64_t)len << 8); pad |= pad << 16; while(len >= 16) { a = (uint64_t)name[0] | (uint64_t)name[1] << 8 | (uint64_t)name[2] << 16| (uint64_t)name[3] << 24; b = (uint64_t)name[4] | (uint64_t)name[5] << 8 | (uint64_t)name[6] << 16| (uint64_t)name[7] << 24; c = (uint64_t)name[8] | (uint64_t)name[9] << 8 | (uint64_t)name[10] << 16| (uint64_t)name[11] << 24; d = (uint64_t)name[12] | (uint64_t)name[13] << 8 | (uint64_t)name[14] << 16| (uint64_t)name[15] << 24; tea_hash_core(PARTROUNDS); len -= 16; name += 16; } if (len >= 12) { if (len >= 16) *(int *)0 = 0; a = (uint64_t)name[ 0] | (uint64_t)name[ 1] << 8 | (uint64_t)name[ 2] << 16| (uint64_t)name[ 3] << 24; b = (uint64_t)name[ 4] | (uint64_t)name[ 5] << 8 | (uint64_t)name[ 6] << 16| (uint64_t)name[ 7] << 24; c = (uint64_t)name[ 8] | (uint64_t)name[ 9] << 8 | (uint64_t)name[10] << 16| (uint64_t)name[11] << 24; d = pad; for(i = 12; i < len; i++) { d <<= 8; d |= name[i]; } } else if (len >= 8) { if (len >= 12) *(int *)0 = 0; a = (uint64_t)name[ 0] | (uint64_t)name[ 1] << 8 | (uint64_t)name[ 2] << 16| (uint64_t)name[ 3] << 24; b = (uint64_t)name[ 4] | (uint64_t)name[ 5] << 8 | (uint64_t)name[ 6] << 16| (uint64_t)name[ 7] << 24; c = d = pad; for (i = 8; i < len; i++) { c <<= 8; c |= name[i]; } } else if (len >= 4) { if (len >= 8) *(int *)0 = 0; a = (uint64_t)name[ 0] | (uint64_t)name[ 1] << 8 | (uint64_t)name[ 2] << 16| (uint64_t)name[ 3] << 24; b = c = d = pad; for (i = 4; i < len; i++) { b <<= 8; b |= name[i]; } } else { if (len >= 4) *(int *)0 = 0; a = b = c = d = pad; for(i = 0; i < len; i++) { a <<= 8; a |= name[i]; } } tea_hash_core(FULLROUNDS); return h0 ^ h1; } reiser4_hash_plug_t tea_hash_plug = { .p = { .id = {HASH_TEA_ID, 0, HASH_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "tea_hash", .desc = "Tea hash plugin.", #endif }, .build = tea_hash_build }; #endif reiser4progs-1.0.7.orig/plugin/hash/tea_hash/Makefile.am0000644000175000017500000000107211131470543020756 0ustar fzfzincludedir = -I$(top_srcdir)/include tea_hash_sources = tea_hash.c STATIC_LIBS = libtea_hash-static.la libtea_hash_static_la_SOURCES = $(tea_hash_sources) libtea_hash_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libtea_hash-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libtea_hash_minimal_la_SOURCES = $(tea_hash_sources) libtea_hash_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/hash/Makefile.am0000644000175000017500000000007511131470543017204 0ustar fzfzSUBDIRS = r5_hash fnv1_hash rupasov_hash tea_hash deg_hash reiser4progs-1.0.7.orig/plugin/alloc/0000777000175000017500000000000011134133445015321 5ustar fzfzreiser4progs-1.0.7.orig/plugin/alloc/Makefile.in0000644000175000017500000003433311134132271017364 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/alloc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = alloc40 all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/alloc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/alloc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/alloc/alloc40/0000777000175000017500000000000011134133445016557 5ustar fzfzreiser4progs-1.0.7.orig/plugin/alloc/alloc40/alloc40_repair.h0000644000175000017500000000144711131470543021532 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. alloc40_repair.h -- reiser4 block allocator plugin repair functions. */ #ifndef ALLOC40_REPAIR_H #define ALLOC40_REPAIR_H #include #include extern errno_t alloc40_pack(reiser4_alloc_ent_t *entity, aal_stream_t *stream); extern reiser4_alloc_ent_t *alloc40_unpack(aal_device_t *device, uint32_t blksize, aal_stream_t *stream); extern errno_t alloc40_check_struct(reiser4_alloc_ent_t *entity, uint8_t mode); extern errno_t alloc40_layout_bad(reiser4_alloc_ent_t *entity, region_func_t region_func, void *data); extern void alloc40_print(reiser4_alloc_ent_t *entity, aal_stream_t *stream, uint16_t options); #endif reiser4progs-1.0.7.orig/plugin/alloc/alloc40/Makefile.in0000644000175000017500000004670311134132271020626 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/alloc/alloc40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) liballoc40_minimal_la_LIBADD = am__liballoc40_minimal_la_SOURCES_DIST = alloc40.c alloc40_repair.c \ alloc40.h alloc40_repair.h am__objects_1 = liballoc40_minimal_la-alloc40.lo \ liballoc40_minimal_la-alloc40_repair.lo @ENABLE_MINIMAL_TRUE@am_liballoc40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) liballoc40_minimal_la_OBJECTS = $(am_liballoc40_minimal_la_OBJECTS) liballoc40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(liballoc40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_liballoc40_minimal_la_rpath = liballoc40_static_la_LIBADD = am__objects_2 = liballoc40_static_la-alloc40.lo \ liballoc40_static_la-alloc40_repair.lo am_liballoc40_static_la_OBJECTS = $(am__objects_2) liballoc40_static_la_OBJECTS = $(am_liballoc40_static_la_OBJECTS) liballoc40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(liballoc40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(liballoc40_minimal_la_SOURCES) \ $(liballoc40_static_la_SOURCES) DIST_SOURCES = $(am__liballoc40_minimal_la_SOURCES_DIST) \ $(liballoc40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ alloc40_sources = alloc40.c alloc40_repair.c alloc40.h alloc40_repair.h STATIC_LIBS = liballoc40-static.la liballoc40_static_la_SOURCES = $(alloc40_sources) liballoc40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = liballoc40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@liballoc40_minimal_la_SOURCES = $(alloc40_sources) @ENABLE_MINIMAL_TRUE@liballoc40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/alloc/alloc40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/alloc/alloc40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done liballoc40-minimal.la: $(liballoc40_minimal_la_OBJECTS) $(liballoc40_minimal_la_DEPENDENCIES) $(liballoc40_minimal_la_LINK) $(am_liballoc40_minimal_la_rpath) $(liballoc40_minimal_la_OBJECTS) $(liballoc40_minimal_la_LIBADD) $(LIBS) liballoc40-static.la: $(liballoc40_static_la_OBJECTS) $(liballoc40_static_la_DEPENDENCIES) $(liballoc40_static_la_LINK) $(liballoc40_static_la_OBJECTS) $(liballoc40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liballoc40_minimal_la-alloc40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liballoc40_minimal_la-alloc40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liballoc40_static_la-alloc40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liballoc40_static_la-alloc40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< liballoc40_minimal_la-alloc40.lo: alloc40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liballoc40_minimal_la_CFLAGS) $(CFLAGS) -MT liballoc40_minimal_la-alloc40.lo -MD -MP -MF $(DEPDIR)/liballoc40_minimal_la-alloc40.Tpo -c -o liballoc40_minimal_la-alloc40.lo `test -f 'alloc40.c' || echo '$(srcdir)/'`alloc40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liballoc40_minimal_la-alloc40.Tpo $(DEPDIR)/liballoc40_minimal_la-alloc40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc40.c' object='liballoc40_minimal_la-alloc40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liballoc40_minimal_la_CFLAGS) $(CFLAGS) -c -o liballoc40_minimal_la-alloc40.lo `test -f 'alloc40.c' || echo '$(srcdir)/'`alloc40.c liballoc40_minimal_la-alloc40_repair.lo: alloc40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liballoc40_minimal_la_CFLAGS) $(CFLAGS) -MT liballoc40_minimal_la-alloc40_repair.lo -MD -MP -MF $(DEPDIR)/liballoc40_minimal_la-alloc40_repair.Tpo -c -o liballoc40_minimal_la-alloc40_repair.lo `test -f 'alloc40_repair.c' || echo '$(srcdir)/'`alloc40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liballoc40_minimal_la-alloc40_repair.Tpo $(DEPDIR)/liballoc40_minimal_la-alloc40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc40_repair.c' object='liballoc40_minimal_la-alloc40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liballoc40_minimal_la_CFLAGS) $(CFLAGS) -c -o liballoc40_minimal_la-alloc40_repair.lo `test -f 'alloc40_repair.c' || echo '$(srcdir)/'`alloc40_repair.c liballoc40_static_la-alloc40.lo: alloc40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liballoc40_static_la_CFLAGS) $(CFLAGS) -MT liballoc40_static_la-alloc40.lo -MD -MP -MF $(DEPDIR)/liballoc40_static_la-alloc40.Tpo -c -o liballoc40_static_la-alloc40.lo `test -f 'alloc40.c' || echo '$(srcdir)/'`alloc40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liballoc40_static_la-alloc40.Tpo $(DEPDIR)/liballoc40_static_la-alloc40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc40.c' object='liballoc40_static_la-alloc40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liballoc40_static_la_CFLAGS) $(CFLAGS) -c -o liballoc40_static_la-alloc40.lo `test -f 'alloc40.c' || echo '$(srcdir)/'`alloc40.c liballoc40_static_la-alloc40_repair.lo: alloc40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liballoc40_static_la_CFLAGS) $(CFLAGS) -MT liballoc40_static_la-alloc40_repair.lo -MD -MP -MF $(DEPDIR)/liballoc40_static_la-alloc40_repair.Tpo -c -o liballoc40_static_la-alloc40_repair.lo `test -f 'alloc40_repair.c' || echo '$(srcdir)/'`alloc40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liballoc40_static_la-alloc40_repair.Tpo $(DEPDIR)/liballoc40_static_la-alloc40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc40_repair.c' object='liballoc40_static_la-alloc40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liballoc40_static_la_CFLAGS) $(CFLAGS) -c -o liballoc40_static_la-alloc40_repair.lo `test -f 'alloc40_repair.c' || echo '$(srcdir)/'`alloc40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/alloc/alloc40/alloc40.c0000644000175000017500000004102211131470543020154 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. alloc40.c -- default block allocator plugin for reiser4. It is bitmap based, and it deals with bitmap blocks. For the all bitmap-related actions, we use reiser4_bitmap from the libaux. */ #ifndef ENABLE_MINIMAL #include #include "alloc40.h" #include "alloc40_repair.h" #define ALLOC40_BLOCKNR(blksize) \ (REISER4_MASTER_BLOCKNR(blksize) + 2) static uint32_t alloc40_get_state(reiser4_alloc_ent_t *entity) { aal_assert("umka-2084", entity != NULL); return PLUG_ENT(entity)->state; } static void alloc40_set_state(reiser4_alloc_ent_t *entity, uint32_t state) { aal_assert("umka-2085", entity != NULL); PLUG_ENT(entity)->state = state; } /* Calls func for each block allocator block. This function is used in all block block allocator operations like load, save, etc. */ errno_t alloc40_layout(reiser4_alloc_ent_t *entity, region_func_t region_func, void *data) { count_t bpb; errno_t res = 0; blk_t blk, start; aal_assert("umka-347", entity != NULL); aal_assert("umka-348", region_func != NULL); /* Calculating block-per-bitmap value. I mean the number of blocks one bitmap block describes. It is calulating such maner because we should count also four bytes for checksum at the beginning of each bitmap block. */ bpb = (PLUG_ENT(entity)->blksize - CRC_SIZE) * 8; start = ALLOC40_BLOCKNR(PLUG_ENT(entity)->blksize); /* Loop though the all bitmap blocks. */ for (blk = start; blk < start + PLUG_ENT(entity)->bitmap->total; blk = ((blk / bpb) + 1) * bpb) { res |= region_func(blk, 1, data); if (res && res != -ESTRUCT) return res; } return res; } /* Fetches one bitmap block. Extracts its checksum from teh first 4 bytes and saves it in allocator checksums area. Actually this function is callback one which is called by alloc40_layout function in order to load all bitmap map from the device. See alloc40_open for details. */ static errno_t cb_fetch_bitmap(blk_t start, count_t width, void *data) { errno_t res; uint64_t offset; alloc40_t *alloc; aal_block_t block; char *current, *map; uint32_t size, chunk, free; alloc = (alloc40_t *)data; if ((res = aal_block_init(&block, alloc->device, alloc->blksize, start))) { return res; } if ((res = aal_block_read(&block))) { aal_error("Can't read bitmap block %llu. %s.", start, alloc->device->error); goto error_free_block; } size = alloc->blksize - CRC_SIZE; map = alloc->bitmap->map; offset = start / size / 8; current = map + (size * offset); /* Calculating where and how many bytes will be copied */ free = (map + alloc->bitmap->size) - current; chunk = free > size ? size : free; /* Copying bitmap data and crc data into corresponding memory areas in block allocator instance. */ aal_memcpy(current, block.data + CRC_SIZE, chunk); *((uint32_t *)(alloc->crc + (offset * CRC_SIZE))) = LE32_TO_CPU(*(uint32_t *)block.data); error_free_block: aal_block_fini(&block); return res; } /* Initializing block allocator instance and loads bitmap into it from the passed @device. This functions is implementation of alloc_ops.open() plugin method. */ static reiser4_alloc_ent_t *alloc40_open(aal_device_t *device, uint32_t blksize, uint64_t blocks) { alloc40_t *alloc; uint32_t crcsize; uint32_t mapsize; aal_assert("umka-1682", blocks > 0); aal_assert("umka-364", device != NULL); if (!(alloc = aal_calloc(sizeof(*alloc), 0))) return NULL; /* Creating bitmap with passed @len. Value @len is the number of blocks filesystem lies in. In other words it is the filesystem size. This value is the same as partition size sometimes. */ mapsize = blksize - CRC_SIZE; if (!(alloc->bitmap = reiser4_bitmap_create(blocks))) goto error_free_alloc; /* Initializing alloc instance. */ alloc->state = 0; alloc->plug = &alloc40_plug; alloc->device = device; alloc->blksize = blksize; /* Calulating crc array size */ crcsize = ((alloc->bitmap->size + mapsize - 1) / mapsize) * CRC_SIZE; /* Allocating crc array */ if (!(alloc->crc = aal_calloc(crcsize, 0))) goto error_free_bitmap; /* Calling alloc40_layout() method with fetch_bitmap() callback to load all bitmap blocks. */ if (alloc40_layout((reiser4_alloc_ent_t *)alloc, cb_fetch_bitmap, alloc)) { aal_error("Can't load ondisk bitmap."); goto error_free_bitmap; } /* Updating bitmap counters (free blocks, etc) */ reiser4_bitmap_calc_marked(alloc->bitmap); return (reiser4_alloc_ent_t *)alloc; error_free_bitmap: reiser4_bitmap_close(alloc->bitmap); error_free_alloc: aal_free(alloc); return NULL; } /* Initializes new alloc40 instance, creates bitmap and return new instance to caller (block allocator in libreiser4). This function does almost the same as alloc40_open(). The difference is that it does not load bitmap from the passed device. */ static reiser4_alloc_ent_t *alloc40_create(aal_device_t *device, uint32_t blksize, uint64_t blocks) { alloc40_t *alloc; uint32_t mapsize; uint32_t crcsize; aal_assert("umka-365", device != NULL); aal_assert("umka-1683", blocks > 0); if (!(alloc = aal_calloc(sizeof(*alloc), 0))) return NULL; mapsize = blksize - CRC_SIZE; if (!(alloc->bitmap = reiser4_bitmap_create(blocks))) goto error_free_alloc; crcsize = (alloc->bitmap->size / mapsize) * CRC_SIZE; if (!(alloc->crc = aal_calloc(crcsize, 0))) goto error_free_bitmap; /* Initializing alloc instance. */ alloc->plug = &alloc40_plug; alloc->device = device; alloc->blksize = blksize; alloc->state = (1 << ENTITY_DIRTY); return (reiser4_alloc_ent_t *)alloc; error_free_bitmap: reiser4_bitmap_close(alloc->bitmap); error_free_alloc: aal_free(alloc); return NULL; } /* Assignes passed bitmap pointed by @data to block allocator bitmap */ static errno_t alloc40_assign(reiser4_alloc_ent_t *entity, void *data) { alloc40_t *alloc = (alloc40_t *)entity; reiser4_bitmap_t *bitmap = (reiser4_bitmap_t *)data; aal_assert("vpf-580", alloc != NULL); aal_assert("vpf-579", bitmap != NULL); aal_assert("vpf-581", alloc->bitmap->total == bitmap->total); aal_assert("umka-2087", alloc->bitmap->size == bitmap->size); aal_memcpy(alloc->bitmap->map, bitmap->map, bitmap->size); alloc->bitmap->marked = bitmap->marked; alloc->state |= (1 << ENTITY_DIRTY); return 0; } static errno_t alloc40_extract(reiser4_alloc_ent_t *entity, void *data) { alloc40_t *alloc = (alloc40_t *)entity; reiser4_bitmap_t *bitmap = (reiser4_bitmap_t *)data; aal_assert("umka-2156", alloc != NULL); aal_assert("umka-2157", bitmap != NULL); aal_assert("umka-2158", alloc->bitmap->total == bitmap->total); aal_assert("umka-2159", alloc->bitmap->size == bitmap->size); aal_memcpy(bitmap->map, alloc->bitmap->map, bitmap->size); bitmap->marked = alloc->bitmap->marked; return 0; } /* Callback for saving one bitmap block onto device */ static errno_t cb_sync_bitmap(blk_t start, count_t width, void *data) { errno_t res; alloc40_t *alloc; aal_block_t block; char *current, *map; uint32_t size, adler, chunk; alloc = (alloc40_t *)data; /* Allocating new block and filling it by 0xff bytes (all bits are turned on). This is needed in order to make the rest of last block filled by 0xff istead of 0x00 as it might be by default. */ if ((res = aal_block_init(&block, alloc->device, alloc->blksize, start))) { return res; } aal_block_fill(&block, 0xff); size = block.size - CRC_SIZE; map = alloc->bitmap->map; current = map + (size * (start / size / 8)); /* Copying the piece of bitmap map into allocated block to be saved */ chunk = (map + alloc->bitmap->size) - current > (int)size ? (int)size : (int)((map + alloc->bitmap->size) - current); aal_memcpy(block.data + CRC_SIZE, current, chunk); /* Calculating adler crc checksum and updating it in the block to be saved. For the last block we are calculating it only for significant patr of bitmap. */ if (chunk < size) { void *fake; if (!(fake = aal_calloc(size, 0xff))) { res = -ENOMEM; goto error_free_block; } aal_memcpy(fake, current, chunk); adler = aux_adler32(0, fake, size); aal_free(fake); } else { adler = aux_adler32(0, current, chunk); } *((uint32_t *)block.data) = CPU_TO_LE32(adler); /* Saving block onto device it was allocated on */ if ((res = aal_block_write(&block))) { aal_error("Can't write bitmap block %llu. " "%s.", start, alloc->device->error); } error_free_block: aal_block_fini(&block); return res; } /* Saves alloc40 data (bitmap in fact) to device */ static errno_t alloc40_sync(reiser4_alloc_ent_t *entity) { errno_t res = 0; aal_assert("umka-366", entity != NULL); aal_assert("umka-367", PLUG_ENT(entity)->bitmap != NULL); /* Calling layout() function for saving all bitmap blocks to device block allocator lies on. */ if ((res = alloc40_layout(entity, cb_sync_bitmap, entity))) { aal_error("Can't save bitmap to device."); return res; } PLUG_ENT(entity)->state &= ~(1 << ENTITY_DIRTY); return res; } /* Frees alloc40 instance and all helper structures like bitmap, crcmap, etc */ static void alloc40_close(reiser4_alloc_ent_t *entity) { alloc40_t *alloc = (alloc40_t *)entity; aal_assert("umka-368", alloc != NULL); aal_assert("umka-369", alloc->bitmap != NULL); reiser4_bitmap_close(alloc->bitmap); aal_free(alloc->crc); aal_free(alloc); } /* Marks specified region as used in block allocator */ static errno_t alloc40_occupy(reiser4_alloc_ent_t *entity, uint64_t start, uint64_t count) { alloc40_t *alloc = (alloc40_t *)entity; aal_assert("umka-370", alloc != NULL); aal_assert("umka-371", alloc->bitmap != NULL); reiser4_bitmap_mark_region(alloc->bitmap, start, count); alloc->state |= (1 << ENTITY_DIRTY); return 0; } /* Marks specified region as free in blockallocator bitmap */ static errno_t alloc40_release(reiser4_alloc_ent_t *entity, uint64_t start, uint64_t count) { alloc40_t *alloc = (alloc40_t *)entity; aal_assert("umka-372", alloc != NULL); aal_assert("umka-373", alloc->bitmap != NULL); reiser4_bitmap_clear_region(alloc->bitmap, start, count); alloc->state |= (1 << ENTITY_DIRTY); return 0; } /* Tries to find specified @count of free blocks in block allocator. The first block of the found free area is stored in @start. Actual found number of blocks is retured to caller. This function is mostly needed for handling extent allocation. */ static uint64_t alloc40_allocate(reiser4_alloc_ent_t *entity, uint64_t *start, uint64_t count) { uint64_t found; alloc40_t *alloc; alloc = (alloc40_t *)entity; aal_assert("umka-374", alloc != NULL); aal_assert("umka-1771", start != NULL); aal_assert("umka-375", alloc->bitmap != NULL); /* Calling bitmap for gettign free area from it */ found = reiser4_bitmap_find_region(alloc->bitmap, start, count, 0); /* Marking found region as occupied if its length more then zero. Probably we should implement more flexible behavior here. And probably we should do not mark found blocks as used in hope the caller will decide, that found area is not enough convenient for him. If so, he will call marking found area as occupied by hands. */ if (found > 0) { reiser4_bitmap_mark_region(alloc->bitmap, *start, found); alloc->state |= (1 << ENTITY_DIRTY); } return found; } /* Returns free blocks count */ static uint64_t alloc40_free(reiser4_alloc_ent_t *entity) { alloc40_t *alloc = (alloc40_t *)entity; aal_assert("umka-376", alloc != NULL); aal_assert("umka-377", alloc->bitmap != NULL); return reiser4_bitmap_cleared(alloc->bitmap); } /* Returns used blocks count */ static uint64_t alloc40_used(reiser4_alloc_ent_t *entity) { alloc40_t *alloc = (alloc40_t *)entity; aal_assert("umka-378", alloc != NULL); aal_assert("umka-379", alloc->bitmap != NULL); return reiser4_bitmap_marked(alloc->bitmap); } /* Checks whether specified blocks are used */ int alloc40_occupied(reiser4_alloc_ent_t *entity, uint64_t start, uint64_t count) { alloc40_t *alloc = (alloc40_t *)entity; aal_assert("umka-663", alloc != NULL); aal_assert("umka-664", alloc->bitmap != NULL); return reiser4_bitmap_test_region(alloc->bitmap, start, count, 1); } /* Checks whether specified blocks are unused */ static int alloc40_available(reiser4_alloc_ent_t *entity, uint64_t start, uint64_t count) { alloc40_t *alloc = (alloc40_t *)entity; aal_assert("vpf-700", alloc != NULL); aal_assert("vpf-701", alloc->bitmap != NULL); return reiser4_bitmap_test_region(alloc->bitmap, start, count, 0); } static void cb_inval_warn(blk_t start, uint32_t ladler, uint32_t cadler) { aal_error("Checksum mismatch in bitmap block %llu. Checksum " "is 0x%x, should be 0x%x.", start, ladler, cadler); } typedef void (*inval_func_t) (blk_t, uint32_t, uint32_t); /* Callback function for checking one bitmap block on validness. Here we just calculate actual checksum and compare it with loaded one. */ errno_t cb_valid_block(blk_t start, count_t width, void *data) { inval_func_t inval_func; alloc40_t *alloc; errno_t res; uint64_t offset; uint32_t ladler; uint32_t cadler; uint32_t chunk; uint32_t size; uint32_t free; char *current; char *map; alloc = (alloc40_t *)data; inval_func = (inval_func_t)alloc->data; size = alloc->blksize - CRC_SIZE; map = alloc->bitmap->map; /* Getting pointer to next bitmap portion */ offset = start / size / 8; current = map + (offset * size); /* Getting the checksum from loaded crc map */ ladler = *((uint32_t *)(alloc->crc + (offset * CRC_SIZE))); free = (map + alloc->bitmap->size) - current; /* Calculating adler checksumm for piece of bitmap */ chunk = free > size ? size : free; if (chunk < size) { void *fake; if (!(fake = aal_calloc(size, 0xff))) return -ENOMEM; aal_memcpy(fake, current, chunk); cadler = aux_adler32(0, fake, size); aal_free(fake); } else cadler = aux_adler32(0, current, chunk); /* If loaded checksum and calculated one are not equal, we have corrupted bitmap. */ res = (ladler != cadler) ? -ESTRUCT : 0; if (res && inval_func) inval_func(start, ladler, cadler); return res; } /* Checks allocator on validness */ errno_t alloc40_valid(reiser4_alloc_ent_t *entity) { alloc40_t *alloc = (alloc40_t *)entity; aal_assert("umka-963", alloc != NULL); aal_assert("umka-964", alloc->bitmap != NULL); /* Calling layout function for traversing all the bitmap blocks with checking callback function. */ alloc->data = cb_inval_warn; return alloc40_layout(entity, cb_valid_block, alloc); } /* Call @func for all blocks which belong to the same bitmap block as passed @blk. It is needed for fsck. In the case it detremined that a block is not corresponds to its value in block allocator, it should check all the related (neighbour) blocks which are described by one bitmap block (4096 - CRC_SIZE).*/ errno_t alloc40_region(reiser4_alloc_ent_t *entity, blk_t blk, region_func_t region_func, void *data) { alloc40_t *alloc; uint64_t start, size; aal_assert("vpf-554", entity != NULL); aal_assert("umka-1746", region_func != NULL); alloc = (alloc40_t *)entity; aal_assert("vpf-710", alloc->bitmap != NULL); size = (alloc->blksize - CRC_SIZE) * 8; start = (blk / size) * size; /* The last region is of a smaller size. */ if (start + size > alloc->bitmap->total) { size = alloc->bitmap->total - start; } /* Loop though the all blocks one bitmap block describes and calling passed @region_func for each of them. */ return region_func(start, size, data); } reiser4_alloc_plug_t alloc40_plug = { .p = { .id = {ALLOC_REISER40_ID, 0, ALLOC_PLUG_TYPE}, .label = "alloc40", .desc = "Space allocator plugin.", }, .open = alloc40_open, .close = alloc40_close, .create = alloc40_create, .assign = alloc40_assign, .extract = alloc40_extract, .sync = alloc40_sync, .pack = alloc40_pack, .unpack = alloc40_unpack, .print = alloc40_print, .used = alloc40_used, .free = alloc40_free, .valid = alloc40_valid, .layout = alloc40_layout, .occupied = alloc40_occupied, .available = alloc40_available, .set_state = alloc40_set_state, .get_state = alloc40_get_state, .layout_bad = alloc40_layout_bad, .region = alloc40_region, .occupy = alloc40_occupy, .allocate = alloc40_allocate, .release = alloc40_release, .check_struct = alloc40_check_struct }; #endif reiser4progs-1.0.7.orig/plugin/alloc/alloc40/alloc40.h0000644000175000017500000000146211131470543020165 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. alloc40.h -- default block allocator plugin for reiser4. */ #ifndef ALLOC40_H #define ALLOC40_H #ifndef ENABLE_MINIMAL #include #include #include #define CRC_SIZE (4) typedef struct alloc40 { reiser4_alloc_plug_t *plug; uint32_t state; uint32_t blksize; aal_device_t *device; reiser4_bitmap_t *bitmap; char *crc; void *data; } alloc40_t; #define PLUG_ENT(p) ((alloc40_t *)p) extern reiser4_alloc_plug_t alloc40_plug; extern int alloc40_occupied(reiser4_alloc_ent_t *entity, uint64_t start, uint64_t count); extern errno_t alloc40_layout(reiser4_alloc_ent_t *entity, region_func_t region_func, void *data); #endif #endif reiser4progs-1.0.7.orig/plugin/alloc/alloc40/Makefile.am0000644000175000017500000000113211131470543020604 0ustar fzfzincludedir = -I$(top_srcdir)/include alloc40_sources = alloc40.c alloc40_repair.c alloc40.h alloc40_repair.h STATIC_LIBS = liballoc40-static.la liballoc40_static_la_SOURCES = $(alloc40_sources) liballoc40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = liballoc40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL liballoc40_minimal_la_SOURCES = $(alloc40_sources) liballoc40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/alloc/alloc40/alloc40_repair.c0000644000175000017500000001762011131470543021525 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. alloc40_repair.c -- repair default block allocator plugin methods. */ #ifndef ENABLE_MINIMAL #include "alloc40.h" #include typedef struct alloc40_hint { reiser4_alloc_ent_t *alloc; region_func_t func; void *data; } alloc40_hint_t; extern errno_t cb_valid_block(blk_t start, count_t width, void *data); static errno_t cb_check_layout(blk_t start, count_t width, void *data) { alloc40_hint_t *hint = (alloc40_hint_t *)data; errno_t res; res = cb_valid_block(start, width, hint->alloc); if (res && res != -ESTRUCT) return res; /* If bitmap block looks corrupted or the very first bit is not set, call func for the region. */ if (res || !alloc40_occupied(hint->alloc, start, 1)) { if ((res = hint->func(start, width, hint->data))) return res; } return 0; } errno_t alloc40_layout_bad(reiser4_alloc_ent_t *entity, region_func_t func, void *data) { alloc40_hint_t hint; aal_assert("umka-2646", entity != NULL); aal_assert("vpf-1323", func != NULL); hint.alloc = entity; PLUG_ENT(hint.alloc)->data = NULL; hint.func = func; hint.data = data; return alloc40_layout(entity, cb_check_layout, &hint); } /* Callback for packing one bitmap block. */ static errno_t cb_pack_bitmap(blk_t start, count_t width, void *data) { uint32_t size; uint32_t chunk; uint32_t offset; alloc40_t *alloc; char *map, *current; aal_stream_t *stream; alloc = (alloc40_t *)data; stream = (aal_stream_t *)alloc->data; size = alloc->blksize - CRC_SIZE; offset = start / size / 8; map = alloc->bitmap->map; current = map + (size * (start / size / 8)); if ((chunk = (map + alloc->bitmap->size) - current) > size) chunk = size; aal_stream_write(stream, alloc->crc + (offset * CRC_SIZE), CRC_SIZE); aal_stream_write(stream, current, chunk); return 0; } /* Callback for unpacking one bitmap block. */ static errno_t cb_unpack_bitmap(blk_t start, count_t width, void *data) { uint32_t size; uint32_t chunk; uint32_t offset; alloc40_t *alloc; char *map, *current; aal_stream_t *stream; alloc = (alloc40_t *)data; stream = (aal_stream_t *)alloc->data; size = alloc->blksize - CRC_SIZE; offset = start / size / 8; map = alloc->bitmap->map; current = map + (size * (start / size / 8)); if ((chunk = (map + alloc->bitmap->size) - current) > size) chunk = size; if (aal_stream_read(stream, alloc->crc + (offset * CRC_SIZE), CRC_SIZE) != CRC_SIZE) { aal_error("Can't unpack the bitmap block (%llu)." "Steam is over?", start); return -EIO; } if (aal_stream_read(stream, current, chunk) != (int32_t)chunk) { aal_error("Can't unpack the bitmap block (%llu)." "Steam is over?", start); return -EIO; } return 0; } /* Pack block allocator data to passed @stream. */ errno_t alloc40_pack(reiser4_alloc_ent_t *entity, aal_stream_t *stream) { errno_t res; uint64_t len; alloc40_t *alloc; aal_assert("umka-2618", entity != NULL); aal_assert("umka-2619", stream != NULL); alloc = (alloc40_t *)entity; len = alloc->bitmap->total; aal_stream_write(stream, &len, sizeof(len)); /* Calling layout() function for packing all bitmap blocks. */ alloc->data = stream; if ((res = alloc40_layout(entity, cb_pack_bitmap, alloc))) { aal_error("Can't pack bitmap."); return res; } return 0; } /* Create block allocator from passed @stream. */ reiser4_alloc_ent_t *alloc40_unpack(aal_device_t *device, uint32_t blksize, aal_stream_t *stream) { uint64_t blocks; uint32_t crcsize; uint32_t mapsize; alloc40_t *alloc; aal_assert("umka-2620", device != NULL); aal_assert("umka-2621", stream != NULL); /* Allocating block allocator instance and initializing it by passed @desc and data from the @stream. */ if (!(alloc = aal_calloc(sizeof(*alloc), 0))) return NULL; alloc->plug = &alloc40_plug; alloc->device = device; alloc->blksize = blksize; /* Read number of bits in bitmap. */ if (aal_stream_read(stream, &blocks, sizeof(blocks)) != sizeof(blocks)) { aal_error("Can't unpack the bitmap. Steam is over?"); goto error_free_alloc; } if (!(alloc->bitmap = reiser4_bitmap_create(blocks))) goto error_free_alloc; /* Initializing adler checksums. */ mapsize = alloc->blksize - CRC_SIZE; crcsize = ((alloc->bitmap->size + mapsize - 1) / mapsize) * CRC_SIZE; if (!(alloc->crc = aal_calloc(crcsize, 0))) goto error_free_bitmap; /* Calling layout() function for reading all bitmap blocks to @alloc->bitmap. */ alloc->data = stream; if (alloc40_layout((reiser4_alloc_ent_t *)alloc, cb_unpack_bitmap, alloc)) { aal_error("Can't unpack bitmap."); goto error_free_crc; } alloc->state = (1 << ENTITY_DIRTY); reiser4_bitmap_calc_marked(alloc->bitmap); return (reiser4_alloc_ent_t *)alloc; error_free_crc: aal_free(alloc->crc); error_free_bitmap: reiser4_bitmap_close(alloc->bitmap); error_free_alloc: aal_free(alloc); return NULL; } static errno_t cb_print_bitmap(blk_t start, count_t width, void *data) { uint64_t offset, end; uint64_t i, count; uint32_t size; alloc40_t *alloc; aal_stream_t *stream; alloc = (alloc40_t *)data; stream = (aal_stream_t *)alloc->data; size = (alloc->blksize - CRC_SIZE) * 8; offset = start / size; end = (offset + 1) * size; end = end <= alloc->bitmap->total ? end : alloc->bitmap->total; count = 0; for (i = offset * size; i < end; i++) count += (aal_test_bit(alloc->bitmap->map, i) ? 1 : 0); aal_stream_format(stream, "%*llu [ 0x%lx ] %llu\n", 10, start, *((uint32_t *)(alloc->crc + offset * CRC_SIZE)), count); return 0; } /* Handler for "print" method. */ void alloc40_print(reiser4_alloc_ent_t *entity, aal_stream_t *stream, uint16_t options) { uint64_t start; uint64_t total; uint64_t blocks; alloc40_t *alloc; aal_assert("umka-1778", entity != NULL); aal_assert("umka-1779", stream != NULL); alloc = (alloc40_t *)entity; /* Printing into passed @stream block allocator properties. Here also will be printing of the bitmap bits here later. */ aal_stream_format(stream, "Block allocator:\n"); aal_stream_format(stream, "plugin:\t\t%s\n", entity->plug->p.label); aal_stream_format(stream, "total blocks:\t%llu\n", alloc->bitmap->total); aal_stream_format(stream, "used blocks:\t%llu\n", alloc->bitmap->marked); aal_stream_format(stream, "free blocks:\t%llu\n", alloc->bitmap->total - alloc->bitmap->marked); aal_stream_format(stream, "\n%*s%*s%*s\n", 10, "BLK", 10, "CRC", 10, "Used"); aal_stream_format(stream, "-------------------------\n"); /* Calling alloc40_layout() in order to print all block checksums */ alloc->data = stream; alloc40_layout(entity, cb_print_bitmap, alloc); start = 0; total = alloc->bitmap->total; aal_stream_format(stream, "\nBlock map:\n"); aal_stream_format(stream, "[ "); while (start < total) { blocks = reiser4_bitmap_find_region(alloc->bitmap, &start, total - start, 1); if (!blocks) break; aal_stream_format(stream, "%llu(%llu) ", start, blocks); start += blocks; } aal_stream_format(stream, "]\n"); } static void cb_inval_warn(blk_t start, uint32_t ladler, uint32_t cadler) { fsck_mess("Checksum mismatch in bitmap block %llu. Checksum " "is 0x%x, should be 0x%x.", start, ladler, cadler); } /* Checks allocator on validness */ errno_t alloc40_check_struct(reiser4_alloc_ent_t *entity, uint8_t mode) { alloc40_t *alloc = (alloc40_t *)entity; errno_t res; aal_assert("umka-963", alloc != NULL); aal_assert("umka-964", alloc->bitmap != NULL); /* Calling layout function for traversing all the bitmap blocks with checking callback function. */ alloc->data = cb_inval_warn; res = alloc40_layout(entity, cb_valid_block, alloc); if (res != -ESTRUCT) return res; /* Checksums are not correct. */ if (mode == RM_CHECK) return RE_FIXABLE; alloc->state = (1 << ENTITY_DIRTY); fsck_mess("Checksums will be fixed later."); return 0; } #endif reiser4progs-1.0.7.orig/plugin/alloc/Makefile.am0000644000175000017500000000002311131470543017344 0ustar fzfzSUBDIRS = alloc40 reiser4progs-1.0.7.orig/plugin/format/0000777000175000017500000000000011134133445015517 5ustar fzfzreiser4progs-1.0.7.orig/plugin/format/Makefile.in0000644000175000017500000003433711134132272017567 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/format DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = format40 all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/format/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/format/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/format/Makefile.am0000644000175000017500000000002411131470543017543 0ustar fzfzSUBDIRS = format40 reiser4progs-1.0.7.orig/plugin/format/format40/0000777000175000017500000000000011134133445017153 5ustar fzfzreiser4progs-1.0.7.orig/plugin/format/format40/Makefile.in0000644000175000017500000004715111134132272021221 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/format/format40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libformat40_minimal_la_LIBADD = am__libformat40_minimal_la_SOURCES_DIST = format40.c format40_repair.c \ format40.h format40_repair.h am__objects_1 = libformat40_minimal_la-format40.lo \ libformat40_minimal_la-format40_repair.lo @ENABLE_MINIMAL_TRUE@am_libformat40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libformat40_minimal_la_OBJECTS = $(am_libformat40_minimal_la_OBJECTS) libformat40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libformat40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libformat40_minimal_la_rpath = libformat40_static_la_LIBADD = am__objects_2 = libformat40_static_la-format40.lo \ libformat40_static_la-format40_repair.lo am_libformat40_static_la_OBJECTS = $(am__objects_2) libformat40_static_la_OBJECTS = $(am_libformat40_static_la_OBJECTS) libformat40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libformat40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libformat40_minimal_la_SOURCES) \ $(libformat40_static_la_SOURCES) DIST_SOURCES = $(am__libformat40_minimal_la_SOURCES_DIST) \ $(libformat40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ format40_sources = format40.c format40_repair.c format40.h format40_repair.h STATIC_LIBS = libformat40-static.la libformat40_static_la_SOURCES = $(format40_sources) libformat40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libformat40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libformat40_minimal_la_SOURCES = $(format40_sources) @ENABLE_MINIMAL_TRUE@libformat40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/format/format40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/format/format40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libformat40-minimal.la: $(libformat40_minimal_la_OBJECTS) $(libformat40_minimal_la_DEPENDENCIES) $(libformat40_minimal_la_LINK) $(am_libformat40_minimal_la_rpath) $(libformat40_minimal_la_OBJECTS) $(libformat40_minimal_la_LIBADD) $(LIBS) libformat40-static.la: $(libformat40_static_la_OBJECTS) $(libformat40_static_la_DEPENDENCIES) $(libformat40_static_la_LINK) $(libformat40_static_la_OBJECTS) $(libformat40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libformat40_minimal_la-format40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libformat40_minimal_la-format40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libformat40_static_la-format40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libformat40_static_la-format40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libformat40_minimal_la-format40.lo: format40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libformat40_minimal_la_CFLAGS) $(CFLAGS) -MT libformat40_minimal_la-format40.lo -MD -MP -MF $(DEPDIR)/libformat40_minimal_la-format40.Tpo -c -o libformat40_minimal_la-format40.lo `test -f 'format40.c' || echo '$(srcdir)/'`format40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libformat40_minimal_la-format40.Tpo $(DEPDIR)/libformat40_minimal_la-format40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format40.c' object='libformat40_minimal_la-format40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libformat40_minimal_la_CFLAGS) $(CFLAGS) -c -o libformat40_minimal_la-format40.lo `test -f 'format40.c' || echo '$(srcdir)/'`format40.c libformat40_minimal_la-format40_repair.lo: format40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libformat40_minimal_la_CFLAGS) $(CFLAGS) -MT libformat40_minimal_la-format40_repair.lo -MD -MP -MF $(DEPDIR)/libformat40_minimal_la-format40_repair.Tpo -c -o libformat40_minimal_la-format40_repair.lo `test -f 'format40_repair.c' || echo '$(srcdir)/'`format40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libformat40_minimal_la-format40_repair.Tpo $(DEPDIR)/libformat40_minimal_la-format40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format40_repair.c' object='libformat40_minimal_la-format40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libformat40_minimal_la_CFLAGS) $(CFLAGS) -c -o libformat40_minimal_la-format40_repair.lo `test -f 'format40_repair.c' || echo '$(srcdir)/'`format40_repair.c libformat40_static_la-format40.lo: format40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libformat40_static_la_CFLAGS) $(CFLAGS) -MT libformat40_static_la-format40.lo -MD -MP -MF $(DEPDIR)/libformat40_static_la-format40.Tpo -c -o libformat40_static_la-format40.lo `test -f 'format40.c' || echo '$(srcdir)/'`format40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libformat40_static_la-format40.Tpo $(DEPDIR)/libformat40_static_la-format40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format40.c' object='libformat40_static_la-format40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libformat40_static_la_CFLAGS) $(CFLAGS) -c -o libformat40_static_la-format40.lo `test -f 'format40.c' || echo '$(srcdir)/'`format40.c libformat40_static_la-format40_repair.lo: format40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libformat40_static_la_CFLAGS) $(CFLAGS) -MT libformat40_static_la-format40_repair.lo -MD -MP -MF $(DEPDIR)/libformat40_static_la-format40_repair.Tpo -c -o libformat40_static_la-format40_repair.lo `test -f 'format40_repair.c' || echo '$(srcdir)/'`format40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libformat40_static_la-format40_repair.Tpo $(DEPDIR)/libformat40_static_la-format40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format40_repair.c' object='libformat40_static_la-format40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libformat40_static_la_CFLAGS) $(CFLAGS) -c -o libformat40_static_la-format40_repair.lo `test -f 'format40_repair.c' || echo '$(srcdir)/'`format40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/format/format40/format40.h0000644000175000017500000000647311131470543020766 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. format40.h -- reiser4 disk-format plugin. */ #ifndef FORMAT40_H #define FORMAT40_H #include #include #define FORMAT40_MAGIC "ReIsEr40FoRmAt" #define FORMAT40_BLOCKNR(blksize) \ (REISER4_MASTER_BLOCKNR(blksize) + 1) #define SUPER(entity) (&((format40_t *)entity)->super) #define MAGIC_SIZE 16 /* The greatest supported format40 version number */ #define FORMAT40_VERSION PLUGIN_LIBRARY_VERSION /* This flag indicates that backup should be updated (the update is performed by fsck) */ #define FORMAT40_UPDATE_BACKUP (1 << 31) typedef struct format40_super { d64_t sb_block_count; d64_t sb_free_blocks; d64_t sb_root_block; /* These 2 fields are for oid data. */ d64_t sb_oid[2]; d64_t sb_flushes; d32_t sb_mkfs_id; char sb_magic[MAGIC_SIZE]; d16_t sb_tree_height; d16_t sb_policy; d64_t sb_flags; d32_t sb_version; char sb_unused[428]; } __attribute__((packed)) format40_super_t; typedef struct format40 { reiser4_format_plug_t *plug; uint32_t state; uint32_t blksize; aal_device_t *device; format40_super_t super; } format40_t; #ifndef ENABLE_MINIMAL typedef struct format40_backup { char sb_magic[MAGIC_SIZE]; d64_t sb_block_count; d32_t sb_mkfs_id; d16_t sb_policy; d64_t sb_flags; d32_t sb_version; d64_t sb_reserved; } __attribute__((packed)) format40_backup_t; #endif extern reiser4_format_plug_t format40_plug; extern reiser4_core_t *format40_core; #define get_sb_mkfs_id(sb) aal_get_le32(sb, sb_mkfs_id) #define set_sb_mkfs_id(sb, val) aal_set_le32(sb, sb_mkfs_id, val) #define get_sb_block_count(sb) aal_get_le64(sb, sb_block_count) #define set_sb_block_count(sb, val) aal_set_le64(sb, sb_block_count, val) #define get_sb_free_blocks(sb) aal_get_le64(sb, sb_free_blocks) #define set_sb_free_blocks(sb, val) aal_set_le64(sb, sb_free_blocks, val) #define get_sb_root_block(sb) aal_get_le64(sb, sb_root_block) #define set_sb_root_block(sb, val) aal_set_le64(sb, sb_root_block, val) #define get_sb_policy(sb) aal_get_le16(sb, sb_policy) #define set_sb_policy(sb, val) aal_set_le16(sb, sb_policy, val) /* FIXME: Should not be here, oid's stuff. */ #define get_sb_oid(sb) aal_get_le64(sb, sb_oid[0]) #define get_sb_file_count(sb) aal_get_le64(sb, sb_oid[1]) #define get_sb_flushes(sb) aal_get_le64(sb, sb_flushes) #define set_sb_flushes(sb, val) aal_set_le64(sb, sb_flushes, val) #define get_sb_tree_height(sb) aal_get_le16(sb, sb_tree_height) #define set_sb_tree_height(sb, val) aal_set_le16(sb, sb_tree_height, val) #define get_sb_flags(sb) aal_get_le64(sb, sb_flags) #define set_sb_flags(sb, val) aal_set_le64(sb, sb_flags, val) #define get_sb_version(sb) \ (aal_get_le32(sb, sb_version) & ~FORMAT40_UPDATE_BACKUP) #define set_sb_version(sb, val) aal_set_le32(sb, sb_version, val) #define sb_update_backup(sb) \ (aal_get_le32(sb, sb_version) & FORMAT40_UPDATE_BACKUP) #define FORMAT40_KEY_LARGE 0 #define format40_mkdirty(entity) \ (((format40_t *)entity)->state |= (1 << ENTITY_DIRTY)) #define format40_mkclean(entity) \ (((format40_t *)entity)->state &= ~(1 << ENTITY_DIRTY)) #ifndef ENABLE_MINIMAL extern void format40_set_key(reiser4_format_ent_t *entity, rid_t key); extern rid_t format40_get_key(reiser4_format_ent_t *entity); #endif #endif reiser4progs-1.0.7.orig/plugin/format/format40/format40_repair.c0000644000175000017500000003354111131470543022317 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. format40_repair.c -- repair methods for the default disk-layout plugin for reiserfs 4.0. */ #ifndef ENABLE_MINIMAL #include "format40.h" #include /* Update from the device only those fields which can be changed while replaying. */ errno_t format40_update(reiser4_format_ent_t *entity) { format40_t *format = (format40_t *)entity; format40_super_t *super; aal_block_t block; errno_t res; blk_t blk; aal_assert("vpf-828", format != NULL); aal_assert("vpf-828", format->device != NULL); blk = FORMAT40_BLOCKNR(format->blksize); if ((res = aal_block_init(&block, format->device, format->blksize, blk))) return res; if ((res = aal_block_read(&block))) { aal_error("Failed to read the block (%llu).", blk); goto error_free_block; } super = (format40_super_t *)block.data; /* oid, free blocks and file count are updated right into the format. */ format->super.sb_root_block = super->sb_root_block; format->super.sb_tree_height = super->sb_tree_height; format->super.sb_flushes = super->sb_flushes; format40_mkdirty(format); error_free_block: aal_block_fini(&block); return res; } errno_t format40_check_struct(reiser4_format_ent_t *entity, backup_hint_t *hint, format_hint_t *desc, uint8_t mode) { format40_backup_t *backup; format40_super_t *super; format40_t *format; errno_t res = 0; rid_t pid; aal_assert("vpf-1739", entity != NULL); aal_assert("vpf-1740", desc != NULL); format = (format40_t *)entity; super = (format40_super_t *)&format->super; backup = hint ? (format40_backup_t *) (hint->block.data + hint->off[BK_FORMAT]) : NULL; if (backup) { aal_assert("vpf-1741", format->blksize == hint->block.size); } else { aal_assert("vpf-1742", format->blksize == desc->blksize); } /* Check magic */ if (aal_strncmp(super->sb_magic, FORMAT40_MAGIC, sizeof(FORMAT40_MAGIC))) { aal_error("The on-disk format magic (%s) does not match the " "format40 plugin one (%s).%s", super->sb_magic, FORMAT40_MAGIC, mode == RM_BUILD ? " Fixed." : ""); if (mode == RM_BUILD) { aal_strncpy(super->sb_magic, FORMAT40_MAGIC, sizeof(FORMAT40_MAGIC)); format40_mkdirty(format); } else { res |= RE_FATAL; } } if (backup) { /* Check the version if the version was backed up. */ if ((get_sb_version(backup) > FORMAT40_VERSION) || ((get_sb_version(super) > FORMAT40_VERSION) && sb_update_backup(super))) { aal_fatal("The on-disk format version (%u) is " "greater than the known version (%u). " "Please update reiser4progs and try again.", get_sb_version(super),FORMAT40_VERSION); return RE_FATAL; } if ((get_sb_version(super) > get_sb_version(backup)) && (get_sb_version(super) <= FORMAT40_VERSION) && (sb_update_backup(super))) { /* Backup update is needed. */ aal_mess("Backup update is needed.%s", mode == RM_CHECK ? "" : " Done."); if (mode == RM_CHECK) { res |= RE_FIXABLE; } else { set_sb_version(super, get_sb_version(super)); format40_mkdirty(format); } } else { if (get_sb_version(super) != get_sb_version(backup)) { fsck_mess("The on-disk format version (%u) does" " not match the backup one (%u).%s", get_sb_version(super), get_sb_version(backup), mode == RM_BUILD ? " Fixed." : ""); if (mode == RM_BUILD) { set_sb_version(super, get_sb_version(backup)); format40_mkdirty(format); } else { res |= RE_FATAL; } } } } else { if (get_sb_version(super) > FORMAT40_VERSION) { int opt; aal_mess("The on-disk format40 version (%u) is greater " "than the known version (%u). This probably " "means that reiser4progs is out of date. Fix " "the format40 version, only if you are sure " "this is a corruption.", get_sb_version(super), FORMAT40_VERSION); if (mode != RM_BUILD) return RE_FATAL; opt = aal_yesno("Do you want to fix the format40 " "version?"); if (opt != EXCEPTION_OPT_YES) return -EINVAL; set_sb_version(super, FORMAT40_VERSION); format40_mkdirty(format); } } /* Check the policy. */ if (desc->mask & (1 << PM_POLICY)) { /* Policy must be set to @desc->policy if differs. */ if (desc->policy != get_sb_policy(super)) { fsck_mess("The on-disk formatting plugin id (0x%x) " "does not match the specified one (0x%x).%s", get_sb_policy(super), desc->policy, mode != RM_CHECK ? " Fixed." : ""); if (mode == RM_CHECK) { res |= RE_FIXABLE; } else { set_sb_policy(super, desc->policy); format40_mkdirty(format); } } } else if (backup) { /* Check policy by the backup. */ if (get_sb_policy(super) != get_sb_policy(backup)) { fsck_mess("The on-disk formatting plugin id (0x%x) " "does not match the backup one (0x%x).%s", get_sb_policy(super), get_sb_policy(backup), mode != RM_CHECK ? " Fixed." : ""); if (mode == RM_CHECK) { res |= RE_FIXABLE; } else { set_sb_policy(super, get_sb_policy(backup)); format40_mkdirty(format); } } } else { /* Check that on-disk policy is correct, otherwise set one from the profile. */ if (!(format40_core->factory_ops.ifind(POLICY_PLUG_TYPE, get_sb_policy(super)))) { fsck_mess("Can't find the formatting policy " "plugin by the on-disk id 0x%x.", get_sb_policy(super)); if (mode != RM_CHECK) { fsck_mess("Using the default formatting " "policy 0x%x.", desc->policy); set_sb_policy(super, desc->policy); format40_mkdirty(format); } else { res |= RE_FIXABLE; } } } /* Check the key. */ if (desc->mask & (1 << PM_KEY)) { /* Key must be set to the @desc->key if differ. */ pid = format40_get_key(entity); if (desc->key != pid) { fsck_mess("The on-disk format key plugin id (0x%x) does" " not match the specified one (0x%x).%s", pid, desc->key, mode == RM_BUILD ? " Fixed." : ""); if (mode == RM_BUILD) format40_set_key(entity, desc->key); else res |= RE_FATAL; } } else if (backup) { /* Check key by the backup. */ if (get_sb_flags(super) != get_sb_flags(backup)) { fsck_mess("The on-disk format flags (0x%llx) does " "not match the backup one (0x%llx).%s", get_sb_flags(super), get_sb_flags(backup), mode == RM_BUILD ? " Fixed." : ""); if (mode == RM_BUILD) { set_sb_flags(super, get_sb_flags(backup)); format40_mkdirty(format); } else { res |= RE_FATAL; } } } else { /* On-disk key is always correct as it is just 1 bit. */ } /* Check the block count, mkfs id and version number. */ if (backup) { /* Check the block count. */ if (get_sb_block_count(super) != get_sb_block_count(backup)) { fsck_mess("The on-disk format block count (%llu) does " "not match the backup one (%llu).%s", get_sb_block_count(super), get_sb_block_count(backup), mode == RM_BUILD ? " Fixed." : ""); if (mode == RM_BUILD) { set_sb_block_count(super, get_sb_block_count(backup)); format40_mkdirty(format); } else { res |= RE_FATAL; } } /* Check the mkfs id. */ if (get_sb_mkfs_id(super) != get_sb_mkfs_id(backup)) { fsck_mess("The on-disk format mkfs id (0x%x) does " "not match the backup one (0x%x).%s", get_sb_mkfs_id(super), get_sb_mkfs_id(backup), mode == RM_BUILD ? " Fixed." : ""); if (mode == RM_BUILD) { set_sb_mkfs_id(super, get_sb_mkfs_id(backup)); format40_mkdirty(format); } else { res |= RE_FATAL; } } } else { /* Check the block count. */ if (get_sb_block_count(super) != desc->blocks) { fsck_mess("The on-disk format block count (%llu) does " "not match the specified one (%llu).%s", get_sb_block_count(super), desc->blocks, mode == RM_BUILD ? " Fixed." : ""); if (mode == RM_BUILD) { set_sb_block_count(super, desc->blocks); format40_mkdirty(format); } else { res |= RE_FATAL; } } } return res; } errno_t format40_pack(reiser4_format_ent_t *entity, aal_stream_t *stream) { rid_t pid; uint32_t size; format40_t *format; aal_assert("umka-2600", entity != NULL); aal_assert("umka-2601", stream != NULL); format = (format40_t *)entity; /* Write plugin id. */ pid = entity->plug->p.id.id; aal_stream_write(stream, &pid, sizeof(pid)); /* Write data size. */ size = sizeof(format->super); aal_stream_write(stream, &size, sizeof(size)); /* Write format data to @stream. */ aal_stream_write(stream, &format->super, size); return 0; } reiser4_format_ent_t *format40_unpack(aal_device_t *device, uint32_t blksize, aal_stream_t *stream) { uint32_t size; format40_t *format; aal_assert("umka-2650", device != NULL); aal_assert("umka-2603", stream != NULL); /* Initializing format instance. */ if (!(format = aal_calloc(sizeof(*format), 0))) return NULL; format->plug = &format40_plug; format->device = device; format->blksize = blksize; /* Read size nad check for validness. */ if (aal_stream_read(stream, &size, sizeof(size)) != sizeof(size)) goto error_eostream; if (size != sizeof(format->super)) { aal_error("Invalid size %u is detected in stream.", size); goto error_free_format; } /* Read format data from @stream. */ if (aal_stream_read(stream, &format->super, size) != (int32_t)size) goto error_eostream; format40_mkdirty(format); return (reiser4_format_ent_t *)format; error_eostream: aal_error("Can't unpack the disk format40. Stream is over?"); error_free_format: aal_free(format); return NULL; } void format40_print(reiser4_format_ent_t *entity, aal_stream_t *stream, uint16_t options) { format40_super_t *super; reiser4_plug_t *plug; format40_t *format; rid_t pid; aal_assert("vpf-246", entity != NULL); aal_assert("umka-1290", stream != NULL); format = (format40_t *)entity; super = &format->super; pid = get_sb_policy(super); if (!(plug = format40_core->factory_ops.ifind(POLICY_PLUG_TYPE, pid))) { aal_error("Can't find tail policy plugin by its id 0x%x.", pid); } aal_stream_format(stream, "Format super block (%lu):\n", FORMAT40_BLOCKNR(format->blksize)); aal_stream_format(stream, "plugin:\t\t%s\n", entity->plug->p.label); aal_stream_format(stream, "description:\t%s\n", entity->plug->p.desc); aal_stream_format(stream, "version:\t%u\n", get_sb_version(super)); aal_stream_format(stream, "magic:\t\t%s\n", super->sb_magic); aal_stream_format(stream, "mkfs id:\t0x%x\n", get_sb_mkfs_id(super)); aal_stream_format(stream, "flushes:\t%llu\n", get_sb_flushes(super)); aal_stream_format(stream, "blocks:\t\t%llu\n", get_sb_block_count(super)); aal_stream_format(stream, "free blocks:\t%llu\n", get_sb_free_blocks(super)); aal_stream_format(stream, "root block:\t%llu\n", get_sb_root_block(super)); aal_stream_format(stream, "tail policy:\t0x%x (%s)\n", pid, plug ? plug->label: "absent"); aal_stream_format(stream, "next oid:\t0x%llx\n", get_sb_oid(super)); aal_stream_format(stream, "file count:\t%llu\n", get_sb_file_count(super)); aal_stream_format(stream, "tree height:\t%u\n", get_sb_tree_height(super)); if (aal_test_bit(&super->sb_flags, 0)) aal_stream_format(stream, "key policy:\tLARGE\n"); else aal_stream_format(stream, "key policy:\tSHORT\n"); } errno_t format40_check_backup(backup_hint_t *hint) { format40_backup_t *backup; aal_assert("vpf-1733", hint != NULL); backup = (format40_backup_t *) (hint->block.data + hint->off[BK_FORMAT]); hint->off[BK_FORMAT + 1] = hint->off[BK_FORMAT] + sizeof(*backup); /* Check the MAGIC. */ if (aal_memcmp(backup->sb_magic, FORMAT40_MAGIC, sizeof(FORMAT40_MAGIC))) { return RE_FATAL; } /* Block count must be greater than the read block number. */ if (get_sb_block_count(backup) <= hint->block.nr) return RE_FATAL; /* The is no need to check the block count as it will be checked in repair_format_check_struct, just set blocks into the hint. */ /* Some policy plugin must be found. */ if (!format40_core->factory_ops.ifind(POLICY_PLUG_TYPE, get_sb_policy(backup))) { return RE_FATAL; } /* Save the block count & version in the hint for the futher use. */ hint->blocks = get_sb_block_count(backup); hint->version = get_sb_version(backup); return 0; } /* Regenerate the format instance by the backup. */ reiser4_format_ent_t *format40_regenerate(aal_device_t *device, backup_hint_t *hint) { format40_backup_t *backup; format40_super_t *super; format40_t *format; aal_assert("vpf-1737", hint != NULL); aal_assert("vpf-1738", device != NULL); backup = (format40_backup_t *) (hint->block.data + hint->off[BK_FORMAT]); if (get_sb_version(backup) > FORMAT40_VERSION) { fsck_mess("The reiser4 fs being repaired is formatted with " "format40 plugin version %u, whereas the used " "format40 plugin is of version %u. Please update " "reiser4progs and try again.", get_sb_version(backup), FORMAT40_VERSION); return NULL; } /* Initializing format instance. */ if (!(format = aal_calloc(sizeof(*format), 0))) return NULL; format->plug = &format40_plug; format->device = device; format->blksize = hint->block.size; format40_mkdirty(format); /* Initializing super block fields. */ super = (format40_super_t *)&format->super; /* Initialize fields by the backup or leave them uninitialized. */ aal_strncpy(super->sb_magic, backup->sb_magic, sizeof(super->sb_magic)); set_sb_block_count(super, get_sb_block_count(backup)); set_sb_flags(super, get_sb_flags(backup)); set_sb_mkfs_id(super, get_sb_mkfs_id(backup)); set_sb_policy(super, get_sb_policy(backup)); set_sb_tree_height(super, 2); set_sb_root_block(super, INVAL_BLK); set_sb_version(super, get_sb_version(backup)); return (reiser4_format_ent_t *)format; } #endif reiser4progs-1.0.7.orig/plugin/format/format40/format40_repair.h0000644000175000017500000000177411131470543022327 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. format40_repair.h -- reiser4 disk-format plugin repair functions. */ #ifndef FORMAT40_REPAIR_H #define FORMAT40_REPAIR_H #ifndef ENABLE_MINIMAL #include #include extern errno_t format40_update(reiser4_format_ent_t *entity); extern errno_t format40_pack(reiser4_format_ent_t *entity, aal_stream_t *stream); extern reiser4_format_ent_t *format40_unpack(aal_device_t *device, uint32_t blksize, aal_stream_t *stream); extern void format40_print(reiser4_format_ent_t *entity, aal_stream_t *stream, uint16_t options); extern errno_t format40_check_backup(backup_hint_t *hint); extern reiser4_format_ent_t *format40_regenerate(aal_device_t *device, backup_hint_t *hint); extern errno_t format40_check_struct(reiser4_format_ent_t *entity, backup_hint_t *hint, format_hint_t *desc, uint8_t mode); #endif #endif reiser4progs-1.0.7.orig/plugin/format/format40/Makefile.am0000644000175000017500000000115611131470543021206 0ustar fzfzincludedir = -I$(top_srcdir)/include format40_sources = format40.c format40_repair.c format40.h format40_repair.h STATIC_LIBS = libformat40-static.la libformat40_static_la_SOURCES = $(format40_sources) libformat40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libformat40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libformat40_minimal_la_SOURCES = $(format40_sources) libformat40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/format/format40/format40.c0000644000175000017500000003253611131470543020760 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. format40.c -- default disk-layout plugin for reiser4. */ #ifndef ENABLE_MINIMAL # include # include #endif #include "format40.h" #include "format40_repair.h" reiser4_core_t *format40_core = NULL; /* All these functions are standard object getters and setters. They are dedicated to modify object properties and get values from its fields. They are almost the same and we will not describe each one especially. */ static uint64_t format40_get_root(reiser4_format_ent_t *entity) { aal_assert("umka-400", entity != NULL); return get_sb_root_block(SUPER(entity)); } static uint16_t format40_get_height(reiser4_format_ent_t *entity) { aal_assert("umka-1123", entity != NULL); return get_sb_tree_height(SUPER(entity)); } #ifndef ENABLE_MINIMAL static uint64_t format40_get_len(reiser4_format_ent_t *entity) { aal_assert("umka-401", entity != NULL); return get_sb_block_count(SUPER(entity)); } static uint64_t format40_get_free(reiser4_format_ent_t *entity) { aal_assert("umka-402", entity != NULL); return get_sb_free_blocks(SUPER(entity)); } static uint32_t format40_get_stamp(reiser4_format_ent_t *entity) { aal_assert("umka-1122", entity != NULL); return get_sb_mkfs_id(SUPER(entity)); } static rid_t format40_get_policy(reiser4_format_ent_t *entity) { aal_assert("vpf-831", entity != NULL); return get_sb_policy(SUPER(entity)); } static uint64_t format40_start(reiser4_format_ent_t *entity) { format40_t *format = (format40_t *)entity; aal_assert("vpf-462", format != NULL); aal_assert("vpf-463", format->device != NULL); return FORMAT40_BLOCKNR(format->blksize); } static uint32_t format40_get_state(reiser4_format_ent_t *entity) { aal_assert("umka-2651", entity != NULL); return ((format40_t *)entity)->state; } void format40_set_state(reiser4_format_ent_t *entity, uint32_t state) { aal_assert("umka-2078", entity != NULL); ((format40_t *)entity)->state = state; } static errno_t format40_layout(reiser4_format_ent_t *entity, region_func_t region_func, void *data) { blk_t blk; errno_t res; format40_t *format; aal_assert("umka-1042", entity != NULL); aal_assert("umka-1043", region_func != NULL); format = (format40_t *)entity; blk = FORMAT40_BLOCKNR(format->blksize); if ((res = region_func(0, blk, data))) return res; return region_func(blk, 1, data); } #endif static int format40_magic(format40_super_t *super) { return (!aal_strncmp(super->sb_magic, FORMAT40_MAGIC, sizeof(FORMAT40_MAGIC))); } static errno_t format40_super_open(format40_t *format) { errno_t res; blk_t offset; aal_block_t block; offset = FORMAT40_BLOCKNR(format->blksize); aal_block_init(&block, format->device, format->blksize, offset); if ((res = aal_block_read(&block))) { aal_error("Can't read format40 super block. " "%s.", format->device->error); goto error_free_block; } if (!format40_magic((format40_super_t *)block.data)) { res = -EINVAL; goto error_free_block; } aal_memcpy(&format->super, block.data, sizeof(format->super)); error_free_block: aal_block_fini(&block); return res; } static reiser4_format_ent_t *format40_open(aal_device_t *device, uint32_t blksize) { format40_t *format; aal_assert("umka-393", device != NULL); /* Initializing format instance. */ if (!(format = aal_calloc(sizeof(*format), 0))) return NULL; format->state = 0; format->plug = &format40_plug; format->device = device; format->blksize = blksize; /* Initializing super block. */ if (format40_super_open(format)) { aal_free(format); return NULL; } return (reiser4_format_ent_t *)format; } static void format40_close(reiser4_format_ent_t *entity) { aal_assert("umka-398", entity != NULL); aal_free(entity); } #ifndef ENABLE_MINIMAL static errno_t format40_clobber_block(void *entity, blk_t start, count_t width, void *data) { blk_t blk; errno_t res; aal_block_t block; format40_t *format; format = (format40_t *)entity; if ((res = aal_block_init(&block, format->device, format->blksize, 0))) { return res; } aal_block_fill(&block, 0); for (blk = start; blk < start + width; blk++) { aal_block_move(&block, format->device, blk); if ((res = aal_block_write(&block))) goto error_free_block; } error_free_block: aal_block_fini(&block); return res; } /* Create format object instnace. Create on-disk format specific suber block structures. Return format instance to caller. */ static reiser4_format_ent_t *format40_create(aal_device_t *device, format_hint_t *desc) { blk_t start; uint64_t flags; format40_t *format; format40_super_t *super; aal_assert("umka-395", device != NULL); aal_assert("vpf-1735", desc != NULL); if (desc->key >= KEY_LAST_ID) { aal_error("Wrong key plugin id (%u) is specified.", desc->key); return NULL; } /* Initializing format instance. */ if (!(format = aal_calloc(sizeof(*format), 0))) return NULL; format->plug = &format40_plug; format->device = device; format->blksize = desc->blksize; format40_mkdirty(format); /* Initializing super block fields. */ super = (format40_super_t *)&format->super; /* Setting up format40 magic. */ aal_memcpy(super->sb_magic, FORMAT40_MAGIC, sizeof(FORMAT40_MAGIC)); /* Number of flushed is zero. */ set_sb_flushes(super, 0); /* Tree height is 2 -- minimal possible tree height in reiser4. All needed nodes will be created later and this value will beused for create them correctly (with level set right). */ set_sb_tree_height(super, 2); /* Filesystem available blocks is set to @blocks. */ set_sb_block_count(super, desc->blocks); /* Root node pointer is set to invalid block numeber, and thus, it shows, that filesyetem is flesh one, that is with not nodes. This value will be used by tree to behave correctly. */ set_sb_root_block(super, INVAL_BLK); /* Setting up tail policy to passed @desc->policy value. */ set_sb_policy(super, desc->policy); /* Set the flags. */ /* FIXME: Hardcoded plugin ids for 2 cases. */ flags = (desc->key == KEY_LARGE_ID) ? (1 << FORMAT40_KEY_LARGE) : 0; set_sb_flags(super, flags); /* Initializing fsck related fields. */ srandom(time(0)); set_sb_mkfs_id(super, random()); /* Set version values. */ set_sb_version(super, FORMAT40_VERSION); /* Clobbering format skipped area in order to let mount to detect reiser4 correctly without specifying exact filesystem type. Skipped area is [0-15] blocks. Clobber the master block also to avoid mounting of the previous reiser4 if this mkfs attempt fails. */ start = FORMAT40_BLOCKNR(format->blksize); if (format40_clobber_block((reiser4_format_ent_t *)format, 0, start, NULL)) { aal_error("Can't clobber format skipped area [%u-%llu].", 0, start - 1); aal_free(format); return NULL; } return (reiser4_format_ent_t *)format; } /* All important permanent format40 data get backuped into @hint. */ static errno_t format40_backup(reiser4_format_ent_t *entity, backup_hint_t *hint) { format40_backup_t *backup; aal_assert("vpf-1396", entity != NULL); aal_assert("vpf-1397", hint != NULL); backup = (format40_backup_t *) (hint->block.data + hint->off[BK_FORMAT]); hint->off[BK_FORMAT + 1] = hint->off[BK_FORMAT] + sizeof(*backup); aal_memcpy(backup->sb_magic, SUPER(entity)->sb_magic, sizeof(SUPER(entity)->sb_magic)); backup->sb_block_count = SUPER(entity)->sb_block_count; backup->sb_mkfs_id = SUPER(entity)->sb_mkfs_id; backup->sb_policy = SUPER(entity)->sb_policy; backup->sb_flags = SUPER(entity)->sb_flags; backup->sb_reserved = 0; /* Get rid of UPDATE_BACKUP flag. */ set_sb_version(backup, get_sb_version(SUPER(entity))); hint->version = get_sb_version(SUPER(entity)); return 0; } /* This function should update all copies of the super block */ static errno_t format40_sync(reiser4_format_ent_t *entity) { errno_t res; blk_t offset; aal_block_t block; format40_t *format; aal_assert("umka-394", entity != NULL); format = (format40_t *)entity; offset = FORMAT40_BLOCKNR(format->blksize); if ((res = aal_block_init(&block, format->device, format->blksize, offset))) { return res; } aal_block_fill(&block, 0); aal_memcpy(block.data, &format->super, sizeof(format->super)); if (!(res = aal_block_write(&block))) format40_mkclean(format); aal_block_fini(&block); return res; } static errno_t format40_valid(reiser4_format_ent_t *entity) { format40_t *format; blk_t max_format_len; aal_assert("umka-397", entity != NULL); format = (format40_t *)entity; max_format_len = aal_device_len(format->device) / (format->blksize / format->device->blksize); if (get_sb_block_count(SUPER(format)) > max_format_len) { aal_error("Superblock has an invalid block count " "%llu for max possible length %llu blocks.", get_sb_block_count(SUPER(format)), max_format_len); return -EINVAL; } if (get_sb_root_block(SUPER(format)) <= format40_start(entity) || get_sb_root_block(SUPER(format)) >= max_format_len) { aal_error("Superblock has an invalid root block " "%llu. It must lie between %llu and %llu " "blocks.", get_sb_root_block(SUPER(format)), format40_start(entity), max_format_len); return -EINVAL; } if (get_sb_version(SUPER(format)) > FORMAT40_VERSION) { aal_error("The on-disk format version (%u) is greater than " "the known version (%u). Please update reiser4progs " "or run fsck.reiser4 --build-sb to fix the fs " "consistency.", get_sb_version(SUPER(format)), FORMAT40_VERSION); return -EINVAL; } return 0; } static void format40_oid_area(reiser4_format_ent_t *entity, void **start, uint32_t *len) { aal_assert("umka-732", entity != NULL); *start = &(SUPER(entity)->sb_oid); *len = sizeof(SUPER(entity)->sb_oid); } static rid_t format40_oid_pid(reiser4_format_ent_t *entity) { return OID_REISER40_ID; } static rid_t format40_journal_pid(reiser4_format_ent_t *entity) { return JOURNAL_REISER40_ID; } static rid_t format40_alloc_pid(reiser4_format_ent_t *entity) { return ALLOC_REISER40_ID; } static void format40_set_root(reiser4_format_ent_t *entity, uint64_t root) { aal_assert("umka-403", entity != NULL); set_sb_root_block(SUPER(entity), root); format40_mkdirty(entity); } static void format40_set_len(reiser4_format_ent_t *entity, uint64_t blocks) { aal_assert("umka-404", entity != NULL); set_sb_block_count(SUPER(entity), blocks); format40_mkdirty(entity); } static void format40_set_free(reiser4_format_ent_t *entity, uint64_t blocks) { aal_assert("umka-405", entity != NULL); if (get_sb_free_blocks(SUPER(entity)) == blocks) return; set_sb_free_blocks(SUPER(entity), blocks); format40_mkdirty(entity); } static void format40_set_height(reiser4_format_ent_t *entity, uint16_t height) { aal_assert("umka-555", entity != NULL); set_sb_tree_height(SUPER(entity), height); format40_mkdirty(entity); } static void format40_set_stamp(reiser4_format_ent_t *entity, uint32_t mkfsid) { aal_assert("umka-1121", entity != NULL); set_sb_mkfs_id(SUPER(entity), mkfsid); format40_mkdirty(entity); } static void format40_set_policy(reiser4_format_ent_t *entity, rid_t tail) { aal_assert("vpf-830", entity != NULL); set_sb_policy(SUPER(entity), tail); format40_mkdirty(entity); } void format40_set_key(reiser4_format_ent_t *entity, rid_t key) { uint64_t flags; aal_assert("vpf-830", entity != NULL); flags = get_sb_flags(SUPER(entity)); flags &= ~(1 << FORMAT40_KEY_LARGE); flags |= ((key == KEY_LARGE_ID) ? (1 << FORMAT40_KEY_LARGE) : 0); set_sb_flags(SUPER(entity), flags); format40_mkdirty(entity); } uint32_t format40_version(reiser4_format_ent_t *entity) { aal_assert("vpf-1913", entity != NULL); return get_sb_version(SUPER(entity)); } #endif rid_t format40_get_key(reiser4_format_ent_t *entity) { uint64_t flags; aal_assert("vpf-1736", entity != NULL); flags = get_sb_flags(SUPER(entity)); return (flags & (1 << FORMAT40_KEY_LARGE)) ? KEY_LARGE_ID : KEY_SHORT_ID; } #define format40_key_pid format40_get_key reiser4_format_plug_t format40_plug = { .p = { .id = {FORMAT_REISER40_ID, 0, FORMAT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "format40", .desc = "Disk-format plugin.", #endif }, #ifndef ENABLE_MINIMAL .valid = format40_valid, .sync = format40_sync, .create = format40_create, .print = format40_print, .layout = format40_layout, .update = format40_update, .start = format40_start, .pack = format40_pack, .unpack = format40_unpack, .get_len = format40_get_len, .get_free = format40_get_free, .get_stamp = format40_get_stamp, .get_policy = format40_get_policy, .set_root = format40_set_root, .set_len = format40_set_len, .set_free = format40_set_free, .set_height = format40_set_height, .set_stamp = format40_set_stamp, .set_policy = format40_set_policy, .set_state = format40_set_state, .get_state = format40_get_state, .oid_pid = format40_oid_pid, .oid_area = format40_oid_area, .journal_pid = format40_journal_pid, .alloc_pid = format40_alloc_pid, .backup = format40_backup, .check_backup = format40_check_backup, .regenerate = format40_regenerate, .check_struct = format40_check_struct, .version = format40_version, #endif .open = format40_open, .close = format40_close, .get_root = format40_get_root, .get_height = format40_get_height, .key_pid = format40_key_pid, }; reiser4progs-1.0.7.orig/plugin/node/0000777000175000017500000000000011134133445015154 5ustar fzfzreiser4progs-1.0.7.orig/plugin/node/Makefile.in0000644000175000017500000003432711134132276017227 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/node DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = node40 all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/node/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/node/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/node/node40/0000777000175000017500000000000011134133445016245 5ustar fzfzreiser4progs-1.0.7.orig/plugin/node/node40/node40_repair.c0000644000175000017500000003751511131470543021053 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. node40_repair.c -- reiser4 node with short keys. */ #ifndef ENABLE_MINIMAL #include "node40.h" #include #define MIN_ITEM_LEN 1 static void node40_set_offset_at(reiser4_node_t *node, int pos, uint16_t offset) { if (pos > nh_get_num_items(node)) return; if (nh_get_num_items(node) == pos) { nh_set_free_space_start(node, offset); } else { ih_set_offset(node40_ih_at(node, pos), offset, node->keypol); } } static errno_t node40_region_delete(reiser4_node_t *node, uint16_t start_pos, uint16_t end_pos) { uint32_t count; uint32_t len; pos_t pos; uint16_t i; void *ih; aal_assert("vpf-201", node != NULL); aal_assert("vpf-202", node->block != NULL); aal_assert("vpf-213", start_pos <= end_pos); aal_assert("vpf-214", end_pos <= nh_get_num_items(node)); ih = node40_ih_at(node, start_pos); for (i = start_pos; i < end_pos; i++) { ih_set_offset(ih, ih_get_offset(ih + ih_size(node->keypol), node->keypol) + 1, node->keypol); ih -= ih_size(node->keypol); } pos.unit = MAX_UINT32; pos.item = start_pos - 1; count = end_pos - pos.item; len = node40_size(node, &pos, count); return node40_shrink((reiser4_node_t *)node, &pos, len, count); } /* Count is valid if: free_space_start + free_space == block_size - count * ih size */ static int node40_count_valid(reiser4_node_t *node) { uint32_t count; count = nh_get_num_items(node); if (count > node->block->size / ih_size(node->keypol)) return 0; if (nh_get_free_space_start(node) > node->block->size) return 0; if (nh_get_free_space(node) > node->block->size) return 0; return (nh_get_free_space_start(node) + nh_get_free_space(node) + count * ih_size(node->keypol) == node->block->size); } /* Look through ih array looking for the last valid item location. This will be the last valid item. */ static uint32_t node40_estimate_count(reiser4_node_t *node) { uint32_t offset, left, right; uint32_t count, last, i; count = nh_get_num_items(node); left = sizeof(node40_header_t); right = node->block->size - ih_size(node->keypol) - MIN_ITEM_LEN; last = 0; for (i = 0 ; ; i++, left += MIN_ITEM_LEN, right -= ih_size(node->keypol)) { if (left > right) break; offset = ih_get_offset(node40_ih_at(node, i), node->keypol); if (offset >= left && offset <= right) { last = i; left = offset; } } return last + 1; } static errno_t node40_space_check(reiser4_node_t *node, uint32_t offset, uint8_t mode) { errno_t res = 0; uint32_t space; space = nh_get_free_space_start(node); /* Last relable position is not free space spart. Correct it. */ if (offset != space) { /* There is left region with broken offsets, remove it. */ fsck_mess("Node (%llu): Free space start (%u) is wrong. " "Should be (%u). %s", node->block->nr, space, offset, mode == RM_BUILD ? "Fixed." : ""); if (mode == RM_BUILD) { nh_set_free_space(node, nh_get_free_space(node) + space - offset); nh_set_free_space_start(node, offset); node40_mkdirty(node); } else { res |= RE_FATAL; } } space = node->block->size - nh_get_free_space_start(node) - ih_size(node->keypol) * nh_get_num_items(node); if (space != nh_get_free_space(node)) { /* Free space is wrong. */ fsck_mess("Node (%llu): the free space (%u) is wrong. " "Should be (%u). %s", node->block->nr, nh_get_free_space(node), space, mode == RM_CHECK ? "" : "Fixed."); if (mode == RM_CHECK) { res |= RE_FIXABLE; } else { nh_set_free_space(node, space); node40_mkdirty(node); } } return res; } /* Count of items is correct. Free space fields and item locations should be * checked/recovered if broken. */ static errno_t node40_ih_array_check(reiser4_node_t *node, uint8_t mode) { uint32_t right, left, offset; uint32_t last_pos, count, i; errno_t res = 0; bool_t relable; blk_t blk; aal_assert("vpf-208", node != NULL); aal_assert("vpf-209", node->block != NULL); blk = node->block->nr; offset = 0; last_pos = 0; count = nh_get_num_items(node); left = sizeof(node40_header_t); right = node->block->size - count * ih_size(node->keypol); for(i = 0; i <= count; i++, left += MIN_ITEM_LEN) { offset = (i == count) ? nh_get_free_space_start(node) : ih_get_offset(node40_ih_at(node, i), node->keypol); if (i == 0) { if (offset == left) continue; fsck_mess("Node (%llu), item (0): Offset (%u) is " "wrong. Should be (%u). %s", blk, offset, left, mode == RM_BUILD ? "Fixed." : ""); if (mode != RM_BUILD) { res |= RE_FATAL; continue; } ih_set_offset(node40_ih_at(node, 0), left, node->keypol); node40_mkdirty(node); continue; } relable = offset >= left && offset + (count - i) * MIN_ITEM_LEN <= right; if (!relable) { /* fsck_mess("Node (%llu), item (%u): Offset (%u) " "is wrong.", blk, i, offset); */ res |= (mode == RM_BUILD ? 0 : RE_FATAL); if (count != i) continue; } /* i-th offset is ok or i == count. Removed broken items. */ if ((last_pos != i - 1) || !relable) { uint32_t delta; fsck_mess("Node (%llu): Region of items [%d-%d] with " "wrong offsets %s removed.", blk, last_pos, i - 1, mode == RM_BUILD ? "is" : "should be"); if (mode == RM_BUILD) { delta = i - last_pos; count -= delta; right += delta * ih_size(node->keypol); if (node40_region_delete(node, last_pos + 1, i)) return -EINVAL; i = last_pos; } /* DO not correct the left limit in the CHECK mode,leave it the same last_relable_offset + n * MIN_ITEM_SIZE. However, correct it for the i == count to check free space correctly. */ if (mode == RM_BUILD || !relable) { left = ih_get_offset(node40_ih_at(node, last_pos), node->keypol); } } else { /* Set the last correct offset and the keft limit. */ last_pos = i; left = (i == count) ? nh_get_free_space_start(node) : ih_get_offset(node40_ih_at(node, i), node->keypol); } } left -= (i - last_pos) * MIN_ITEM_LEN; res |= node40_space_check(node, left, mode); return res; } /* Checks the count of items written in node_header. If it is wrong, it tries to estimate it on the base of free_space fields and recover if REBUILD mode. Returns FATAL otherwise. */ static errno_t node40_count_check(reiser4_node_t *node, uint8_t mode) { uint32_t num, count; blk_t blk; aal_assert("vpf-802", node != NULL); aal_assert("vpf-803", node->block != NULL); blk = node->block->nr; /* Check the count of items. */ if (node40_count_valid(node)) return 0; /* Count is probably is not valid. Estimate the count. */ num = node40_estimate_count(node); count = nh_get_num_items(node); if (num >= count) return 0; fsck_mess("Node (%llu): Count of items (%u) is wrong. " "Only (%u) items found.%s", blk, count, num, mode == RM_BUILD ? " Fixed." : ""); /* Recover is impossible. */ if (mode != RM_BUILD) return RE_FATAL; nh_set_num_items(node, num); node40_mkdirty(node); return 0; } static errno_t node40_iplug_check(reiser4_node_t *node, uint8_t mode) { uint32_t count, len; uint16_t pid; errno_t res; pos_t pos; void *ih; count = nh_get_num_items(node); ih = node40_ih_at(node, 0); pos.unit = MAX_UINT32; res = 0; for (pos.item = 0; pos.item < count; pos.item++, ih -= ih_size(node->keypol)) { pid = ih_get_pid(ih, node->keypol); if (!node40_core->factory_ops.ifind(ITEM_PLUG_TYPE, pid)) { fsck_mess("Node (%llu), item (%u): the item of unknown " "plugin id (0x%x) is found.%s", node->block->nr, pos.item, pid, mode == RM_BUILD ? " Removed." : ""); if (mode != RM_BUILD) { res |= RE_FATAL; continue; } /* Item plugin cannot be found, remove it. */ len = node40_size(node, &pos, 1); if ((res = node40_shrink(node, &pos, len, 1))) return res; } } return res; } errno_t node40_check_struct(reiser4_node_t *node, uint8_t mode) { errno_t res; aal_assert("vpf-194", node != NULL); /* Check the content of the node40 header. */ if ((res = node40_count_check(node, mode))) return res; if (nh_get_num_items(node) == 0) { uint32_t offset = sizeof(node40_header_t); return node40_space_check(node, offset, mode); } /* Count looks ok. Recover the item array. */ res = node40_ih_array_check(node, mode); if (repair_error_fatal(res)) return res; res |= node40_iplug_check(node, mode); return res; } errno_t node40_corrupt(reiser4_node_t *entity, uint16_t options) { int i; for(i = 0; i < nh_get_num_items(entity) + 1; i++) { if (aal_test_bit(&options, i)) { node40_set_offset_at(entity, i, 0xafff); } } return 0; } int64_t node40_insert_raw(reiser4_node_t *entity, pos_t *pos, trans_hint_t *hint) { aal_assert("vpf-965", entity != NULL); aal_assert("vpf-966", pos != NULL); aal_assert("vpf-1368", hint != NULL); return node40_modify(entity, pos, hint, hint->plug->repair->insert_raw); } errno_t node40_pack(reiser4_node_t *entity, aal_stream_t *stream) { node40_header_t *head; reiser4_place_t place; uint16_t num; pos_t *pos; rid_t pid; aal_assert("umka-2596", entity != NULL); aal_assert("umka-2598", stream != NULL); pid = entity->plug->p.id.id; aal_stream_write(stream, &pid, sizeof(pid)); /* Write node block number. */ aal_stream_write(stream, &entity->block->nr, sizeof(entity->block->nr)); /* Pack the node content. */ /* Node header w/out magic and padding. */ head = nh(entity->block); aal_stream_write(stream, &head->num_items, sizeof(head->num_items)); aal_stream_write(stream, &head->free_space, sizeof(head->free_space)); aal_stream_write(stream, &head->free_space_start, sizeof(head->free_space_start)); aal_stream_write(stream, &head->mkfs_id, sizeof(head->mkfs_id)); aal_stream_write(stream, &head->flush_id, sizeof(head->flush_id)); aal_stream_write(stream, &head->flags, sizeof(head->flags)); aal_stream_write(stream, &head->level, sizeof(head->level)); /* All items. */ num = nh_get_num_items(entity); pos = &place.pos; pos->unit = MAX_UINT32; /* Pack all item headers. */ for (pos->item = 0; pos->item < num; pos->item++) { void *ih = node40_ih_at(entity, pos->item); aal_stream_write(stream, ih, ih_size(entity->keypol)); } /* Pack all item bodies. */ for (pos->item = 0; pos->item < num; pos->item++) { if (node40_fetch(entity, pos, &place)) return -EINVAL; if (place.plug->repair->pack) { /* Pack body. */ if (objcall(&place, repair->pack, stream)) return -EINVAL; } else { /* Do not pack body. */ aal_stream_write(stream, node40_ib_at(entity, pos->item), node40_len(entity, &place.pos)); } } return 0; } reiser4_node_t *node40_unpack(aal_block_t *block, reiser4_key_plug_t *kplug, aal_stream_t *stream) { node40_header_t *head; reiser4_node_t *entity; reiser4_place_t place; uint32_t read; uint16_t num; pos_t *pos; aal_assert("umka-2597", block != NULL); aal_assert("umka-2632", kplug != NULL); aal_assert("umka-2599", stream != NULL); if (!(entity = aal_calloc(sizeof(*entity), 0))) return NULL; if (!(entity = node40_prepare(block, kplug))) return NULL; node40_mkdirty(entity); /* Unpack the node content. */ /* Node header w/out magic and padding. */ head = nh(entity->block); read = aal_stream_read(stream, &head->num_items, sizeof(head->num_items)); if (read != sizeof(head->num_items)) goto error_free_entity; read = aal_stream_read(stream, &head->free_space, sizeof(head->free_space)); if (read != sizeof(head->free_space)) goto error_free_entity; read = aal_stream_read(stream, &head->free_space_start, sizeof(head->free_space_start)); if (read != sizeof(head->free_space_start)) goto error_free_entity; read = aal_stream_read(stream, &head->mkfs_id, sizeof(head->mkfs_id)); if (read != sizeof(head->mkfs_id)) goto error_free_entity; read = aal_stream_read(stream, &head->flush_id, sizeof(head->flush_id)); if (read != sizeof(head->flush_id)) goto error_free_entity; read = aal_stream_read(stream, &head->flags, sizeof(head->flags)); if (read != sizeof(head->flags)) goto error_free_entity; read = aal_stream_read(stream, &head->level, sizeof(head->level)); if (read != sizeof(head->level)) goto error_free_entity; /* Set the magic and the pid. */ nh_set_magic(entity, NODE40_MAGIC); nh_set_pid(entity, node40_plug.p.id.id); /* All items. */ num = nh_get_num_items(entity); pos = &place.pos; pos->unit = MAX_UINT32; /* Unpack all item headers. */ for (pos->item = 0; pos->item < num; pos->item++) { void *ih = node40_ih_at(entity, pos->item); read = aal_stream_read(stream, ih, ih_size(entity->keypol)); if (read != ih_size(entity->keypol)) goto error_free_entity; } /* Unpack all item bodies. */ for (pos->item = 0; pos->item < num; pos->item++) { if (node40_fetch(entity, pos, &place)) goto error_free; if (place.plug->repair->unpack) { /* Unpack body. */ if (objcall(&place, repair->unpack, stream)) goto error_free_entity; } else { void *ib = node40_ib_at(entity, pos->item); uint32_t len = node40_len(entity, &place.pos); /* Do not unpack body. */ if (aal_stream_read(stream, ib, len) != (int32_t)len) goto error_free_entity; } } return entity; error_free_entity: aal_error("Can't unpack the node (%llu). " "Stream is over?", block->nr); error_free: aal_free(entity); return NULL; } /* Prepare text node description and push it into specified @stream. */ void node40_print(reiser4_node_t *entity, aal_stream_t *stream, uint32_t start, uint32_t count, uint16_t options) { void *ih; char *key; pos_t pos; uint8_t pol; uint8_t level; uint32_t last, num; reiser4_place_t place; aal_assert("vpf-023", entity != NULL); aal_assert("umka-457", stream != NULL); level = node40_get_level(entity); /* Print node header. */ aal_stream_format(stream, "NODE (%llu) LEVEL=%u ITEMS=%u " "SPACE=%u MKFS ID=0x%x FLUSH=0x%llx\n", entity->block->nr, level, node40_items(entity), node40_space(entity), nh_get_mkfs_id(entity), nh_get_flush_id(entity)); pos.unit = MAX_UINT32; if (start == MAX_UINT32) start = 0; num = node40_items(entity); if (node40_count_valid(entity)) { last = num; } else { last = node40_estimate_count(entity); if (last > nh_get_num_items(entity)) last = nh_get_num_items(entity); } if (count != MAX_UINT32 && last > start + count) last = start + count; pol = entity->keypol; /* Loop through the all items */ for (pos.item = start; pos.item < last; pos.item++) { if (pos.item) { aal_stream_format(stream, "----------------------------" "------------------------------------" "--------------\n"); } place.plug = NULL; node40_fetch(entity, &pos, &place); ih = node40_ih_at(entity, pos.item); key = print_key(node40_core, &place.key); aal_stream_format(stream, "#%u%s %s (%s): [%s] OFF=%u, " "LEN=%u, flags=0x%x", pos.item, pos.item >= num ? "D" : " ", place.plug ? reiser4_igname[place.plug->p.id.group] : "UNKN", place.plug ? place.plug->p.label : "UNKN", key, ih_get_offset(ih, pol), place.len, ih_get_flags(ih, pol)); /* Printing item by means of calling item print method if it is implemented. If it is not, then print common item information like key, len, etc. */ if (place.plug && place.plug->debug->print && place.body - entity->block->data + place.len < entity->block->size) { objcall(&place, debug->print, stream, options); } else { aal_stream_format(stream, "\n"); } } aal_stream_format(stream, "============================" "====================================" "==============\n"); } #endif reiser4progs-1.0.7.orig/plugin/node/node40/Makefile.in0000644000175000017500000004643511134132276020323 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/node/node40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libnode40_minimal_la_LIBADD = am__libnode40_minimal_la_SOURCES_DIST = node40.c node40_repair.c \ node40.h node40_repair.h am__objects_1 = libnode40_minimal_la-node40.lo \ libnode40_minimal_la-node40_repair.lo @ENABLE_MINIMAL_TRUE@am_libnode40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libnode40_minimal_la_OBJECTS = $(am_libnode40_minimal_la_OBJECTS) libnode40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libnode40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libnode40_minimal_la_rpath = libnode40_static_la_LIBADD = am__objects_2 = libnode40_static_la-node40.lo \ libnode40_static_la-node40_repair.lo am_libnode40_static_la_OBJECTS = $(am__objects_2) libnode40_static_la_OBJECTS = $(am_libnode40_static_la_OBJECTS) libnode40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libnode40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libnode40_minimal_la_SOURCES) \ $(libnode40_static_la_SOURCES) DIST_SOURCES = $(am__libnode40_minimal_la_SOURCES_DIST) \ $(libnode40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ node40_sources = node40.c node40_repair.c node40.h node40_repair.h STATIC_LIBS = libnode40-static.la libnode40_static_la_SOURCES = $(node40_sources) libnode40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libnode40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libnode40_minimal_la_SOURCES = $(node40_sources) @ENABLE_MINIMAL_TRUE@libnode40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/node/node40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/node/node40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libnode40-minimal.la: $(libnode40_minimal_la_OBJECTS) $(libnode40_minimal_la_DEPENDENCIES) $(libnode40_minimal_la_LINK) $(am_libnode40_minimal_la_rpath) $(libnode40_minimal_la_OBJECTS) $(libnode40_minimal_la_LIBADD) $(LIBS) libnode40-static.la: $(libnode40_static_la_OBJECTS) $(libnode40_static_la_DEPENDENCIES) $(libnode40_static_la_LINK) $(libnode40_static_la_OBJECTS) $(libnode40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnode40_minimal_la-node40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnode40_minimal_la-node40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnode40_static_la-node40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnode40_static_la-node40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libnode40_minimal_la-node40.lo: node40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnode40_minimal_la_CFLAGS) $(CFLAGS) -MT libnode40_minimal_la-node40.lo -MD -MP -MF $(DEPDIR)/libnode40_minimal_la-node40.Tpo -c -o libnode40_minimal_la-node40.lo `test -f 'node40.c' || echo '$(srcdir)/'`node40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libnode40_minimal_la-node40.Tpo $(DEPDIR)/libnode40_minimal_la-node40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node40.c' object='libnode40_minimal_la-node40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnode40_minimal_la_CFLAGS) $(CFLAGS) -c -o libnode40_minimal_la-node40.lo `test -f 'node40.c' || echo '$(srcdir)/'`node40.c libnode40_minimal_la-node40_repair.lo: node40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnode40_minimal_la_CFLAGS) $(CFLAGS) -MT libnode40_minimal_la-node40_repair.lo -MD -MP -MF $(DEPDIR)/libnode40_minimal_la-node40_repair.Tpo -c -o libnode40_minimal_la-node40_repair.lo `test -f 'node40_repair.c' || echo '$(srcdir)/'`node40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libnode40_minimal_la-node40_repair.Tpo $(DEPDIR)/libnode40_minimal_la-node40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node40_repair.c' object='libnode40_minimal_la-node40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnode40_minimal_la_CFLAGS) $(CFLAGS) -c -o libnode40_minimal_la-node40_repair.lo `test -f 'node40_repair.c' || echo '$(srcdir)/'`node40_repair.c libnode40_static_la-node40.lo: node40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnode40_static_la_CFLAGS) $(CFLAGS) -MT libnode40_static_la-node40.lo -MD -MP -MF $(DEPDIR)/libnode40_static_la-node40.Tpo -c -o libnode40_static_la-node40.lo `test -f 'node40.c' || echo '$(srcdir)/'`node40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libnode40_static_la-node40.Tpo $(DEPDIR)/libnode40_static_la-node40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node40.c' object='libnode40_static_la-node40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnode40_static_la_CFLAGS) $(CFLAGS) -c -o libnode40_static_la-node40.lo `test -f 'node40.c' || echo '$(srcdir)/'`node40.c libnode40_static_la-node40_repair.lo: node40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnode40_static_la_CFLAGS) $(CFLAGS) -MT libnode40_static_la-node40_repair.lo -MD -MP -MF $(DEPDIR)/libnode40_static_la-node40_repair.Tpo -c -o libnode40_static_la-node40_repair.lo `test -f 'node40_repair.c' || echo '$(srcdir)/'`node40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libnode40_static_la-node40_repair.Tpo $(DEPDIR)/libnode40_static_la-node40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node40_repair.c' object='libnode40_static_la-node40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnode40_static_la_CFLAGS) $(CFLAGS) -c -o libnode40_static_la-node40_repair.lo `test -f 'node40_repair.c' || echo '$(srcdir)/'`node40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/node/node40/node40.c0000644000175000017500000013204211131470543017500 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. node40.c -- reiser4 node plugin functions. */ #include "node40.h" #include "node40_repair.h" reiser4_core_t *node40_core = NULL; /* Return item header void pointer by pos. As node40 is able to work with different item types (short keys, large ones), we do not use item struct at all. But prefer to use raw pointers along with macros for working with them. */ void *node40_ih_at(reiser4_node_t *entity, uint32_t pos) { void *ih = entity->block->data + entity->block->size; return (ih - (ih_size(entity->keypol) * (pos + 1))); } #define node40_ib_by_ih(entity, ih) \ entity->block->data + ih_get_offset(ih, entity->keypol) /* Retutrn item body by pos */ void *node40_ib_at(reiser4_node_t *entity, uint32_t pos) { void *ih = node40_ih_at(entity, pos); return node40_ib_by_ih(entity, ih); } /* Returns node level field. */ uint8_t node40_get_level(reiser4_node_t *entity) { aal_assert("umka-1116", entity != NULL); return nh_get_level((reiser4_node_t *)entity); } reiser4_node_t *node40_prepare(aal_block_t *block, reiser4_key_plug_t *kplug) { reiser4_node_t *entity; aal_assert("umka-2376", kplug != NULL); aal_assert("umka-2375", block != NULL); if (!(entity = aal_calloc(sizeof(*entity), 0))) return NULL; entity->kplug = kplug; entity->block = block; entity->plug = &node40_plug; entity->keypol = plugcall(kplug, bodysize); return entity; } #ifndef ENABLE_MINIMAL /* Functions for making node dirty, cleann and for check if it is dirty. This is used in all node modifying functions, etc. */ void node40_mkdirty(reiser4_node_t *entity) { aal_assert("umka-3016", entity != NULL); entity->block->dirty = 1; } void node40_mkclean(reiser4_node_t *entity) { aal_assert("umka-3017", entity != NULL); entity->block->dirty = 0; } int node40_isdirty(reiser4_node_t *entity) { aal_assert("umka-3018", entity != NULL); return entity->block->dirty; } static uint32_t node40_get_state(reiser4_node_t *entity) { aal_assert("umka-2091", entity != NULL); return entity->state; } static void node40_set_state(reiser4_node_t *entity, uint32_t state) { aal_assert("umka-2092", entity != NULL); entity->state = state; } /* Returns node mkfs stamp. */ static uint32_t node40_get_mstamp(reiser4_node_t *entity) { aal_assert("umka-1127", entity != NULL); return nh_get_mkfs_id(entity); } /* Returns node flush stamp. */ static uint64_t node40_get_fstamp(reiser4_node_t *entity) { aal_assert("vpf-645", entity != NULL); return nh_get_flush_id(entity); } /* Initializes node of the given @level on the @block with key plugin @kplug. Returns initialized node instance. */ static reiser4_node_t *node40_init(aal_block_t *block, uint8_t level, reiser4_key_plug_t *kplug) { reiser4_node_t *entity; aal_assert("umka-2374", block != NULL); aal_assert("vpf-1417", kplug != NULL); if (!(entity = node40_prepare(block, kplug))) return NULL; nh_set_num_items(entity, 0); nh_set_level(entity, level); nh_set_magic(entity, NODE40_MAGIC); nh_set_pid(entity, node40_plug.p.id.id); nh_set_free_space_start(entity, sizeof(node40_header_t)); nh_set_free_space(entity, block->size - sizeof(node40_header_t)); return entity; } /* Saves node to device */ static errno_t node40_sync(reiser4_node_t *entity) { errno_t res; aal_assert("umka-1552", entity != NULL); if ((res = aal_block_write(entity->block))) return res; node40_mkclean(entity); return 0; } #endif /* Closes node by means of closing its block */ static errno_t node40_fini(reiser4_node_t *entity) { aal_assert("umka-825", entity != NULL); aal_block_free(entity->block); entity->plug = NULL; aal_free(entity); return 0; } /* Returns item number in passed node entity. Used for any loops through the all node items. */ uint32_t node40_items(reiser4_node_t *entity) { aal_assert("vpf-018", entity != NULL); return nh_get_num_items(entity); } #ifndef ENABLE_MINIMAL /* Returns node free space. */ uint16_t node40_space(reiser4_node_t *entity) { aal_assert("vpf-020", entity != NULL); return nh_get_free_space(entity); } /* Sets node make stamp. */ static void node40_set_mstamp(reiser4_node_t *entity, uint32_t stamp) { aal_assert("vpf-644", entity != NULL); nh_set_mkfs_id(entity, stamp); node40_mkdirty(entity); } /* Returns node flush stamp */ static void node40_set_fstamp(reiser4_node_t *entity, uint64_t stamp) { aal_assert("vpf-643", entity != NULL); nh_set_flush_id(entity, stamp); node40_mkdirty(entity); } /* Set new node level to @level. */ static void node40_set_level(reiser4_node_t *entity, uint8_t level) { aal_assert("umka-1864", entity != NULL); nh_set_level(entity, level); node40_mkdirty(entity); } #endif static uint16_t node40_len_by_ih(reiser4_node_t *entity, void *ih, pos_t *pos, uint16_t items) { uint8_t pol = entity->keypol; /* Item length is calculated as next item offset minus current item offset. If we're on the last item then we use free space start instead.*/ if (pos->item + 1 == items) { return nh_get_free_space_start(entity) - ih_get_offset(ih, pol); } else { return ih_get_offset((ih - ih_size(pol)), pol) - ih_get_offset(ih, pol); } } /* Returns length of item at pos. */ uint16_t node40_len(reiser4_node_t *entity, pos_t *pos) { void *ih; aal_assert("umka-942", pos != NULL); aal_assert("vpf-037", entity != NULL); ih = node40_ih_at(entity, pos->item); return node40_len_by_ih(entity, ih, pos, nh_get_num_items(entity)); } /* Open the node on the given @block with the given key plugin @kplug. Returns initialized node instance. */ static reiser4_node_t *node40_open(aal_block_t *block, reiser4_key_plug_t *kplug) { reiser4_node_t *entity; aal_assert("vpf-1415", kplug != NULL); aal_assert("vpf-1416", block != NULL); if (!(entity = node40_prepare(block, kplug))) return NULL; /* Check the magic. */ if (nh_get_magic(entity) != NODE40_MAGIC) { aal_free(entity); return NULL; } return entity; } static void node40_get_key_by_ih(reiser4_node_t *entity, void *ih, reiser4_key_t *key) { uint32_t size; key->plug = entity->kplug; size = key_size(entity->keypol); aal_memcpy(key->body, ih, size); } /* Returns key at passed @pos. */ static errno_t node40_get_key(reiser4_node_t *entity, pos_t *pos, reiser4_key_t *key) { void *ih; aal_assert("umka-821", key != NULL); aal_assert("umka-939", pos != NULL); aal_assert("umka-2333", entity != NULL); ih = node40_ih_at(entity, pos->item); /* Allow to fetch the item at pos > item count; but prevent segfault on errors. */ aal_assert("vpf-1661", ih > entity->block->data); node40_get_key_by_ih(entity, ih, key); return 0; } /* Initializes @place at @pos. Fetches all item fields. */ errno_t node40_fetch(reiser4_node_t *entity, pos_t *pos, reiser4_place_t *place) { void *ih; aal_assert("umka-1813", pos != NULL); aal_assert("umka-1602", place != NULL); aal_assert("umka-1631", entity != NULL); ih = node40_ih_at(entity, pos->item); /* Allow to fetch the item at pos > item count; but prevent segfault on errors. */ aal_assert("vpf-1660", ih > entity->block->data); /* Initializing other fields. */ place->pos = *pos; place->node = entity; place->body = node40_ib_by_ih(entity, ih); place->len = node40_len_by_ih(entity, ih, pos, nh_get_num_items(entity)); /* Getting item key. */ node40_get_key_by_ih(entity, ih, &place->key); /* Initializing item's plugin. */ place->plug = (reiser4_item_plug_t *) node40_core->factory_ops.ifind(ITEM_PLUG_TYPE, ih_get_pid(ih, entity->keypol)); if (!place->plug) { aal_error("Can't find item plugin by its id 0x%x.", ih_get_pid(ih, entity->keypol)); return -EINVAL; } /* Init item specific stuff. */ if (place->plug->balance->init) { place->plug->balance->init(place); } else { /* Zero all item-specific fields here. */ place->off = 0; } return 0; } #ifndef ENABLE_MINIMAL /* Retutns item overhead for this node format. Widely used in modification and estimation routines. */ static uint16_t node40_overhead(reiser4_node_t *entity) { return ih_size(entity->keypol); } /* Returns maximal size of item possible for passed node instance */ static uint16_t node40_maxspace(reiser4_node_t *entity) { aal_assert("vpf-016", entity != NULL); /* Maximal space is node size minus node header and minus item header. */ return (entity->block->size - sizeof(node40_header_t) - ih_size(entity->keypol)); } /* Calculates size of a region denoted by @pos and @count. This is used by node40_copy(), node40_remove(), etc. */ uint32_t node40_size(reiser4_node_t *entity, pos_t *pos, uint32_t count) { void *ih; uint32_t len; aal_assert("umka-3032", pos != NULL); aal_assert("umka-3031", entity != NULL); ih = node40_ih_at(entity, pos->item); if (pos->item + count < nh_get_num_items(entity)) { uint32_t offset = (ih_size(entity->keypol) * count); len = ih_get_offset((ih - offset), entity->keypol); } else { len = nh_get_free_space_start(entity); } return len - ih_get_offset(ih, entity->keypol); } /* Makes expand passed @node by @len in odrer to make room for insert new items/units. This function is used by insert and shift methods. */ errno_t node40_expand(reiser4_node_t *entity, pos_t *pos, uint32_t len, uint32_t count) { void *ih; int insert; uint32_t item; uint32_t items; uint32_t offset; uint32_t headers; aal_assert("vpf-006", pos != NULL); aal_assert("umka-817", entity != NULL); if (len == 0) return 0; headers = count * ih_size(entity->keypol); items = nh_get_num_items(entity); insert = (pos->unit == MAX_UINT32); /* Getting real pos of the item to be updated. */ item = pos->item + !insert; ih = node40_ih_at(entity, item); /* If item pos is inside the range [0..count - 1], we should perform the data moving and offset upadting. */ if (item < items) { void *src, *dst; uint32_t i, size; /* Moving items bodies */ offset = ih_get_offset(ih, entity->keypol); src = entity->block->data + offset; dst = entity->block->data + offset + len; size = nh_get_free_space_start(entity) - offset; aal_memmove(dst, src, size); /* Updating item offsets. */ for (i = 0; i < items - item; i++) { ih_inc_offset(ih, len, entity->keypol); ih -= ih_size(entity->keypol); } /* If this is the insert new item mode, we should prepare the room for new item header and set it up. */ if (insert) { src = node40_ih_at(entity, items - 1); dst = node40_ih_at(entity, items - 1 + count); size = ih_size(entity->keypol) * (items - item); aal_memmove(dst, src, size); } ih = node40_ih_at(entity, item); } else { offset = nh_get_free_space_start(entity); } /* Updating node's free space and free space start fields. */ nh_inc_free_space_start(entity, len); nh_dec_free_space(entity, len); if (insert) { /* Setting up the fields of new item. */ ih_set_flags(ih, 0, entity->keypol); ih_set_offset(ih, offset, entity->keypol); /* Setting up node header. */ nh_inc_num_items(entity, count); nh_dec_free_space(entity, headers); } node40_mkdirty(entity); return 0; } /* General node40 cutting function. It is used from shift, remove, etc. It removes an amount of items specified by @count and shrinks node. */ errno_t node40_shrink(reiser4_node_t *entity, pos_t *pos, uint32_t len, uint32_t count) { uint32_t size; void *cur, *end; void *src, *dst; uint32_t headers; uint32_t i, items; aal_assert("umka-1800", count > 0); aal_assert("umka-1799", pos != NULL); aal_assert("umka-1798", entity != NULL); items = nh_get_num_items(entity); end = node40_ih_at(entity, items - 1); if (pos->unit == MAX_UINT32) { headers = count * ih_size(entity->keypol); /* Moving item header and bodies if it is needed. */ if (pos->item + count < items) { /* Moving item bodies */ dst = node40_ib_at(entity, pos->item); src = dst + len; /* Remove operation in broken nodes cannot rely on free_space, do not use node40_size here. */ size = end - src; aal_memmove(dst, src, size); /* Moving item headers. */ src = node40_ih_at(entity, items - 1); dst = src + headers; size = (items - (pos->item + count)) * ih_size(entity->keypol); aal_memmove(dst, src, size); /* Updating item offsets. */ cur = node40_ih_at(entity, pos->item); for (i = pos->item; i < items - count; i++) { ih_dec_offset(cur, len, entity->keypol); cur -= ih_size(entity->keypol); } } /* Updating node header */ nh_dec_num_items(entity, count); nh_inc_free_space(entity, (len + headers)); } else { void *ih; uint32_t ilen; ih = node40_ih_at(entity, pos->item); ilen = node40_len_by_ih(entity, ih, pos, items); /* Moving item bodies */ src = node40_ib_at(entity, pos->item) + ilen; /* Remove operation in broken nodes cannot rely on free_space, use len instead. */ dst = src - len; size = end - src; aal_memmove(dst, src, size); /* Updating header offsets */ cur = ih - ih_size(entity->keypol); while (cur >= end) { ih_dec_offset(cur, len, entity->keypol); cur -= ih_size(entity->keypol); } /* Updating node header and item header */ nh_inc_free_space(entity, len); } nh_dec_free_space_start(entity, len); node40_mkdirty(entity); return 0; } /* Makes copy of @count items from @src_entity to @dst_entity */ errno_t node40_copy(reiser4_node_t *dst_entity, pos_t *dst_pos, reiser4_node_t *src_entity, pos_t *src_pos, uint32_t count) { void *body; uint32_t pol; uint32_t size; void *ih, *end; void *src, *dst; uint32_t items; uint32_t fss, i; uint32_t offset; uint32_t headers; pol = dst_entity->keypol; headers = count * ih_size(pol); items = nh_get_num_items(dst_entity); fss = nh_get_free_space_start(dst_entity); size = node40_size(src_entity, src_pos, count); /* Copying item bodies from src node to dst one. */ src = node40_ib_at(src_entity, src_pos->item); if (dst_pos->item < items - count) { body = node40_ib_at(dst_entity, dst_pos->item); } else { body = dst_entity->block->data + fss - size; } aal_memcpy(body, src, size); /* Copying item headers from src node to dst one. */ src = node40_ih_at(src_entity, src_pos->item + count - 1); dst = node40_ih_at(dst_entity, dst_pos->item + count - 1); aal_memcpy(dst, src, headers); /* Updating item headers in dst node. */ end = node40_ih_at(dst_entity, items - 1); ih = dst + (ih_size(pol) * (count - 1)); offset = (body - dst_entity->block->data); for (i = 0; i < count; i++) { uint32_t old; old = ih_get_offset(ih, pol); ih_set_offset(ih, offset, pol); if (ih == end) { offset += fss - ih_get_offset(ih, pol); } else { offset += ih_get_offset((ih - ih_size(pol)), pol) - old; } ih -= ih_size(pol); } node40_mkdirty(dst_entity); return 0; } /* Mode modifying fucntion. */ int64_t node40_modify(reiser4_node_t *entity, pos_t *pos, trans_hint_t *hint, modify_func_t modify_func) { void *ih; int64_t res; uint32_t pol; uint32_t len; int64_t write; reiser4_place_t place; len = hint->len + hint->overhead; /* Expand node if @len greater than zero. */ if ((res = node40_expand(entity, pos, len, 1))) { aal_error("Can't expand node for insert one " "more item/unit."); return res; } pol = entity->keypol; ih = node40_ih_at(entity, pos->item); /* Updating item header if we want to insert new item. */ if (pos->unit == MAX_UINT32) { ih_set_pid(ih, hint->plug->p.id.id, pol); aal_memcpy(ih, hint->offset.body, key_size(pol)); } /* Preparing place for calling item plugin with them. */ if (node40_fetch(entity, pos, &place)) return -EINVAL; /* Inserting units into @place. */ if ((write = modify_func(&place, hint)) < 0) { aal_error("Can't insert unit to node %llu, item %u.", entity->block->nr, place.pos.item); return write; } /* Updating item's key if we insert new item or if we insert unit into leftmost postion. */ if (pos->unit == 0) aal_memcpy(ih, place.key.body, key_size(pol)); return write; } static errno_t node40_insert(reiser4_node_t *entity, pos_t *pos, trans_hint_t *hint) { modify_func_t ins_func; aal_assert("umka-2448", pos != NULL); aal_assert("umka-1814", hint != NULL); aal_assert("umka-818", entity != NULL); ins_func = hint->plug->object->insert_units; return node40_modify(entity, pos, hint, ins_func); } static int64_t node40_write(reiser4_node_t *entity, pos_t *pos, trans_hint_t *hint) { modify_func_t write_func; aal_assert("umka-2449", pos != NULL); aal_assert("umka-2450", hint != NULL); aal_assert("umka-2451", entity != NULL); write_func = hint->plug->object->write_units; return node40_modify(entity, pos, hint, write_func); } /* Truncates node at @pos. Needed for tail conversion. */ static int64_t node40_trunc(reiser4_node_t *entity, pos_t *pos, trans_hint_t *hint) { void *ih; uint32_t pol; uint32_t len; int64_t count; reiser4_place_t place; aal_assert("umka-2462", pos != NULL); aal_assert("umka-2463", entity != NULL); pol = entity->keypol; /* Getting item at @pos */ if (node40_fetch(entity, pos, &place)) return -EINVAL; /* Truncating item. */ count = objcall(&place, object->trunc_units, hint); if (count < 0) return count; len = hint->overhead + hint->len; /* Shrinking node and and update key. */ if (len > 0) { errno_t res; uint32_t number; number = count; place.pos.unit = 0; if (len >= place.len) { /* It seems that len cannot be > than place.len now. */ number = 1; place.pos.unit = MAX_UINT32; len = place.len; } if ((res = node40_shrink(entity, &place.pos, len, number))) { return res; } if (len < place.len) { ih = node40_ih_at(entity, place.pos.item); aal_memcpy(ih, place.key.body, key_size(pol)); } } else { ih = node40_ih_at(entity, place.pos.item); aal_memcpy(ih, place.key.body, key_size(pol)); } return count; } /* This function removes item/unit from the node at specified @pos */ errno_t node40_remove(reiser4_node_t *entity, pos_t *pos, trans_hint_t *hint) { reiser4_place_t place; uint32_t count; uint32_t units; uint32_t len; errno_t res; aal_assert("umka-987", pos != NULL); aal_assert("umka-986", entity != NULL); /* Check if we remove some number of whole items, or units inside particular item. */ if (pos->unit == MAX_UINT32) { pos_t walk; /* Calculating amount of bytes removed item occupie. Node will be shrinked by this value. */ len = node40_size(entity, pos, hint->count); count = hint->count; if (hint->region_func) { POS_INIT(&walk, pos->item, MAX_UINT32); /* Calling layout function with @hint->region_func for each removed item in order to let higher levels know that some region is released. */ for (; walk.item < pos->item + count; walk.item++) { if (node40_fetch(entity, &walk, &place)) return -EINVAL; /* Not for nodeprt items. */ if (place.plug->p.id.group == PTR_ITEM) continue; /* Only if item has a block layout. */ if (!place.plug->object->layout) continue; objcall(&place, object->layout, hint->region_func, hint->data); } } } else { /* Here we init @count (number of items to be removed) to 1, as here are possible only two cases: (1) Remove item as it get empty (the case when @count is needed). (2) Shrink item at @place.pos.item by @len and @count is ignored. */ if (node40_fetch(entity, pos, &place)) return -EINVAL; units = objcall(&place, balance->units); count = 1; if (place.plug->object->remove_units) { /* Removing units from the item pointed by @pos. */ if ((res = objcall(&place, object->remove_units, hint))) return res; } /* Check if item is empty. If so, we remove it too. */ if ((len = hint->len + hint->overhead) >= place.len || units == hint->count) { /* Forcing node40_shrink() to remove whole item, as we have removed all units from it.*/ len = place.len; pos->unit = MAX_UINT32; } else { uint32_t pol = entity->keypol; /* Updating items key if leftmost unit was changed and item will not be removed as it is not yet empty. */ if (pos->unit == 0) { void *ih = node40_ih_at(entity, pos->item); aal_memcpy(ih, place.key.body, key_size(pol)); } } } /* Shrinking node by @hint->len. Item @place.pos will be removed if place.pos points to whole item (unit is MAX_UINT32). */ return node40_shrink(entity, pos, len, count); } /* Fuses two mergeable items if they lie in the same node side by side. This is needed for fsck if it discovered, that two items are mergeable and lie in the same node (due to some corruption or fail) it will merge them. */ static errno_t node40_merge(reiser4_node_t *entity, pos_t *left_pos, pos_t *right_pos) { errno_t res; uint32_t pol; int32_t delta; uint32_t items; void *left, *right; reiser4_place_t left_place; reiser4_place_t right_place; aal_assert("umka-2682", entity != NULL); aal_assert("umka-2683", left_pos != NULL); aal_assert("umka-2684", right_pos != NULL); pol = entity->keypol; items = nh_get_num_items(entity); aal_assert("umka-2685", (left_pos->item < items && right_pos->item < items)); /* Check is items lie side by side. */ delta = left_pos->item - right_pos->item; if (aal_abs(delta) > 1) { aal_error("Can't merge items which lie not side " "by side each other."); return -EINVAL; } /* First stage. Fusing item bodies: we should call some item method, which will take care about item overhead, etc. */ if (node40_fetch(entity, left_pos, &left_place)) { aal_error("Can't fetch the left item on fusing."); return -EINVAL; } if (node40_fetch(entity, right_pos, &right_place)) { aal_error("Can't fetch the right item on fusing."); return -EINVAL; } aal_assert("umka-2686", plug_equal(left_place.plug, right_place.plug)); /* Check if item needs some special actions to merge (like eliminate header). If so, merge items. */ if (left_place.plug->balance->merge) { int32_t space; /* Returned space is released space in node and it should be counted in node header. */ if ((space = objcall(&left_place, balance->merge, &right_place))) { right_pos->unit = 0; /* Shrink the right item. */ if ((res = node40_shrink(entity, right_pos, space, 1))) return res; } } /* The second stage: remove the right item header. */ left = node40_ih_at(entity, left_pos->item); right = node40_ih_at(entity, right_pos->item); if (right_pos->item < items - 1) { /* Move all headers after right_pos to the right. */ delta = (items - right_pos->item - 1) * ih_size(pol); aal_memmove(left - delta, right - delta, delta); } nh_dec_num_items(entity, 1); nh_inc_free_space(entity, ih_size(pol)); /* Now make node dirty. */ node40_mkdirty(entity); return 0; } /* Updates key at @pos by specified @key */ static errno_t node40_set_key(reiser4_node_t *entity, pos_t *pos, reiser4_key_t *key) { void *ih; uint32_t key_size; aal_assert("umka-819", key != NULL); aal_assert("umka-944", pos != NULL); aal_assert("umka-811", pos->item < node40_items(entity)); aal_assert("umka-809", entity != NULL); ih = node40_ih_at(entity, pos->item); key_size = key_size(entity->keypol); aal_memcpy(ih, key->body, key_size); node40_mkdirty(entity); return 0; } #endif #ifdef ENABLE_SHORT_KEYS /* Helper callback for comparing two keys. This is used by node lookup. */ static int cb_comp_key3(void *ih0, uint32_t pos, void *k2, void *data) { reiser4_key_t *key2; void *key1; key1 = ih0 - sizeof(item_header3_t) * pos; key2 = (reiser4_key_t *)k2; return plugcall(key2->plug, compraw, key1, key2->body); } #endif #ifdef ENABLE_LARGE_KEYS /* Helper callback for comparing two keys. This is used by node lookup. */ static int cb_comp_key4(void *ih0, uint32_t pos, void *k2, void *data) { reiser4_key_t *key2; void *key1; /* Key policy is given by @data. */ key1 = ih0 - sizeof(item_header4_t) * pos; key2 = (reiser4_key_t *)k2; return plugcall(key2->plug, compraw, key1, key2->body); } #endif /* Makes search inside the specified node @entity for @key and stores the result into @pos. This function returns 1 if key is found and 0 otherwise. */ static lookup_t node40_lookup(reiser4_node_t *entity, lookup_hint_t *hint, lookup_bias_t bias, pos_t *pos) { aux_comp_func_t func; void *ih; aal_assert("umka-478", pos != NULL); aal_assert("umka-472", hint != NULL); aal_assert("umka-470", entity != NULL); aal_assert("umka-3089", hint->key != NULL); aal_assert("umka-567", hint->key->body != NULL); #if defined(ENABLE_SHORT_KEYS) && defined(ENABLE_LARGE_KEYS) func = (entity->keypol == 3) ? cb_comp_key3 : cb_comp_key4; #elif defined(ENABLE_SHORT_KEYS) func = cb_comp_key3; #elif defined(ENABLE_LARGE_KEYS) func = cb_comp_key4; #elif func = NULL; #endif ih = node40_ih_at((reiser4_node_t *)entity, 0); switch (aux_bin_search(ih, nh_get_num_items(entity), hint->key, func, NULL, &pos->item)) { case 1: return PRESENT; case 0: return ABSENT; default: return -EIO; } } #ifndef ENABLE_MINIMAL /* Checks if @place is splittable. */ static int node40_splittable(reiser4_place_t *place, shift_hint_t *hint) { /* Check if item's shift_units() and prep_shift() method are implemented. */ if (!place->plug->balance->shift_units || !place->plug->balance->prep_shift) { return 0; } /* We can't shift units from items with one unit. */ if (!place->plug->balance->units) return 0; return (objcall(place, balance->units) > 0); } /* Initializes place by border item data (leftmost or rightmost). */ static errno_t node40_border(reiser4_node_t *entity, int left_border, reiser4_place_t *place) { uint32_t items; pos_t pos; aal_assert("umka-2669", place != NULL); aal_assert("umka-2670", entity != NULL); if ((items = nh_get_num_items(entity)) == 0) return -EINVAL; POS_INIT(&pos, (left_border ? 0 : items - 1), MAX_UINT32); return node40_fetch(entity, &pos, place); } /* Merges border items of the src and dst nodes. The behavior depends on the passed hint pointer. */ static errno_t node40_unite(reiser4_node_t *src_entity, reiser4_node_t *dst_entity, shift_hint_t *hint, int create) { pos_t pos; errno_t res; uint32_t pol; uint32_t len; uint32_t units; reiser4_place_t src_place; reiser4_place_t dst_place; uint32_t dst_items; uint32_t src_items; void *src_ih, *dst_ih; int left_shift, remove; aal_assert("umka-1624", hint != NULL); aal_assert("umka-1622", src_entity != NULL); aal_assert("umka-1623", dst_entity != NULL); pol = dst_entity->keypol; src_items = nh_get_num_items(src_entity); dst_items = nh_get_num_items(dst_entity); hint->units_bytes = node40_space(dst_entity); /* Nothing to move or not enough of space to moveat least one byte to @dst_entity. */ if (src_items == 0 || hint->units_bytes == 0) return 0; left_shift = (hint->control & SF_ALLOW_LEFT); /* We can't split the leftmost and rightmost items if they are the same insert point points to. */ if ((hint->control & SF_UPDATE_POINT) && hint->pos.unit == MAX_UINT32) { if ((left_shift && hint->pos.item == 0) || (!left_shift && hint->pos.item == src_items)) { return 0; } } /* Getting src item. */ if ((res = node40_border(src_entity, left_shift, &src_place))) return res; /* Items that do not implement prep_shift() and shift_units() methods cannot be splitted. */ if (!node40_splittable(&src_place, hint)) return 0; /* Checking if items are mergeable. */ if (dst_items > 0) { /* Getting dst item. */ if ((res = node40_border(dst_entity, !left_shift, &dst_place))) return res; /* Check if items has the same flags. If so, they can be tried to be merged. */ src_ih = node40_ih_at(src_entity, src_place.pos.item); dst_ih = node40_ih_at(dst_entity, dst_place.pos.item); if (ih_get_flags(src_ih, pol) != ih_get_flags(dst_ih, pol)) return 0; /* Check if we need to create new new item in @dst_entity in order to move data to it. */ if (left_shift) { hint->create = !node40_core->item_ops.mergeable(&dst_place, &src_place); } else { hint->create = !node40_core->item_ops.mergeable(&src_place, &dst_place); } } else { /* There are no items in dst node and we create new item in neighbour node anyway. */ hint->create = 1; } /* If items are not mergeable and we are in merge mode, we will not create new item in dst node. This mode is needed for mergeing two mergeable items when they lie in different nodes, and in such a way to prevent creating two mergeable items in the same node. */ if (hint->create != create) return 0; /* Calling item's prep_shift() method in order to estimate how many units may be shifted out. This method also updates unit component of insert point position. After this function is finish @units_bytes will contain real number of bytes to be shifted into neighbour item. */ if (hint->create) { uint32_t overhead; /* Getting node overhead in order to substract it from @units_bytes, that is from space allowed to be used. */ overhead = node40_overhead(dst_entity); /* There is not of enough free space in @dst_entity even to create an empty item in it. Getting out. */ if (hint->units_bytes <= overhead) return 0; /* Substract node overhead, that is item header. */ hint->units_bytes -= overhead; /* Making estimate how many units and bytes may be shifted. */ if (objcall(&src_place, balance->prep_shift, NULL, hint)) return -EINVAL; /* Updating item component of insert point if it was moved into neighbour item. */ if (hint->control & SF_UPDATE_POINT && hint->result & SF_MOVE_POINT) { hint->pos.item = 0; if (left_shift) hint->pos.item = dst_items; } /* Check if shift_units() may shift something at all. If no -- getting out of here. */ if (hint->units_number == 0) return 0; /* Prepare pos new item will be created at. */ POS_INIT(&pos, (left_shift ? dst_items : 0), MAX_UINT32); } else { /* The same for case when we will not create new item, but will shift units into existent one in neighbour node. */ if (objcall(&src_place, balance->prep_shift, &dst_place, hint)) return -EINVAL; if (hint->control & SF_UPDATE_POINT && hint->result & SF_MOVE_POINT) { hint->pos.item = 0; if (left_shift) hint->pos.item = dst_items - 1; } /* Check if shift_units() may shift something at all. If no -- getting out of here. */ if (hint->units_number == 0) return 0; /* Prepare pos, item will be expanded at. Items are mergeable, so we do not need to create new item in @dst_entity. We just need to expand existent dst item by @hint->units_bytes, thus unit component of @pos is set to 0.*/ POS_INIT(&pos, (left_shift ? dst_items - 1 : 0), 0); } /* Expanding node by @hint->units_bytes at @pos. */ if (node40_expand(dst_entity, &pos, hint->units_bytes, 1)) { aal_error("Can't expand node for shifting units into it."); return -EINVAL; } if (hint->create) { /* Setting up new item fields such as plugin id and key. */ dst_ih = node40_ih_at(dst_entity, pos.item); ih_set_pid(dst_ih, src_place.plug->p.id.id, pol); aal_memcpy(dst_ih, src_place.key.body, key_size(pol)); /* Copying old item flags to new created one. This is needed, because these flags may say, for instance, that item is already checked by fsck and thus, new item which is created by splitting old one should have the same flags. This is also needed, because items with different flags will not be merged and this will cause bad tree packing. */ src_ih = node40_ih_at(src_entity, src_place.pos.item); ih_set_flags(dst_ih, ih_get_flags(src_ih, pol), pol); } /* Initializing @dst_place after that item was expanded by expand() function. */ if (node40_fetch(dst_entity, &pos, &dst_place)) return -EINVAL; if (hint->create) { uint64_t offset; /* Setting dst item key offset into max key offset of src in order to let item shift method correctly calculate offset of this new item later. */ objcall(&src_place, balance->maxreal_key, &dst_place.key); offset = objcall(&dst_place.key, get_offset); objcall(&dst_place.key, set_offset, offset + 1); } /* Getting units number after shift. This is needed to detect correctly, that src item is empty after shift and may be removed. */ units = objcall(&src_place, balance->units); /* Shift units from @src_place to @dst_place. */ if (objcall(&src_place, balance->shift_units, &dst_place, hint)) { aal_error("Can't shift units."); return -EINVAL; } /* Set update flag to let high levels code know, that left delemiting keys should be updated. */ hint->update = 1; pos.item = src_place.pos.item; /* We will remove src item if it has became empty and insert point does not point it, that is next insert will not be dealing with it. */ remove = (hint->units_number == units); /* Updating item's keys after shift_unit() is finished. */ if (left_shift) { /* We do not need to update key of the src item which is going to be removed. */ if (!remove) { src_ih = node40_ih_at(src_entity, src_place.pos.item); aal_memcpy(src_ih, src_place.key.body, key_size(pol)); } } else { dst_ih = node40_ih_at(dst_entity, dst_place.pos.item); aal_memcpy(dst_ih, dst_place.key.body, key_size(pol)); } if (remove) { /* Like expand() does, shrink() will remove pointed item if unit component is MAX_UINT32 and shrink the item pointed by pos if unit component is not MAX_UINT32. */ len = src_place.len; pos.unit = MAX_UINT32; if (pos.item == hint->pos.item) hint->pos.unit = MAX_UINT32; /* As item will be removed, we should update item pos in hint properly. */ if (!(hint->result & SF_MOVE_POINT) && pos.item < hint->pos.item) { hint->pos.item--; } } else { /* Sources item will not be removed, because it is not yet empty, it will be just shrinked by @hint->units_bytes. */ pos.unit = 0; len = hint->units_bytes; } /* Shrining node by @len. */ return node40_shrink(src_entity, &pos, len, 1); } /* Predicts how many whole item may be shifted from @src_entity to @dst_entity. */ static errno_t node40_predict(reiser4_node_t *src_entity, reiser4_node_t *dst_entity, shift_hint_t *hint) { uint32_t pol; uint32_t flags; uint32_t space; void *cur, *end; uint32_t src_items; uint32_t dst_items; dst_items = nh_get_num_items(dst_entity); if (!(src_items = nh_get_num_items(src_entity))) return 0; pol = src_entity->keypol; space = node40_space(dst_entity); end = node40_ih_at(src_entity, src_items - 1); if (hint->control & SF_ALLOW_LEFT) { cur = node40_ih_at(src_entity, 0); } else { cur = node40_ih_at(src_entity, src_items - 1); } /* Estimating will be finished if @src_items value is exhausted or insert point is shifted out to neighbour node. */ flags = hint->control; while (!(hint->result & SF_MOVE_POINT) && src_items > 0) { uint32_t len; if (!(flags & SF_MOVE_POINT) && (flags & SF_ALLOW_RIGHT)) { if (hint->pos.item >= src_items) break; } /* Getting length of current item. */ if (cur == end) { len = nh_get_free_space_start(src_entity) - ih_get_offset(cur, pol); } else { len = ih_get_offset((cur - ih_size(pol)), pol) - ih_get_offset(cur, pol); } /* We go out if there is no enough free space to shift one more whole item. */ if (space < len + node40_overhead(dst_entity)) break; /* Check if we allowed to update insert point. If so, we will do so and loop probably will be breaked due to insert point moved to neihgbour node. Will continue until there is enough of space otherwise. */ if (flags & SF_UPDATE_POINT) { /* Updating insert point. */ if (flags & SF_ALLOW_LEFT) { if (hint->pos.item == 0) { pos_t pos; reiser4_place_t place; uint32_t units; /* If unit component if zero, we can shift whole item pointed by pos. */ POS_INIT(&pos, 0, MAX_UINT32); if (node40_fetch(src_entity, &pos, &place)) return -EINVAL; if (!place.plug->balance->units) return -EINVAL; units = objcall(&place, balance->units); /* Breaking if insert point reach the end of node. */ if (flags & SF_MOVE_POINT && (hint->pos.unit == MAX_UINT32 || hint->pos.unit >= units - 1)) { /* If we are permitted to move insetr point to the neigbour, we doing it. */ hint->result |= SF_MOVE_POINT; hint->pos.item = dst_items; } else break; } else { hint->pos.item--; } } else { /* Checking if insert point reach the end of node. */ if (hint->pos.item >= src_items - 1) { if (hint->pos.item == src_items - 1) { /* Updating insert point to be lie in neighbour node. */ if (flags & SF_MOVE_POINT && (hint->pos.unit == MAX_UINT32 || hint->pos.unit == 0)) { hint->result |= SF_MOVE_POINT; hint->pos.item = 0; } else { if (hint->pos.unit != MAX_UINT32) break; } } else { /* Insert point stays at the non existent item. So we should just update hint and break the loop. */ if (flags & SF_MOVE_POINT) { hint->result |= SF_MOVE_POINT; hint->pos.item = 0; } break; } } } } /* Updating some counters and shift hint */ hint->items_number++; hint->items_bytes += len; src_items--; dst_items++; space -= (len + node40_overhead(dst_entity)); cur += (flags & SF_ALLOW_LEFT ? -ih_size(pol) : ih_size(pol)); } /* After number of whole items was estimated, all free space will be used for estimating how many units may be shifted. */ hint->units_bytes = space; return 0; } /* Moves some amount of whole items from @src_entity to @dst_entity */ static errno_t node40_move(reiser4_node_t *src_entity, reiser4_node_t *dst_entity, shift_hint_t *hint) { errno_t res; pos_t src_pos; pos_t dst_pos; uint32_t src_items; uint32_t dst_items; aal_assert("umka-1620", hint != NULL); aal_assert("umka-1621", src_entity != NULL); aal_assert("umka-1619", dst_entity != NULL); dst_items = nh_get_num_items(dst_entity); src_items = nh_get_num_items(src_entity); /* Calculating how many items and how many bytes may be moved from @src_entity to @dst_entity. Calculating result is stored in @hint and will be used later. */ if ((res = node40_predict(src_entity, dst_entity, hint))) return res; /* No items to be shifted */ if (hint->items_number == 0 || hint->items_bytes == 0) return 0; /* Initializing src and dst positions, we will used them for moving items. They are initialized in different way for left and right shift. */ if (hint->control & SF_ALLOW_LEFT) { POS_INIT(&src_pos, 0, MAX_UINT32); POS_INIT(&dst_pos, dst_items, MAX_UINT32); } else { POS_INIT(&dst_pos, 0, MAX_UINT32); POS_INIT(&src_pos, src_items - hint->items_number, MAX_UINT32); } /* Expanding dst node in order to make room for new items and update node header. */ if ((res = node40_expand(dst_entity, &dst_pos, hint->items_bytes, hint->items_number))) { return res; } /* Copying items from src node to dst one */ if ((res = node40_copy(dst_entity, &dst_pos, src_entity, &src_pos, hint->items_number))) { return res; } /* Set update flag to let high levels code know, that left delemiting keys should be updated. */ hint->update = 1; /* Shrinking source node after items are copied from it into dst node. */ return node40_shrink(src_entity, &src_pos, hint->items_bytes, hint->items_number); } /* Performs shift of items and units from @src_entity to @dst_entity. Shift is performed in three passes: (1) This pass is supposed to merge two border items in @src_entity and @dst_entity if they are mergeable at all. This is needed to prevent creation of mergeable items in the same node during consequent shift of whole items. (2) Second pass is supposed to move as many whole items from @src_entity to @dst_entity as possible. That is exactly how many how does @dst_entity free space allow. This is actually main job of node40_shift() function. (3) And finally third pass should again merge two border items in @src_entity and @dst_entity after some number of whole items was moved to @dst_entity. It is needed to use the rest of space remaining after whole items shift in second pass. */ static errno_t node40_shift(reiser4_node_t *src_entity, reiser4_node_t *dst_entity, shift_hint_t *hint) { errno_t res; aal_assert("umka-2050", src_entity != NULL); aal_assert("umka-2051", dst_entity != NULL); /* First pass: if merge is allowed, try to merge border items; otheriwse, check that border items are not mergeable. */ if (hint->control & SF_ALLOW_MERGE) { if ((res = node40_unite(src_entity, dst_entity, hint, 0))) { aal_error("Can't merge two nodes during " "node shift operation."); return res; } } else { int left_shift; reiser4_place_t src_place; reiser4_place_t dst_place; /* Merge is not allowed by @hint->control flags. Check if border items are mergeable. If so, we can't move at least one whole item to @dst_entity, because we have to support all tree invariants and namely there should not be mergeable items in the same node. */ left_shift = (hint->control & SF_ALLOW_LEFT); /* Getting border items and checking if they are mergeable. */ if ((res = node40_border(src_entity, left_shift, &src_place))) return res; if ((res = node40_border(dst_entity, !left_shift, &dst_place))) return res; if (node40_core->item_ops.mergeable(&src_place, &dst_place)) return 0; } /* Check if insert point is moved to @dst_entity. If so then shift is finished. */ if (hint->result & SF_MOVE_POINT) return 0; /* Second pass is started here. Moving some amount of whole items from @src_entity to @dst_entity. */ if ((res = node40_move(src_entity, dst_entity, hint))) { aal_error("Can't move items from the numde %llu to %llu.", src_entity->block->nr, dst_entity->block->nr); return res; } /* Checking if insert point was moved into @dst_entity. If so then shift gets out. */ if (hint->result & SF_MOVE_POINT) return 0; /* Third pass is started here. Merges border items with ability to create new item in the @dst_entity. Here our objective is to shift into neighbour node as many units as possible and thus, to fill it up. */ if (hint->control & SF_ALLOW_MERGE) { if ((res = node40_unite(src_entity, dst_entity, hint, 1))) { aal_error("Can't unite two nodes during" "node shift operation."); return res; } } /* Here is handling the case when insert point is moved to the @dst_entity, but nothing was actually shifted because old insert point was at rightmost node position (last item unexistent unit). Thus, we should set insert point unit component to MAX_UINT32 and thus, to let code on higher abstraction levels know, that unit insert operation should be converted to item insert (create) one. */ if (hint->control & SF_UPDATE_POINT && hint->result & SF_MOVE_POINT && hint->units_number == 0 && hint->create) { hint->pos.unit = MAX_UINT32; } return 0; } void node40_set_flags(reiser4_node_t *entity, uint32_t pos, uint16_t flags) { aal_assert("vpf-1535", node40_items(entity) > pos); ih_set_flags(node40_ih_at(entity, pos), flags, entity->keypol); node40_mkdirty(entity); } uint16_t node40_get_flags(reiser4_node_t *entity, uint32_t pos) { aal_assert("vpf-1536", node40_items(entity) > pos); return ih_get_flags(node40_ih_at(entity, pos), entity->keypol); } #endif reiser4_node_plug_t node40_plug = { .p = { .id = {NODE_REISER40_ID, 0, NODE_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "node40", .desc = "Node plugin.", #endif }, .open = node40_open, .fini = node40_fini, .lookup = node40_lookup, .fetch = node40_fetch, .items = node40_items, .get_key = node40_get_key, .get_level = node40_get_level, #ifndef ENABLE_MINIMAL .init = node40_init, .sync = node40_sync, .merge = node40_merge, .pack = node40_pack, .unpack = node40_unpack, .insert = node40_insert, .write = node40_write, .trunc = node40_trunc, .remove = node40_remove, .print = node40_print, .shift = node40_shift, .shrink = node40_shrink, .expand = node40_expand, .insert_raw = node40_insert_raw, .copy = node40_copy, .overhead = node40_overhead, .maxspace = node40_maxspace, .space = node40_space, .set_key = node40_set_key, .set_level = node40_set_level, .get_mstamp = node40_get_mstamp, .get_fstamp = node40_get_fstamp, .set_mstamp = node40_set_mstamp, .set_fstamp = node40_set_fstamp, .set_flags = node40_set_flags, .get_flags = node40_get_flags, .set_state = node40_set_state, .get_state = node40_get_state, .check_struct = node40_check_struct #endif }; reiser4progs-1.0.7.orig/plugin/node/node40/node40_repair.h0000644000175000017500000000141111131470543021042 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. node40_repair.h -- reiser4 node plugin repair functions. */ #ifndef NODE40_REPAIR_H #define NODE40_REPAIR_H #include #include extern errno_t node40_insert_raw(reiser4_node_t *entity, pos_t *pos, trans_hint_t *hint); extern errno_t node40_check_struct(reiser4_node_t *entity, uint8_t mode); extern errno_t node40_pack(reiser4_node_t *entity, aal_stream_t *stream); extern reiser4_node_t *node40_unpack(aal_block_t *block, reiser4_key_plug_t *kplug, aal_stream_t *stream); extern void node40_print(reiser4_node_t *entity, aal_stream_t *stream, uint32_t start, uint32_t count, uint16_t options); #endif reiser4progs-1.0.7.orig/plugin/node/node40/Makefile.am0000644000175000017500000000110711131470543020274 0ustar fzfzincludedir = -I$(top_srcdir)/include node40_sources = node40.c node40_repair.c node40.h node40_repair.h STATIC_LIBS = libnode40-static.la libnode40_static_la_SOURCES = $(node40_sources) libnode40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libnode40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libnode40_minimal_la_SOURCES = $(node40_sources) libnode40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/node/node40/node40.h0000644000175000017500000002006611131470543017507 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. node40.h -- reiser4 node plugin structures. */ #ifndef NODE40_H #define NODE40_H #include #include #include #define NODE40_MAGIC 0x52344653 extern reiser4_node_plug_t node40_plug; /* Format of node header for node_common */ typedef struct node40_header { /* Plugin id */ d16_t pid; /* The number of items */ d16_t num_items; /* Node free space */ d16_t free_space; /* Free space start */ d16_t free_space_start; /* node magic 0x52344653 */ d32_t magic; /* id common for all nodes, generated at mkfs time. */ d32_t mkfs_id; /* id of the flush the node was written at. */ d64_t flush_id; /* Useful flags. */ d16_t flags; /* Node level */ d8_t level; d8_t pad; } __attribute__((packed)) node40_header_t; extern reiser4_core_t *node40_core; typedef int64_t (*modify_func_t) (reiser4_place_t *place, trans_hint_t *hint); extern void node40_mkdirty(reiser4_node_t *entity); extern void node40_mkclean(reiser4_node_t *entity); extern int node40_isdirty(reiser4_node_t *entity); extern reiser4_node_t *node40_prepare(aal_block_t *block, reiser4_key_plug_t *kplug); extern uint16_t node40_space(reiser4_node_t *entity); extern uint32_t node40_items(reiser4_node_t *entity); extern uint16_t node40_free_space_end(reiser4_node_t *entity); extern void *node40_ih_at(reiser4_node_t *entity, uint32_t pos); extern void *node40_ib_at(reiser4_node_t *entity, uint32_t pos); extern uint8_t node40_get_level(reiser4_node_t *entity); extern uint16_t node40_len(reiser4_node_t *entity, pos_t *pos); extern uint32_t node40_size(reiser4_node_t *node, pos_t *pos, uint32_t count); extern errno_t node40_fetch(reiser4_node_t *entity, pos_t *pos, reiser4_place_t *place); extern int64_t node40_modify(reiser4_node_t *entity, pos_t *pos, trans_hint_t *hint, modify_func_t modify_func); extern errno_t node40_expand(reiser4_node_t *entity, pos_t *pos, uint32_t len, uint32_t count); extern errno_t node40_shrink(reiser4_node_t *entity, pos_t *pos, uint32_t len, uint32_t count); extern errno_t node40_copy(reiser4_node_t *dst_entity, pos_t *dst_pos, reiser4_node_t *src_entity, pos_t *src_pos, uint32_t count); extern void node40_set_flags(reiser4_node_t *entity, uint32_t pos, uint16_t flags); extern uint16_t node40_get_flag(reiser4_node_t *entity, uint32_t pos); #define nh(block) \ ((node40_header_t *)block->data) #define nh_get_pid(node) \ aal_get_le16(nh((node)->block), pid) #define nh_set_pid(node, val) \ aal_set_le16(nh((node)->block), pid, val) #define nh_get_level(node) \ (nh((node)->block)->level) #define nh_set_level(node, val) \ (nh((node)->block)->level = val) #define nh_get_magic(node) \ aal_get_le32(nh((node)->block), magic) #define nh_set_magic(node, val) \ aal_set_le32(nh((node)->block), magic, val) #define nh_set_mkfs_id(node, val) \ aal_set_le32(nh((node)->block), mkfs_id, val) #define nh_get_mkfs_id(node) \ aal_get_le32(nh((node)->block), mkfs_id) #define nh_set_flush_id(node, val) \ aal_set_le64(nh((node)->block), flush_id, val) #define nh_get_flush_id(node) \ aal_get_le64(nh((node)->block), flush_id) #define nh_get_num_items(node) \ aal_get_le16(nh((node)->block), num_items) #define nh_set_num_items(node, val) \ aal_set_le16(nh((node)->block), num_items, val) #define nh_get_free_space(node) \ aal_get_le16(nh((node)->block), free_space) #define nh_set_free_space(node, val) \ aal_set_le16(nh((node)->block), free_space, val) #define nh_get_free_space_start(node) \ aal_get_le16(nh((node)->block), free_space_start) #define nh_set_free_space_start(node, val) \ aal_set_le16(nh((node)->block), free_space_start, val) #define nh_inc_free_space(node, val) \ nh_set_free_space(node, (nh_get_free_space(node) + (val))); #define nh_dec_free_space(node, val) \ nh_set_free_space(node, (nh_get_free_space(node) - (val))); #define nh_inc_free_space_start(node, val) \ nh_set_free_space_start(node, (nh_get_free_space_start(node) + (val))); #define nh_dec_free_space_start(node, val) \ nh_set_free_space_start(node, (nh_get_free_space_start(node) - (val))); #define nh_inc_num_items(node, val) \ nh_set_num_items(node, (nh_get_num_items(node) + (val))); #define nh_dec_num_items(node, val) \ nh_set_num_items(node, (nh_get_num_items(node) - (val))); #ifdef ENABLE_SHORT_KEYS typedef union key3 { d64_t el[3]; int pad; } key3_t; typedef struct item_header3 { key3_t key3; d16_t offset; d16_t flags; d16_t pid; } __attribute__((packed)) item_header3_t; #endif #ifdef ENABLE_LARGE_KEYS typedef union key4 { d64_t el[4]; int pad; } key4_t; typedef struct item_header4 { key4_t key4; d16_t offset; d16_t flags; d16_t pid; } __attribute__((packed)) item_header4_t; #endif #if defined(ENABLE_SHORT_KEYS) && defined(ENABLE_LARGE_KEYS) #define ih_size(pol) \ ((pol == 3) ? \ sizeof(item_header3_t) : \ sizeof(item_header4_t)) #define key_size(pol) \ ((pol == 3) ? \ sizeof(key3_t) : \ sizeof(key4_t)) #define ih_get_offset(ih, pol) \ ((pol == 3) ? \ aal_get_le16((item_header3_t *)(ih), offset) : \ aal_get_le16((item_header4_t *)(ih), offset)) #define ih_set_offset(ih, val, pol) \ ((pol == 3) ? \ aal_set_le16((item_header3_t *)(ih), offset, val) : \ aal_set_le16((item_header4_t *)(ih), offset, val)) #define ih_get_flags(ih, pol) \ ((pol == 3) ? \ aal_get_le16((item_header3_t *)(ih), flags) : \ aal_get_le16((item_header4_t *)(ih), flags)) #define ih_set_flags(ih, val, pol) \ ((pol == 3) ? \ aal_set_le16((item_header3_t *)(ih), flags, val) : \ aal_set_le16((item_header4_t *)(ih), flags, val)) #define ih_get_pid(ih, pol) \ ((pol == 3) ? \ aal_get_le16((item_header3_t *)(ih), pid) : \ aal_get_le16((item_header4_t *)(ih), pid)) #define ih_set_pid(ih, val, pol) \ ((pol == 3) ? \ aal_set_le16((item_header3_t *)(ih), pid, val) : \ aal_set_le16((item_header4_t *)(ih), pid, val)) #else #if defined(ENABLE_SHORT_KEYS) #define ih_size(pol) \ sizeof(item_header3_t) #define key_size(pol) \ sizeof(key3_t) #define ih_get_offset(ih, pol) \ aal_get_le16((item_header3_t *)(ih), offset) #define ih_set_offset(ih, val, pol) \ aal_set_le16((item_header3_t *)(ih), offset, val) #define ih_get_flags(ih, pol) \ aal_get_le16((item_header3_t *)(ih), flags) #define ih_set_flags(ih, val, pol) \ aal_set_le16((item_header3_t *)(ih), flags, val) #define ih_get_pid(ih, pol) \ aal_get_le16((item_header3_t *)(ih), pid) #define ih_set_pid(ih, val, pol) \ aal_set_le16((item_header3_t *)(ih), pid, val) #else #define ih_size(pol) \ sizeof(item_header4_t) #define key_size(pol) \ sizeof(key4_t) #define ih_get_offset(ih, pol) \ aal_get_le16((item_header4_t *)(ih), offset) #define ih_set_offset(ih, val, pol) \ aal_set_le16((item_header4_t *)(ih), offset, val) #define ih_get_flags(ih, pol) \ aal_get_le16((item_header4_t *)(ih), flags) #define ih_set_flags(ih, val, pol) \ aal_set_le16((item_header4_t *)(ih), flags, val) #define ih_get_pid(ih, pol) \ aal_get_le16((item_header4_t *)(ih), pid) #define ih_set_pid(ih, val, pol) \ aal_set_le16((item_header4_t *)(ih), pid, val) #endif #endif #define ih_inc_offset(ih, val, pol) \ ih_set_offset((ih), (ih_get_offset((ih), pol) + \ (val)), pol) #define ih_dec_offset(ih, val, pol) \ ih_set_offset((ih), (ih_get_offset((ih), pol) - \ (val)), pol) #endif reiser4progs-1.0.7.orig/plugin/node/Makefile.am0000644000175000017500000000002111131470543017175 0ustar fzfzSUBDIRS = node40 reiser4progs-1.0.7.orig/plugin/object/0000777000175000017500000000000011134133447015477 5ustar fzfzreiser4progs-1.0.7.orig/plugin/object/Makefile.in0000644000175000017500000003437411134132276017552 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/object DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = obj40 dir40 reg40 sym40 spl40 ccreg40 all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/object/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/object/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/object/dir40/0000777000175000017500000000000011134133446016420 5ustar fzfzreiser4progs-1.0.7.orig/plugin/object/dir40/Makefile.in0000644000175000017500000004617511134132276020476 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/object/dir40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libdir40_minimal_la_LIBADD = am__libdir40_minimal_la_SOURCES_DIST = dir40.c dir40_repair.c dir40.h \ dir40_repair.h am__objects_1 = libdir40_minimal_la-dir40.lo \ libdir40_minimal_la-dir40_repair.lo @ENABLE_MINIMAL_TRUE@am_libdir40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libdir40_minimal_la_OBJECTS = $(am_libdir40_minimal_la_OBJECTS) libdir40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libdir40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libdir40_minimal_la_rpath = libdir40_static_la_LIBADD = am__objects_2 = libdir40_static_la-dir40.lo \ libdir40_static_la-dir40_repair.lo am_libdir40_static_la_OBJECTS = $(am__objects_2) libdir40_static_la_OBJECTS = $(am_libdir40_static_la_OBJECTS) libdir40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libdir40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libdir40_minimal_la_SOURCES) $(libdir40_static_la_SOURCES) DIST_SOURCES = $(am__libdir40_minimal_la_SOURCES_DIST) \ $(libdir40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dir40_sources = dir40.c dir40_repair.c dir40.h dir40_repair.h STATIC_LIBS = libdir40-static.la libdir40_static_la_SOURCES = $(dir40_sources) libdir40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libdir40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libdir40_minimal_la_SOURCES = $(dir40_sources) @ENABLE_MINIMAL_TRUE@libdir40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/object/dir40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/object/dir40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libdir40-minimal.la: $(libdir40_minimal_la_OBJECTS) $(libdir40_minimal_la_DEPENDENCIES) $(libdir40_minimal_la_LINK) $(am_libdir40_minimal_la_rpath) $(libdir40_minimal_la_OBJECTS) $(libdir40_minimal_la_LIBADD) $(LIBS) libdir40-static.la: $(libdir40_static_la_OBJECTS) $(libdir40_static_la_DEPENDENCIES) $(libdir40_static_la_LINK) $(libdir40_static_la_OBJECTS) $(libdir40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdir40_minimal_la-dir40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdir40_minimal_la-dir40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdir40_static_la-dir40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdir40_static_la-dir40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libdir40_minimal_la-dir40.lo: dir40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdir40_minimal_la_CFLAGS) $(CFLAGS) -MT libdir40_minimal_la-dir40.lo -MD -MP -MF $(DEPDIR)/libdir40_minimal_la-dir40.Tpo -c -o libdir40_minimal_la-dir40.lo `test -f 'dir40.c' || echo '$(srcdir)/'`dir40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libdir40_minimal_la-dir40.Tpo $(DEPDIR)/libdir40_minimal_la-dir40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir40.c' object='libdir40_minimal_la-dir40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdir40_minimal_la_CFLAGS) $(CFLAGS) -c -o libdir40_minimal_la-dir40.lo `test -f 'dir40.c' || echo '$(srcdir)/'`dir40.c libdir40_minimal_la-dir40_repair.lo: dir40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdir40_minimal_la_CFLAGS) $(CFLAGS) -MT libdir40_minimal_la-dir40_repair.lo -MD -MP -MF $(DEPDIR)/libdir40_minimal_la-dir40_repair.Tpo -c -o libdir40_minimal_la-dir40_repair.lo `test -f 'dir40_repair.c' || echo '$(srcdir)/'`dir40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libdir40_minimal_la-dir40_repair.Tpo $(DEPDIR)/libdir40_minimal_la-dir40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir40_repair.c' object='libdir40_minimal_la-dir40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdir40_minimal_la_CFLAGS) $(CFLAGS) -c -o libdir40_minimal_la-dir40_repair.lo `test -f 'dir40_repair.c' || echo '$(srcdir)/'`dir40_repair.c libdir40_static_la-dir40.lo: dir40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdir40_static_la_CFLAGS) $(CFLAGS) -MT libdir40_static_la-dir40.lo -MD -MP -MF $(DEPDIR)/libdir40_static_la-dir40.Tpo -c -o libdir40_static_la-dir40.lo `test -f 'dir40.c' || echo '$(srcdir)/'`dir40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libdir40_static_la-dir40.Tpo $(DEPDIR)/libdir40_static_la-dir40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir40.c' object='libdir40_static_la-dir40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdir40_static_la_CFLAGS) $(CFLAGS) -c -o libdir40_static_la-dir40.lo `test -f 'dir40.c' || echo '$(srcdir)/'`dir40.c libdir40_static_la-dir40_repair.lo: dir40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdir40_static_la_CFLAGS) $(CFLAGS) -MT libdir40_static_la-dir40_repair.lo -MD -MP -MF $(DEPDIR)/libdir40_static_la-dir40_repair.Tpo -c -o libdir40_static_la-dir40_repair.lo `test -f 'dir40_repair.c' || echo '$(srcdir)/'`dir40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libdir40_static_la-dir40_repair.Tpo $(DEPDIR)/libdir40_static_la-dir40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir40_repair.c' object='libdir40_static_la-dir40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdir40_static_la_CFLAGS) $(CFLAGS) -c -o libdir40_static_la-dir40_repair.lo `test -f 'dir40_repair.c' || echo '$(srcdir)/'`dir40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/object/dir40/dir40_repair.h0000644000175000017500000000133511131470543021052 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. dir40_repair.h -- reiser4 hashed directory plugin repair functions. */ #ifndef DIR40_REPAIR_H #define DIR40_REPAIR_H #include "dir40.h" #include "plugin/object/obj40/obj40_repair.h" extern errno_t dir40_form(reiser4_object_t *object); extern errno_t dir40_fake(reiser4_object_t *dir); extern errno_t dir40_recognize(reiser4_object_t *dir); extern errno_t dir40_check_attach(reiser4_object_t *object, reiser4_object_t *parent, place_func_t place_func, void *data, uint8_t mode); extern errno_t dir40_check_struct(reiser4_object_t *object, place_func_t place_func, void *data, uint8_t mode); #endif reiser4progs-1.0.7.orig/plugin/object/dir40/dir40.c0000644000175000017500000004012511131470543017503 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. dir40.c -- reiser4 directory object plugin. */ #ifndef ENABLE_MINIMAL # include #endif #include "dir40.h" #include "dir40_repair.h" /* Return current position in directory into passed @offset. */ static errno_t dir40_telldir(reiser4_object_t *dir, reiser4_key_t *position) { aal_assert("umka-1985", dir != NULL); aal_assert("umka-1986", position != NULL); /* Getting current dir key and adjust. */ aal_memcpy(position, &dir->position, sizeof(*position)); #ifndef ENABLE_MINIMAL /* Adjust is offset inside collided keys arrays and needed for positioning right in such a case. In normal case it is zero. */ position->adjust = dir->position.adjust; #endif return 0; } /* Positioning inside directory by passed @position key. Normally, user should use key got from telldir() function. But, this is possible to generate directory key by himself and pass here. */ static errno_t dir40_seekdir(reiser4_object_t *dir, reiser4_key_t *position) { aal_assert("umka-1983", dir != NULL); aal_assert("umka-1984", position != NULL); /* Set directory position to the given one. */ aal_memcpy(&dir->position, position, sizeof(*position)); return 0; } /* Resets current direntry position to zero. */ errno_t dir40_reset(reiser4_object_t *dir) { aal_assert("umka-864", dir != NULL); /* Preparing key of the first entry in directory and set directory adjust to zero. */ #ifndef ENABLE_MINIMAL dir->position.adjust = 0; #endif /* Building key itself. */ plugcall(dir->info.object.plug, build_hashed, &dir->position, reiser4_pshash(dir), reiser4_psfibre(dir), objcall(&dir->info.object, get_locality), objcall(&dir->info.object, get_objectid), "."); return 0; } /* Fetches current unit to passed @entry */ errno_t dir40_fetch(reiser4_object_t *dir, entry_hint_t *entry) { trans_hint_t hint; aal_memset(&hint, 0, sizeof(hint)); hint.count = 1; hint.specific = entry; hint.shift_flags = SF_DEFAULT; /* Reading entry to passed @entry */ if (objcall(&dir->body, object->fetch_units, &hint) != 1) return -EIO; /* Copying entry place. */ aal_memcpy(&entry->place, &dir->body, sizeof(reiser4_place_t)); return 0; } #ifndef ENABLE_MINIMAL static void dir40_entry_type(entry_hint_t *entry) { entry->type = ET_NAME; if (aal_strlen(entry->name) == 1 && !aal_strncmp(entry->name, ".", 1)) { entry->type = ET_SPCL; } if (aal_strlen(entry->name) == 2 && !aal_strncmp(entry->name, "..",2)) { entry->type = ET_SPCL; } } #else #define dir40_entry_type(entry) do{;} while(0) #endif errno_t dir40_entry_comp(reiser4_object_t *dir, void *data) { entry_hint_t entry; reiser4_key_t *key; aal_assert("vpf-1834", dir != NULL); if (!dir->body.plug) return -EINVAL; #ifndef EINVAL if (dir->body.plug->id.group != DIR_ITEM) return -ESTRUCT; #endif if (dir40_fetch(dir, &entry)) return -EIO; if (!data) { key = &dir->position; } else { key = (reiser4_key_t *)data; } /* If greater key is reached, return PRESENT. */ return objcall(&entry.offset, compfull, key) ? 1 : 0; } /* Reads one current directory entry to passed @entry hint. Returns count of read entries, zero for the case directory is over and nagtive values fopr errors. */ static int32_t dir40_readdir(reiser4_object_t *dir, entry_hint_t *entry) { uint32_t units; errno_t res; aal_assert("umka-845", entry != NULL); aal_assert("umka-844", dir != NULL); /* Getting place of current unit */ if ((res = obj40_update_body(dir, dir40_entry_comp)) != PRESENT) return res == ABSENT ? 0 : res; /* Reading next entry */ if ((res = dir40_fetch(dir, entry))) return res; /* Setting up the entry type. It is essential for fsck to know what is the NAME -- that needs to be traversed semantically to be recovered completely -- and what is not -- that needs some other special actions, e.g. check_attach for ".." (and even "..." if it is needed one day), etc. */ dir40_entry_type(entry); units = objcall(&dir->body, balance->units); /* Getting next entry in odrer to set up @dir->position correctly. */ if (++dir->body.pos.unit >= units) { /* Switching to the next directory item */ if ((res = obj40_next_item(dir)) < 0) return res; if (res == ABSENT) { uint64_t offset; /* Set offset to non-existent value. */ offset = objcall(&dir->position, get_offset); objcall(&dir->position, set_offset, offset + 1); } } else { /* There is no need to switch */ res = 1; } if (res == 1) { entry_hint_t temp; if ((res = dir40_fetch(dir, &temp))) return res; #ifndef ENABLE_MINIMAL /* Taking care about adjust */ if (!objcall(&temp.offset, compfull, &dir->position)) temp.offset.adjust = dir->position.adjust + 1; else temp.offset.adjust = 0; #endif dir40_seekdir(dir, &temp.offset); } return 1; } /* Makes lookup inside directory. This is needed to be used in add_entry() for two reasons: for make sure, that passed entry does not exists and to use lookup result for consequent insert. */ static lookup_t dir40_search(reiser4_object_t *dir, char *name, lookup_bias_t bias, entry_hint_t *entry) { lookup_t res; #ifndef ENABLE_MINIMAL coll_hint_t hint; coll_func_t func; #endif aal_assert("umka-1118", name != NULL); aal_assert("umka-1117", dir != NULL); /* Preparing key to be used for lookup. It is generating from the directory oid, locality and name by menas of using hash plugin. */ plugcall(dir->info.object.plug, build_hashed, &dir->body.key, reiser4_pshash(dir), reiser4_psfibre(dir), objcall(&dir->info.object, get_locality), objcall(&dir->info.object, get_objectid), name); #ifndef ENABLE_MINIMAL hint.specific = name; hint.type = DIR_ITEM; func = obj40_core->tree_ops.collision; #endif if ((res = obj40_find_item(dir, &dir->body.key, bias, #ifndef ENABLE_MINIMAL func, &hint, #else NULL, NULL, #endif &dir->body)) < 0) { return res; } if (entry) { aal_memset(entry, 0, sizeof(*entry)); aal_memcpy(&entry->place, &dir->body, sizeof(reiser4_place_t)); aal_memcpy(&entry->offset, &dir->body.key, sizeof(reiser4_key_t)); if (res == PRESENT) { if (dir40_fetch(dir, entry)) return -EIO; dir40_entry_type(entry); } } return res; } /* Makes lookup inside @dir by passed @name. Saves found entry in passed @entry hint. */ lookup_t dir40_lookup(reiser4_object_t *dir, char *name, entry_hint_t *entry) { return dir40_search(dir, name, FIND_EXACT, entry); } #ifndef ENABLE_MINIMAL /* Creates dir40 instance. Creates its stat data item, and body item with one "." unit. Yet another unit ".." will be inserted latter, then directiry will be attached to a parent object. */ static errno_t dir40_create(reiser4_object_t *dir, object_hint_t *hint) { trans_hint_t body_hint; entry_hint_t entry; reiser4_key_t *key; uint32_t mode; errno_t res; aal_assert("vpf-1816", dir != NULL); aal_assert("vpf-1095", dir->info.tree != NULL); aal_memset(&body_hint, 0, sizeof(body_hint)); /* Initializing direntry item hint. This should be done before the stat data item hint, because we will need size of direntry item during stat data initialization. */ body_hint.count = 1; body_hint.plug = reiser4_psdiren(dir); key = &dir->info.object; plugcall(key->plug, build_hashed, &body_hint.offset, reiser4_pshash(dir), reiser4_psfibre(dir), objcall(&dir->info.object, get_locality), objcall(&dir->info.object, get_objectid), "."); /* Preparing hint for the empty directory. It consists only "." for unlinked directories. */ aal_strncpy(entry.name, ".", 1); /* Initializing entry stat data key. */ aal_memcpy(&entry.object, key, sizeof(*key)); /* Initializing entry hash key. */ aal_memcpy(&entry.offset, &body_hint.offset, sizeof(entry.offset)); body_hint.specific = &entry; body_hint.shift_flags = SF_DEFAULT; dir40_reset(dir); /* Looking for place to insert directory body */ switch (obj40_find_item(dir, &body_hint.offset, FIND_CONV, NULL, NULL, &dir->body)) { case ABSENT: /* Inserting the direntry body item into the tree. */ if ((res = obj40_insert(dir, &dir->body, &body_hint, LEAF_LEVEL)) < 0) { return res; } break; default: return -EIO; } mode = (hint ? hint->mode : 0) | S_IFDIR | 0755; /* Create stat data item. */ if ((res = obj40_create_stat(dir, 1, body_hint.len, 0, 1, mode, NULL))) { /* Removing body item. */ if (obj40_update_body(dir, dir40_entry_comp) == PRESENT) { body_hint.count = 1; body_hint.place_func = NULL; body_hint.region_func = NULL; dir->body.pos.unit = MAX_UINT32; obj40_remove(dir, &dir->body, &body_hint); } return res; } return 0; } /* Removes all directory body items. */ static errno_t dir40_mkempty(reiser4_object_t *dir, uint64_t n) { errno_t res; reiser4_key_t key; aal_assert("umka-1925", dir != NULL); /* Making sure, that dir->body points to correct item */ if ((res = obj40_update_body(dir, dir40_entry_comp)) != PRESENT) return res == ABSENT ? 0 : res; /* Creating maximal possible key in order to find last directory item and remove it from the tree. Thanks to Nikita for this idea. */ aal_memcpy(&key, &dir->body.key, sizeof(key)); objcall(&key, set_offset, MAX_UINT64); while (1) { trans_hint_t hint; /* Looking for the last directory item. FIXME: the possible speedup here is to get rid of lookup */ if ((res = obj40_find_item(dir, &key, FIND_EXACT, NULL, NULL, &dir->body)) < 0) { return res; } /* Checking if found item belongs this directory */ if (obj40_belong(&dir->body, &key) == ABSENT) return 0; aal_memset(&hint, 0, sizeof(hint)); hint.count = 1; hint.shift_flags = SF_DEFAULT; dir->body.pos.unit = MAX_UINT32; /* Removing item from the tree */ if ((res = obj40_remove(dir, &dir->body, &hint))) return res; } return 0; } /* Removes directory body and stat data from the tree. */ static errno_t dir40_clobber(reiser4_object_t *dir) { uint32_t nlink; errno_t res; aal_assert("umka-2298", dir != NULL); /* Check that truncate is allowed -- i.e. nlink == 2. */ if ((nlink = obj40_get_nlink(dir, 1)) != 2) { aal_error("Can't detach the object " "with nlink (%d).", nlink); return -EINVAL; } dir40_reset(dir); /* Truncates directory body. */ if ((res = dir40_mkempty(dir, 0))) return res; /* Cloberring stat data. */ return obj40_clobber(dir); } /* Return number of hard links. */ static bool_t dir40_linked(reiser4_object_t *dir) { return obj40_get_nlink(dir, 1) != 1; } /* Helper function. Builds @entry->offset key by @entry->name. */ static errno_t dir40_build_entry(reiser4_object_t *dir, entry_hint_t *entry) { aal_assert("umka-2528", entry != NULL); aal_assert("umka-2527", dir != NULL); plugcall(dir->info.object.plug, build_hashed, &entry->offset, reiser4_pshash(dir), reiser4_psfibre(dir), objcall(&dir->info.object, get_locality), objcall(&dir->info.object, get_objectid), entry->name); return 0; } /* Add new entry to directory. */ static errno_t dir40_add_entry(reiser4_object_t *dir, entry_hint_t *entry) { errno_t res; entry_hint_t temp; trans_hint_t hint; aal_assert("umka-844", dir != NULL); aal_assert("umka-845", entry != NULL); aal_memset(&hint, 0, sizeof(hint)); /* Getting place new entry will be inserted at. */ switch (dir40_search(dir, entry->name, FIND_EXACT, &temp)) { case ABSENT: if (!obj40_valid_item(&temp.place)) return -EINVAL; if ((res = obj40_fetch_item(&temp.place))) return res; break; case PRESENT: aal_error("Entry \"%s\" already exists.", entry->name); default: return -EINVAL; } /* Prepare trans hint. */ hint.count = 1; hint.region_func = NULL; hint.place_func = entry->place_func; hint.data = entry->data; hint.plug = temp.place.plug; hint.specific = (void *)entry; hint.shift_flags = SF_DEFAULT; /* Building key of the new entry and hint's one */ dir40_build_entry(dir, entry); /* Copying key to @hint */ aal_memcpy(&hint.offset, &entry->offset, sizeof(hint.offset)); /* Inserting entry described by @hint to tree at @temp.place */ if ((res = obj40_insert(dir, &temp.place, &hint, LEAF_LEVEL)) < 0) { return res; } entry->len = hint.len; /* Updating stat data fields. */ return obj40_touch(dir, 1, hint.bytes); } /* Removing entry from the directory */ static errno_t dir40_rem_entry(reiser4_object_t *dir, entry_hint_t *entry) { errno_t res; entry_hint_t temp; trans_hint_t hint; aal_assert("umka-1923", entry != NULL); aal_assert("umka-1922", dir != NULL); aal_assert("umka-2390", entry->name != NULL); /* Looking for place to insert directory entry */ if (dir40_search(dir, entry->name, FIND_EXACT, &temp) != PRESENT) return -EINVAL; aal_memset(&hint, 0, sizeof(hint)); hint.count = 1; hint.shift_flags = SF_DEFAULT; /* Removing one unit from directory */ if ((res = obj40_remove(dir, &dir->body, &hint))) return res; if (!objcall(&dir->position, compfull, &temp.offset)) { if (entry->offset.adjust < dir->position.adjust) dir->position.adjust--; } entry->len = hint.len; /* Updating stat data fields */ return obj40_touch(dir, -1, -hint.bytes); } /* Attaches the given directory @dir to @parent object. */ static errno_t dir40_attach(reiser4_object_t *dir, reiser4_object_t *parent) { errno_t res; entry_hint_t entry; aal_assert("umka-2289", dir != NULL); aal_assert("umka-2359", parent != NULL); aal_memset(&entry, 0, sizeof(entry)); aal_strncpy(entry.name, "..", sizeof(entry.name)); /* Adding ".." pointing to parent to @dir object. */ aal_memcpy(&entry.object, &parent->info.object, sizeof(entry.object)); if ((res = dir40_add_entry(dir, &entry))) return res; /* Increasing parent's @nlink by one */ return plugcall(reiser4_psobj(parent), link, parent); } /* Detaches @dir from @parent. */ static errno_t dir40_detach(reiser4_object_t *dir, reiser4_object_t *parent) { entry_hint_t entry; errno_t res; aal_assert("umka-2291", dir != NULL); /* Removing ".." from child if it is found */ if (dir40_lookup(dir, "..", &entry) == PRESENT) { if ((res = dir40_rem_entry(dir, &entry))) return res; } if (!parent) return 0; /* Decreasing parent's @nlink by one */ return plugcall(reiser4_psobj(parent), unlink, parent); } /* This fucntion implements hashed directory enumerator function. It is used for calculating fargmentation, prining. */ static errno_t dir40_layout(reiser4_object_t *dir, region_func_t func, void *data) { dir40_reset(dir); return obj40_layout(dir, func, dir40_entry_comp, data); } /* This fucntion implements hashed directory metadata enumerator function. This is needed for getting directory metadata for pack them, etc. */ static errno_t dir40_metadata(reiser4_object_t *dir, place_func_t place_func, void *data) { dir40_reset(dir); return obj40_traverse(dir, place_func, dir40_entry_comp, data); } #endif /* Directory object operations. */ reiser4_object_plug_t dir40_plug = { .p = { .id = {OBJECT_DIR40_ID, DIR_OBJECT, OBJECT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "dir40", .desc = "Directory file plugin.", #endif }, #ifndef ENABLE_MINIMAL .inherit = obj40_inherit, .create = dir40_create, .layout = dir40_layout, .metadata = dir40_metadata, .link = obj40_link, .unlink = obj40_unlink, .linked = dir40_linked, .truncate = NULL, .add_entry = dir40_add_entry, .rem_entry = dir40_rem_entry, .build_entry = dir40_build_entry, .attach = dir40_attach, .detach = dir40_detach, .clobber = dir40_clobber, .recognize = obj40_recognize, .fake = dir40_fake, .check_struct = dir40_check_struct, .check_attach = dir40_check_attach, .seek = NULL, .write = NULL, .convert = NULL, #endif .follow = NULL, .read = NULL, .offset = NULL, .stat = obj40_load_stat, .open = obj40_open, .close = NULL, .reset = dir40_reset, .lookup = dir40_lookup, .seekdir = dir40_seekdir, .readdir = dir40_readdir, .telldir = dir40_telldir, #ifndef ENABLE_MINIMAL .sdext_mandatory = (1 << SDEXT_LW_ID), .sdext_unknown = (1 << SDEXT_SYMLINK_ID) #endif }; reiser4progs-1.0.7.orig/plugin/object/dir40/dir40.h0000644000175000017500000000111211131470543017501 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. dir40.h -- reiser4 hashed directory plugin structures. */ #ifndef DIR40_H #define DIR40_H #include #include "plugin/object/obj40/obj40.h" #ifndef ENABLE_MINIMAL extern errno_t dir40_reset(reiser4_object_t *dir); extern lookup_t dir40_lookup(reiser4_object_t *dir, char *name, entry_hint_t *entry); extern errno_t dir40_fetch(reiser4_object_t *dir, entry_hint_t *entry); extern errno_t dir40_entry_comp(reiser4_object_t *dir, void *data); #endif #endif reiser4progs-1.0.7.orig/plugin/object/dir40/Makefile.am0000644000175000017500000000110311131470543020442 0ustar fzfzincludedir = -I$(top_srcdir)/include dir40_sources = dir40.c dir40_repair.c dir40.h dir40_repair.h STATIC_LIBS = libdir40-static.la libdir40_static_la_SOURCES = $(dir40_sources) libdir40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libdir40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libdir40_minimal_la_SOURCES = $(dir40_sources) libdir40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/object/dir40/dir40_repair.c0000644000175000017500000002214511131470543021047 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. dir40_repair.c -- reiser4 default directory file plugin repair code. */ #ifndef ENABLE_MINIMAL #include "dir40_repair.h" static errno_t dir40_dot(reiser4_object_t *dir, reiser4_item_plug_t *bplug, uint8_t mode) { object_info_t *info; entry_hint_t entry; trans_hint_t hint; errno_t res; aal_assert("vpf-1242", dir != NULL); aal_assert("vpf-1244", bplug != NULL); /* Lookup the "." */ if ((res = dir40_reset(dir))) return res; if ((res = obj40_find_item(dir, &dir->position, FIND_CONV, NULL, NULL, &dir->body)) < 0) { return res; } if (res == PRESENT) return 0; info = &dir->info; fsck_mess("Directory [%s]: The entry \".\" is not found.%s " "Plugin (%s).", print_inode(obj40_core, &info->object), mode != RM_CHECK ? " Insert a new one." : "", reiser4_psobj(dir)->p.label); if (mode == RM_CHECK) return RE_FIXABLE; /* Absent. Add a new ".". */ aal_memset(&hint, 0, sizeof(hint)); hint.count = 1; hint.plug = bplug; hint.shift_flags = SF_DEFAULT; aal_memcpy(&hint.offset, &dir->position, sizeof(dir->position)); aal_memcpy(&entry.offset, &dir->position, sizeof(dir->position)); aal_memcpy(&entry.object, &dir->info.object, sizeof(entry.object)); aal_strncpy(entry.name, ".", 1); hint.specific = &entry; res = obj40_insert(dir, &dir->body, &hint, LEAF_LEVEL); return res < 0 ? res : 0; } static errno_t dir40_entry_check(reiser4_object_t *dir, obj40_stat_hint_t *hint, place_func_t func, void *data, uint8_t mode) { entry_hint_t entry; trans_hint_t trans; reiser4_key_t key; uint32_t units; errno_t result; errno_t res; bool_t last; pos_t *pos; res = 0; pos = &dir->body.pos; units = objcall(&dir->body, balance->units); if (pos->unit == MAX_UINT32) pos->unit = 0; last = 0; for (; pos->unit < units; pos->unit++) { last = (pos->unit == units - 1); if (last) { /* If we are handling the last unit, register the item despite the result of handling. Any item has a pointer to objectid in the key, if it is shared between 2 objects, it should be already solved at relocation time. */ if (func && func(&dir->body, data)) return -EINVAL; /* Count size and bytes. */ hint->size += objcall(&dir->body, object->size); hint->bytes += objcall(&dir->body, object->bytes); } if ((result = dir40_fetch(dir, &entry)) < 0) return result; /* Prepare the correct key for the entry. */ plugcall(entry.offset.plug, build_hashed, &key, reiser4_pshash(dir), reiser4_psfibre(dir), objcall(&dir->info.object, get_locality), objcall(&dir->info.object, get_objectid), entry.name); /* If the key matches, continue. */ if (objcall(&key, compfull, &entry.offset)) { /* Broken entry found, remove it. */ fsck_mess("Directory [%s] (%s), node [%llu], " "item [%u], unit [%u]: entry has wrong " "offset [%s]. Should be [%s].%s", print_inode(obj40_core, &dir->info.object), reiser4_psobj(dir)->p.label, place_blknr(&dir->body), dir->body.pos.item, dir->body.pos.unit, print_key(obj40_core, &entry.offset), print_key(obj40_core, &key), mode == RM_BUILD ? " Removed." : ""); if (mode != RM_BUILD) { /* If not the BUILD mode, continue with the entry key, not the correct one. */ aal_memcpy(&key, &entry.offset, sizeof(key)); res |= RE_FATAL; } else { break; } } /* Either key is ok or we are in CHECK mode, take the next entry. */ if (objcall(&dir->position, compfull, &key)) { /* Key differs from the last left entry offset. */ aal_memcpy(&dir->position, &key, sizeof(key)); } else if (aal_strlen(entry.name) != 1 || aal_strncmp(entry.name, ".", 1)) { /* Key collision. */ dir->position.adjust++; } } /* All entries were handled. */ if (pos->unit == units) return res; /* Some entry is bad and needs to be removed. */ trans.count = 1; trans.shift_flags = SF_DEFAULT & ~SF_ALLOW_PACK; if ((result = obj40_remove(dir, &dir->body, &trans)) < 0) return result; /* Adjust position to the following incrementing, needed as the entry is removed. */ dir->position.adjust--; /* Update accounting info after remove. */ if (last) { hint->size--; hint->bytes -= trans.bytes; } return 0; } static errno_t dir40_check_item(reiser4_object_t *dir, void *data) { uint8_t mode = *(uint8_t *)data; /* FIXME-VITALY: item of the same group but of another plugin, should it be converted? */ if (dir->body.plug != reiser4_psdiren(dir)) { fsck_mess("Directory [%s] (%s), node [%llu], item" "[%u]: item of the illegal plugin (%s) " "with the key of this object found.%s", print_inode(obj40_core, &dir->info.object), reiser4_psobj(dir)->p.label, place_blknr(&dir->body), dir->body.pos.item, dir->body.plug->p.label, mode == RM_BUILD ? " Removed." : ""); return mode == RM_BUILD ? -ESTRUCT : RE_FATAL; } return 0; } errno_t dir40_check_struct(reiser4_object_t *dir, place_func_t func, void *data, uint8_t mode) { obj40_stat_hint_t hint; object_info_t *info; errno_t res; aal_assert("vpf-1224", dir != NULL); aal_assert("vpf-1190", dir->info.tree != NULL); aal_assert("vpf-1197", dir->info.object.plug != NULL); info = &dir->info; aal_memset(&hint, 0, sizeof(hint)); if ((res = obj40_prepare_stat(dir, S_IFDIR, mode))) return res; /* Try to register SD as an item of this file. */ if (func && func(&info->start, data)) return -EINVAL; /* Take care about the ".". */ /* FIXME: Probably it should be different -- find an item by the key and if it is of DIR group, take its plugin as body plug, fix it in SD then. */ if ((res |= dir40_dot(dir, reiser4_psdiren(dir), mode)) < 0) return res; while (1) { lookup_t lookup; lookup = obj40_check_item(dir, dir40_check_item, dir40_entry_comp, &mode); if (repair_error_fatal(lookup)) return lookup; else if (lookup == ABSENT) break; /* Looks like an item of dir40. If there were some key collisions, this search was performed with incremented adjust, decrement it here. */ if (dir->position.adjust) dir->position.adjust--; if ((res |= dir40_entry_check(dir, &hint, func, data, mode)) < 0) { return res; } /* Lookup for the last handled entry key with the incremented adjust to get the next entry. */ dir->position.adjust++; } /* Fix the SD, if no fatal corruptions were found. */ if (!(res & RE_FATAL)) { obj40_stat_ops_t ops; aal_memset(&ops, 0, sizeof(ops)); ops.check_nlink = mode == RM_BUILD ? 0 : SKIP_METHOD; hint.mode = S_IFDIR; hint.nlink = 1; res |= obj40_update_stat(dir, &ops, &hint, mode); } dir40_reset(dir); return res; } errno_t dir40_check_attach(reiser4_object_t *object, reiser4_object_t *parent, place_func_t func, void *data, uint8_t mode) { entry_hint_t entry; lookup_t lookup; errno_t res; aal_assert("vpf-1151", object != NULL); aal_assert("vpf-1152", parent != NULL); lookup = dir40_lookup(object, "..", &entry); entry.place_func = func; entry.data = data; switch (lookup) { case PRESENT: /* If the key matches the parent -- ok. */ if (!objcall(&entry.object, compfull, &parent->info.object)) break; /* Already attached. */ fsck_mess("Directory [%s] (%s): the object " "is attached already to [%s] and cannot " "be attached to [%s].", print_inode(obj40_core, &object->info.object), reiser4_psobj(object)->p.label, print_key(obj40_core, &entry.object), print_inode(obj40_core, &parent->info.object)); return RE_FATAL; case ABSENT: /* Not attached yet. */ /* if (plug_call(object->info.object.plug, compfull, &object->info.object, &parent->info.object)) { fsck_mess("Directory [%s] (%s): the " "object is not attached. %s [%s].", print_inode(obj40_core, &object->info.object), reiser4_psobj(object)->p.label, mode == RM_CHECK ? "Reached from" : "Attaching to", print_inode(obj40_core, &parent->info.object)); } */ if (mode == RM_CHECK) { fsck_mess("Directory [%s] (%s): the object " "is not attached. Reached from [%s].", print_inode(obj40_core, &object->info.object), reiser4_psobj(object)->p.label, print_inode(obj40_core, &parent->info.object)); return RE_FIXABLE; } /* Adding ".." to the @object pointing to the @parent. */ aal_memcpy(&entry.object, &parent->info.object, sizeof(entry.offset)); aal_strncpy(entry.name, "..", sizeof(entry.name)); if ((res = plugcall(reiser4_psobj(object), add_entry, object, &entry))) { return res; } break; default: return lookup; } /* ".." matches the parent. Now do parent->nlink++ for REBUILD mode. */ if (mode != RM_BUILD) return 0; return plugcall(reiser4_psobj(parent), link, parent); } /* Creates the fake dir40 entity by the given @info for the futher recovery. */ errno_t dir40_fake(reiser4_object_t *dir) { aal_assert("vpf-1231", dir != NULL); /* Positioning to the first directory unit */ dir40_reset(dir); return 0; } #endif reiser4progs-1.0.7.orig/plugin/object/reg40/0000777000175000017500000000000011134133446016417 5ustar fzfzreiser4progs-1.0.7.orig/plugin/object/reg40/reg40.c0000644000175000017500000002155311131470543017505 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. reg40.c -- reiser4 regular file plugin. */ #ifndef ENABLE_MINIMAL # include #endif #include #include "reiser4/plugin.h" #include "plugin/object/obj40/obj40.h" #include "reg40_repair.h" /* Reads @n bytes to passed buffer @buff. Negative values are returned on errors. */ static int64_t reg40_read(reiser4_object_t *reg, void *buff, uint64_t n) { errno_t res; int64_t read; uint64_t off; uint64_t fsize; trans_hint_t hint; aal_assert("umka-2511", buff != NULL); aal_assert("umka-2512", reg != NULL); if ((res = obj40_update(reg))) return res; fsize = obj40_get_size(reg); off = obj40_offset(reg); if (off > fsize) return 0; /* Correcting number of bytes to be read. It cannot be more then file size value from stat data. That is because, body item itself does not know reliably how long it is. For instnace, extent40. */ if (n > fsize - off) n = fsize - off; /* Reading data. */ if ((read = obj40_read(reg, &hint, buff, off, n)) < 0) return read; /* Updating file offset if needed. */ if (read > 0) obj40_seek(reg, off + read); return read; } #ifndef ENABLE_MINIMAL /* Returns plugin (tail or extent) for next write operation basing on passed @size -- new file size. This function will use tail policy plugin to find what kind of next body item should be writen. */ static reiser4_item_plug_t *reg40_policy_plug(reiser4_object_t *reg, uint64_t new_size) { aal_assert("umka-2394", reg != NULL); aal_assert("umka-2393", reiser4_pspolicy(reg) != NULL); /* Calling formatting policy plugin to detect body plugin. */ if (plugcall(reiser4_pspolicy(reg), tails, new_size)) { /* Trying to get non-standard tail plugin from stat data. And if it is not found, default one from params will be taken. */ return reiser4_pstail(reg); } /* The same for extent plugin */ return reiser4_psextent(reg); } #endif /* Open regular file by passed initial info and return initialized instance. This @info struct contains information about the obejct, like its statdata coord, etc. */ static errno_t reg40_open(reiser4_object_t *reg) { obj40_open(reg); #ifndef ENABLE_MINIMAL { lookup_t lookup; /* Get the body plugin in use. */ if ((lookup = obj40_update_body(reg, NULL)) < 0) { return lookup; } else if (lookup > 0) { reg->body_plug = reg->body.plug; } else { reg->body_plug = reg40_policy_plug(reg, 0); } } #endif return 0; } #ifndef ENABLE_MINIMAL static errno_t reg40_create(reiser4_object_t *reg, object_hint_t *hint) { errno_t res; if ((res = obj40_create(reg, hint))) return res; reg->body_plug = reg40_policy_plug(reg, 0); return 0; } /* Makes tail2extent and extent2tail conversion. */ static errno_t reg40_convert(reiser4_object_t *reg, reiser4_item_plug_t *plug) { errno_t res; conv_hint_t hint; aal_assert("umka-2467", plug != NULL); aal_assert("umka-2466", reg != NULL); aal_memset(&hint, 0, sizeof(hint)); /* Getting file data start key. We convert file starting from the zero offset until end is reached. */ aal_memcpy(&hint.offset, ®->position, sizeof(hint.offset)); objcall(&hint.offset, set_offset, 0); /* Prepare convert hint. */ hint.plug = plug; if ((res = obj40_update(reg))) return res; hint.count = obj40_get_size(reg); hint.place_func = NULL; /* Converting file data. */ if ((res = obj40_convert(reg, &hint))) return res; /* Updating stat data place */ if ((res = obj40_update(reg))) return res; /* Updating stat data fields. */ if (hint.bytes != obj40_get_bytes(reg)) return obj40_set_bytes(reg, hint.bytes); return 0; } /* Make sure, that file body is of particular plugin type, that depends on tail policy plugin. If no - convert it to plugin told by tail policy plugin. Called from all modifying calls like write(), truncate(), etc. */ static errno_t reg40_check_body(reiser4_object_t *reg, uint64_t new_size) { reiser4_item_plug_t *plug; aal_assert("umka-2395", reg != NULL); /* There is nothing to convert? */ if (!new_size) return 0; /* Getting item plugin that should be used according to the current tail policy plugin. */ if (!(plug = reg40_policy_plug(reg, new_size))) { aal_error("Can't get body plugin for new " "file size %llu.", new_size); return -EIO; } if (!reg->body_plug) { reg->body_plug = plug; return 0; } /* Comparing new plugin and old one. If they are the same, conversion if not needed. */ if (plug_equal(plug, reg->body_plug)) return 0; /* Convert file. */ reg->body_plug = plug; return reg40_convert(reg, plug); } /* Writes @n bytes from @buff to passed file */ static int64_t reg40_write(reiser4_object_t *reg, void *buff, uint64_t n) { sdhint_unix_t unixh; trans_hint_t hint; stat_hint_t stat; sdhint_lw_t lwh; int64_t count; uint64_t off; int64_t res; int dirty; aal_assert("umka-2281", reg != NULL); if ((res = obj40_update(reg))) return res; aal_memset(&stat, 0, sizeof(stat)); stat.ext[SDEXT_LW_ID] = &lwh; stat.ext[SDEXT_UNIX_ID] = &unixh; if ((res = obj40_load_stat(reg, &stat))) return res; off = obj40_offset(reg); dirty = 0; /* Inserting holes if needed. */ if (off > lwh.size) { count = off - lwh.size; /* Fill the hole with zeroes. */ if ((res = obj40_write(reg, &hint, NULL, lwh.size, count, reg->body_plug, NULL, NULL)) < 0) { return res; } lwh.size += res; unixh.bytes += hint.bytes; if (res || hint.bytes) dirty = 1; /* If not enough bytes are written, the hole is not filled yet, cannot continue, return 0. */ if (res != count) { if ((res = obj40_save_stat(reg, &stat))) return res; return 0; } } /* Putting data to tree. */ if ((count = obj40_write(reg, &hint, buff, off, n, reg->body_plug, NULL, NULL)) < 0) { return count; } off += count; if (hint.bytes) { unixh.bytes += hint.bytes; dirty = 1; } if (off > lwh.size) { lwh.size = off; dirty = 1; } if ((res = obj40_update(reg))) return res; /* Updating the SD place and update size, bytes there. */ if (dirty && (res = obj40_save_stat(reg, &stat))) return res; /* Convert body items if needed. */ if ((res = reg40_check_body(reg, lwh.size))) { aal_error("Can't perform tail conversion."); return res; } obj40_seek(reg, off); return count; } /* Truncates file to passed size @n. */ static errno_t reg40_truncate(reiser4_object_t *reg, uint64_t n) { errno_t res; /* Cutting items/units */ if ((res = obj40_truncate(reg, n, reg->body_plug)) < 0) return res; /* Converting body if needed. */ if ((res = reg40_check_body(reg, n))) aal_error("Can't perform tail conversion."); return res; } /* Removes file body items and file stat data item. */ static errno_t reg40_clobber(reiser4_object_t *reg) { errno_t res; aal_assert("umka-2299", reg != NULL); if ((res = reg40_truncate(reg, 0))) return res; return obj40_clobber(reg); } /* Enumerates all blocks belong to file and calls passed @region_func for each of them. It is needed for calculating fragmentation, printing, etc. */ static errno_t reg40_layout(reiser4_object_t *reg, region_func_t func, void *data) { obj40_reset(reg); return obj40_layout(reg, func, NULL, data); } /* Implements metadata() function. It traverses items belong to file. This is needed for printing, getting metadata, etc. */ static errno_t reg40_metadata(reiser4_object_t *reg, place_func_t place_func, void *data) { obj40_reset(reg); return obj40_traverse(reg, place_func, NULL, data); } #endif /* Regular file plugin. */ reiser4_object_plug_t reg40_plug = { .p = { .id = {OBJECT_REG40_ID, REG_OBJECT, OBJECT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "reg40", .desc = "Unix-file regular file plugin.", #endif }, #ifndef ENABLE_MINIMAL .inherit = obj40_inherit, .create = reg40_create, .write = reg40_write, .truncate = reg40_truncate, .layout = reg40_layout, .metadata = reg40_metadata, .convert = reg40_convert, .link = obj40_link, .unlink = obj40_unlink, .linked = obj40_linked, .clobber = reg40_clobber, .recognize = obj40_recognize, .check_struct = reg40_check_struct, .add_entry = NULL, .rem_entry = NULL, .build_entry = NULL, .attach = NULL, .detach = NULL, .fake = NULL, .check_attach = NULL, #endif .lookup = NULL, .follow = NULL, .readdir = NULL, .telldir = NULL, .seekdir = NULL, .stat = obj40_load_stat, .open = reg40_open, .close = NULL, .reset = obj40_reset, .seek = obj40_seek, .offset = obj40_offset, .read = reg40_read, #ifndef ENABLE_MINIMAL .sdext_mandatory = (1 << SDEXT_LW_ID), .sdext_unknown = (1 << SDEXT_SYMLINK_ID), #endif }; reiser4progs-1.0.7.orig/plugin/object/reg40/Makefile.in0000644000175000017500000004615511134132276020473 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/object/reg40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libreg40_minimal_la_LIBADD = am__libreg40_minimal_la_SOURCES_DIST = reg40.c reg40_repair.c \ reg40_repair.h am__objects_1 = libreg40_minimal_la-reg40.lo \ libreg40_minimal_la-reg40_repair.lo @ENABLE_MINIMAL_TRUE@am_libreg40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libreg40_minimal_la_OBJECTS = $(am_libreg40_minimal_la_OBJECTS) libreg40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libreg40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libreg40_minimal_la_rpath = libreg40_static_la_LIBADD = am__objects_2 = libreg40_static_la-reg40.lo \ libreg40_static_la-reg40_repair.lo am_libreg40_static_la_OBJECTS = $(am__objects_2) libreg40_static_la_OBJECTS = $(am_libreg40_static_la_OBJECTS) libreg40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libreg40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libreg40_minimal_la_SOURCES) $(libreg40_static_la_SOURCES) DIST_SOURCES = $(am__libreg40_minimal_la_SOURCES_DIST) \ $(libreg40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ reg40_sources = reg40.c reg40_repair.c reg40_repair.h STATIC_LIBS = libreg40-static.la libreg40_static_la_SOURCES = $(reg40_sources) libreg40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libreg40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libreg40_minimal_la_SOURCES = $(reg40_sources) @ENABLE_MINIMAL_TRUE@libreg40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/object/reg40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/object/reg40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libreg40-minimal.la: $(libreg40_minimal_la_OBJECTS) $(libreg40_minimal_la_DEPENDENCIES) $(libreg40_minimal_la_LINK) $(am_libreg40_minimal_la_rpath) $(libreg40_minimal_la_OBJECTS) $(libreg40_minimal_la_LIBADD) $(LIBS) libreg40-static.la: $(libreg40_static_la_OBJECTS) $(libreg40_static_la_DEPENDENCIES) $(libreg40_static_la_LINK) $(libreg40_static_la_OBJECTS) $(libreg40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreg40_minimal_la-reg40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreg40_minimal_la-reg40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreg40_static_la-reg40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreg40_static_la-reg40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libreg40_minimal_la-reg40.lo: reg40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreg40_minimal_la_CFLAGS) $(CFLAGS) -MT libreg40_minimal_la-reg40.lo -MD -MP -MF $(DEPDIR)/libreg40_minimal_la-reg40.Tpo -c -o libreg40_minimal_la-reg40.lo `test -f 'reg40.c' || echo '$(srcdir)/'`reg40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreg40_minimal_la-reg40.Tpo $(DEPDIR)/libreg40_minimal_la-reg40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reg40.c' object='libreg40_minimal_la-reg40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreg40_minimal_la_CFLAGS) $(CFLAGS) -c -o libreg40_minimal_la-reg40.lo `test -f 'reg40.c' || echo '$(srcdir)/'`reg40.c libreg40_minimal_la-reg40_repair.lo: reg40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreg40_minimal_la_CFLAGS) $(CFLAGS) -MT libreg40_minimal_la-reg40_repair.lo -MD -MP -MF $(DEPDIR)/libreg40_minimal_la-reg40_repair.Tpo -c -o libreg40_minimal_la-reg40_repair.lo `test -f 'reg40_repair.c' || echo '$(srcdir)/'`reg40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreg40_minimal_la-reg40_repair.Tpo $(DEPDIR)/libreg40_minimal_la-reg40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reg40_repair.c' object='libreg40_minimal_la-reg40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreg40_minimal_la_CFLAGS) $(CFLAGS) -c -o libreg40_minimal_la-reg40_repair.lo `test -f 'reg40_repair.c' || echo '$(srcdir)/'`reg40_repair.c libreg40_static_la-reg40.lo: reg40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreg40_static_la_CFLAGS) $(CFLAGS) -MT libreg40_static_la-reg40.lo -MD -MP -MF $(DEPDIR)/libreg40_static_la-reg40.Tpo -c -o libreg40_static_la-reg40.lo `test -f 'reg40.c' || echo '$(srcdir)/'`reg40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreg40_static_la-reg40.Tpo $(DEPDIR)/libreg40_static_la-reg40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reg40.c' object='libreg40_static_la-reg40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreg40_static_la_CFLAGS) $(CFLAGS) -c -o libreg40_static_la-reg40.lo `test -f 'reg40.c' || echo '$(srcdir)/'`reg40.c libreg40_static_la-reg40_repair.lo: reg40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreg40_static_la_CFLAGS) $(CFLAGS) -MT libreg40_static_la-reg40_repair.lo -MD -MP -MF $(DEPDIR)/libreg40_static_la-reg40_repair.Tpo -c -o libreg40_static_la-reg40_repair.lo `test -f 'reg40_repair.c' || echo '$(srcdir)/'`reg40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreg40_static_la-reg40_repair.Tpo $(DEPDIR)/libreg40_static_la-reg40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reg40_repair.c' object='libreg40_static_la-reg40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreg40_static_la_CFLAGS) $(CFLAGS) -c -o libreg40_static_la-reg40_repair.lo `test -f 'reg40_repair.c' || echo '$(srcdir)/'`reg40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/object/reg40/reg40_repair.c0000644000175000017500000002053611131470543021047 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. reg40_repair.c -- reiser4 regular file plugin repair code. */ #ifndef ENABLE_MINIMAL #include "reg40_repair.h" static int reg40_check_size(reiser4_object_t *reg, uint64_t *sd_size, uint64_t counted_size) { aal_assert("vpf-1318", reg != NULL); aal_assert("vpf-1318", sd_size != NULL); if (*sd_size == counted_size) return 0; /* sd_size lt counted size, check if it is correct for extent. */ if (reg->body_plug && reg->body_plug->p.id.group == EXTENT_ITEM) { /* The last extent block can be not used up. */ if (*sd_size < counted_size && *sd_size + place_blksize(STAT_PLACE(reg)) > counted_size) { return 0; } } /* SD size is not correct. */ *sd_size = counted_size; return 1; } static errno_t reg40_check_ikey(reiser4_object_t *reg) { uint64_t offset; aal_assert("vpf-1302", reg != NULL); aal_assert("vpf-1303", reg->body.plug != NULL); if (reg->body.plug->p.id.group == TAIL_ITEM) return 0; if (reg->body.plug->p.id.group != EXTENT_ITEM) return -EINVAL; offset = objcall(®->body.key, get_offset); return offset % place_blksize(®->body) ? RE_FATAL : 0; } /* Returns 1 if the convertion is needed right now, 0 if should be delayed. */ static int reg40_conv_prepare(reiser4_object_t *reg, conv_hint_t *hint, uint64_t maxreal, uint8_t mode) { object_info_t *info; aal_assert("vpf-1348", reg != NULL); aal_assert("vpf-1349", hint != NULL); aal_assert("vpf-1353", reg->body.plug != NULL); if (plug_equal(reg->body.plug, reg->body_plug)) return 0; info = ®->info; if (plug_equal(reg->body.plug, reiser4_psextent(reg))) { /* Extent found, all previous items were tails, convert all previous ones to extents. */ hint->plug = reg->body.plug; /* Convert from 0 to this item offset bytes. */ if (!(hint->count = objcall(®->body.key, get_offset))) return 0; /* Set the start key for convertion. */ aal_memcpy(&hint->offset, ®->position, sizeof(hint->offset)); objcall(&hint->offset, set_offset, 0); hint->bytes = 0; /* Convert now. */ return 0; } /* The current item should be converted to the body plug. Gather all items of the same wrong plug and convert them all together at once later. */ hint->plug = reg->body_plug; if (hint->offset.plug == NULL) { aal_memcpy(&hint->offset, ®->position, sizeof(hint->offset)); hint->bytes = 0; } /* Count of bytes 0-this item offset. */ hint->count = maxreal + 1 - objcall(&hint->offset, get_offset); /* Convertion is postponed; do not bother with it for not RM_BUILD. */ return 1; } static errno_t reg40_hole_cure(reiser4_object_t *reg, obj40_stat_hint_t *hint, place_func_t func, uint8_t mode) { trans_hint_t trans; uint64_t offset; uint64_t len; int64_t res; aal_assert("vpf-1355", reg != NULL); offset = objcall(®->body.key, get_offset); len = offset - obj40_offset(reg); if (len == 0) return 0; fsck_mess("The object [%s] has a break at [%llu-%llu] offsets. " "Plugin %s.%s", print_inode(obj40_core, ®->info.object), offset - len, offset, reiser4_psobj(reg)->p.label, mode == RM_BUILD ? " Writing a hole there." : ""); if (mode != RM_BUILD) return RE_FATAL; if ((res = obj40_write(reg, &trans, NULL, offset - len, len, reg->body_plug, func, NULL)) < 0) { aal_error("The object [%s] failed to create the hole " "at [%llu-%llu] offsets. Plugin %s.", print_inode(obj40_core, ®->info.object), offset - len, offset, reiser4_psobj(reg)->p.label); return res; } hint->bytes += trans.bytes; return 0; } static errno_t reg40_check_item(reiser4_object_t *reg, void *data) { uint8_t mode = *(uint8_t *)data; if (!plug_equal(reg->body.plug, reiser4_psextent(reg)) && !plug_equal(reg->body.plug, reiser4_pstail(reg))) { fsck_mess("The object [%s] (%s), node (%llu)," "item (%u): the item [%s] of the " "invalid plugin (%s) found.%s", print_inode(obj40_core, ®->info.object), reiser4_psobj(reg)->p.label, place_blknr(®->body), reg->body.pos.item, print_key(obj40_core, ®->body.key), reg->body.plug->p.label, mode == RM_BUILD ? " Removed." : ""); return mode == RM_BUILD ? -ESTRUCT : RE_FATAL; } else if (reg40_check_ikey(reg)) { fsck_mess("The object [%s] (%s), node (%llu)," "item (%u): the item [%s] has the " "wrong offset.%s", print_inode(obj40_core, ®->info.object), reiser4_psobj(reg)->p.label, place_blknr(®->body), reg->body.pos.item, print_key(obj40_core, ®->body.key), mode == RM_BUILD ? " Removed." : ""); return mode == RM_BUILD ? -ESTRUCT : RE_FATAL; } return 0; } errno_t reg40_check_struct(reiser4_object_t *reg, place_func_t func, void *data, uint8_t mode) { obj40_stat_hint_t hint; conv_hint_t conv; uint64_t maxreal; uint64_t offset; errno_t res = 0; aal_assert("vpf-1126", reg != NULL); aal_assert("vpf-1190", reg->info.tree != NULL); aal_assert("vpf-1197", reg->info.object.plug != NULL); aal_memset(&hint, 0, sizeof(hint)); aal_memset(&conv, 0, sizeof(conv)); if ((res = obj40_prepare_stat(reg, S_IFREG, mode))) return res; /* Try to register SD as an item of this file. */ if (func && func(®->info.start, data)) return -EINVAL; conv.place_func = func; conv.ins_hole = 1; maxreal = 0; /* Reg40 object (its SD item) has been opened or created. */ while (1) { errno_t result; int the_end = 0; result = obj40_check_item(reg, reg40_check_item, NULL, &mode); if (repair_error_fatal(result)) return result; else if (result == ABSENT) the_end = 1; offset = maxreal; if (!the_end) { maxreal = obj40_place_maxreal(®->body); if (!reg->body_plug) reg->body_plug = reg->body.plug; if (maxreal < offset) { aal_bug("vpf-1865", "The position " "offset is overflowed: [%s].", print_key(obj40_core, ®->position)); } if (objcall(®->position, compfull, ®->body.key) > 0) { /* If in the middle of the item, go to the next. It may happen after the tail->extent convertion. */ goto next; } /* Prepare the convertion if needed. */ result = reg40_conv_prepare(reg, &conv, maxreal, mode); } /* If result == 1 -- conversion is postponed; If result == 0 -- conversion is not postponed anymore; If conv.offset.plug != NULL, conversion was postponed. */ if (result == 0 && conv.offset.plug) { offset = objcall(&conv.offset, get_offset); fsck_mess("The object [%s] (%s): items at offsets " "[%llu..%llu] does not not match the " "detected tail policy (%s).%s", print_inode(obj40_core, ®->info.object), reiser4_psobj(reg)->p.label, offset, offset + conv.count - 1, reiser4_pspolicy(reg)->p.label, mode == RM_BUILD ? " Converted." : ""); if (mode == RM_BUILD) { if ((result = obj40_convert(reg, &conv))) return result; } else { res |= RE_FATAL; } reg->body_plug = conv.plug; aal_memset(&conv.offset, 0, sizeof(conv.offset)); continue; } /* No more items, break out here. */ if (the_end) break; /* Try to register this item. Any item has a pointer to objectid in the key, if it is shared between 2 objects, it should be already solved at relocation time. */ if (func && func(®->body, data)) return -EINVAL; /* If conversion is postponed, do not count bytes and do not cure for holes. */ if (conv.offset.plug) goto next; hint.bytes += objcall(®->body, object->bytes); /* If we found not we looking for, insert the hole. */ if ((result = reg40_hole_cure(reg, &hint, func, mode)) < 0) return result; next: /* If the file size is the max possible one, break out here to not seek to 0. */ if (maxreal == MAX_UINT64) break; /* Find the next after the maxreal key. */ obj40_seek(reg, maxreal + 1); } /* Fix the SD, if no fatal corruptions were found. */ if (!(res & RE_FATAL)) { obj40_stat_ops_t ops; aal_memset(&ops, 0, sizeof(ops)); ops.check_size = reg40_check_size; ops.check_nlink = mode == RM_BUILD ? 0 : SKIP_METHOD; hint.mode = S_IFREG; hint.size = objcall(®->position, get_offset); res |= obj40_update_stat(reg, &ops, &hint, mode); } obj40_reset(reg); return res; } #endif reiser4progs-1.0.7.orig/plugin/object/reg40/reg40_repair.h0000644000175000017500000000111711131470543021046 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. reg40_repair.h -- reiser4 regular file plugin repair functions. */ #ifndef REG40_REPAIR_H #define REG40_REPAIR_H #include #include "reiser4/plugin.h" #include "plugin/object/obj40/obj40.h" #include "plugin/object/obj40/obj40_repair.h" extern errno_t reg40_form(reiser4_object_t *object); extern errno_t reg40_check_struct(reiser4_object_t *object, place_func_t place_func, void *data, uint8_t mode); extern errno_t reg40_recognize(reiser4_object_t *reg); #endif reiser4progs-1.0.7.orig/plugin/object/reg40/Makefile.am0000644000175000017500000000107311131470543020447 0ustar fzfzincludedir = -I$(top_srcdir)/include reg40_sources = reg40.c reg40_repair.c reg40_repair.h STATIC_LIBS = libreg40-static.la libreg40_static_la_SOURCES = $(reg40_sources) libreg40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libreg40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libreg40_minimal_la_SOURCES = $(reg40_sources) libreg40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/object/spl40/0000777000175000017500000000000011134133447016441 5ustar fzfzreiser4progs-1.0.7.orig/plugin/object/spl40/Makefile.in0000644000175000017500000004617511134132277020517 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/object/spl40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libspl40_minimal_la_LIBADD = am__libspl40_minimal_la_SOURCES_DIST = spl40.c spl40.h spl40_repair.c \ spl40_repair.h am__objects_1 = libspl40_minimal_la-spl40.lo \ libspl40_minimal_la-spl40_repair.lo @ENABLE_MINIMAL_TRUE@am_libspl40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libspl40_minimal_la_OBJECTS = $(am_libspl40_minimal_la_OBJECTS) libspl40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libspl40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libspl40_minimal_la_rpath = libspl40_static_la_LIBADD = am__objects_2 = libspl40_static_la-spl40.lo \ libspl40_static_la-spl40_repair.lo am_libspl40_static_la_OBJECTS = $(am__objects_2) libspl40_static_la_OBJECTS = $(am_libspl40_static_la_OBJECTS) libspl40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libspl40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libspl40_minimal_la_SOURCES) $(libspl40_static_la_SOURCES) DIST_SOURCES = $(am__libspl40_minimal_la_SOURCES_DIST) \ $(libspl40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ spl40_sources = spl40.c spl40.h spl40_repair.c spl40_repair.h STATIC_LIBS = libspl40-static.la libspl40_static_la_SOURCES = $(spl40_sources) libspl40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libspl40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libspl40_minimal_la_SOURCES = $(spl40_sources) @ENABLE_MINIMAL_TRUE@libspl40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/object/spl40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/object/spl40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libspl40-minimal.la: $(libspl40_minimal_la_OBJECTS) $(libspl40_minimal_la_DEPENDENCIES) $(libspl40_minimal_la_LINK) $(am_libspl40_minimal_la_rpath) $(libspl40_minimal_la_OBJECTS) $(libspl40_minimal_la_LIBADD) $(LIBS) libspl40-static.la: $(libspl40_static_la_OBJECTS) $(libspl40_static_la_DEPENDENCIES) $(libspl40_static_la_LINK) $(libspl40_static_la_OBJECTS) $(libspl40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libspl40_minimal_la-spl40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libspl40_minimal_la-spl40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libspl40_static_la-spl40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libspl40_static_la-spl40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libspl40_minimal_la-spl40.lo: spl40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libspl40_minimal_la_CFLAGS) $(CFLAGS) -MT libspl40_minimal_la-spl40.lo -MD -MP -MF $(DEPDIR)/libspl40_minimal_la-spl40.Tpo -c -o libspl40_minimal_la-spl40.lo `test -f 'spl40.c' || echo '$(srcdir)/'`spl40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libspl40_minimal_la-spl40.Tpo $(DEPDIR)/libspl40_minimal_la-spl40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spl40.c' object='libspl40_minimal_la-spl40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libspl40_minimal_la_CFLAGS) $(CFLAGS) -c -o libspl40_minimal_la-spl40.lo `test -f 'spl40.c' || echo '$(srcdir)/'`spl40.c libspl40_minimal_la-spl40_repair.lo: spl40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libspl40_minimal_la_CFLAGS) $(CFLAGS) -MT libspl40_minimal_la-spl40_repair.lo -MD -MP -MF $(DEPDIR)/libspl40_minimal_la-spl40_repair.Tpo -c -o libspl40_minimal_la-spl40_repair.lo `test -f 'spl40_repair.c' || echo '$(srcdir)/'`spl40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libspl40_minimal_la-spl40_repair.Tpo $(DEPDIR)/libspl40_minimal_la-spl40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spl40_repair.c' object='libspl40_minimal_la-spl40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libspl40_minimal_la_CFLAGS) $(CFLAGS) -c -o libspl40_minimal_la-spl40_repair.lo `test -f 'spl40_repair.c' || echo '$(srcdir)/'`spl40_repair.c libspl40_static_la-spl40.lo: spl40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libspl40_static_la_CFLAGS) $(CFLAGS) -MT libspl40_static_la-spl40.lo -MD -MP -MF $(DEPDIR)/libspl40_static_la-spl40.Tpo -c -o libspl40_static_la-spl40.lo `test -f 'spl40.c' || echo '$(srcdir)/'`spl40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libspl40_static_la-spl40.Tpo $(DEPDIR)/libspl40_static_la-spl40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spl40.c' object='libspl40_static_la-spl40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libspl40_static_la_CFLAGS) $(CFLAGS) -c -o libspl40_static_la-spl40.lo `test -f 'spl40.c' || echo '$(srcdir)/'`spl40.c libspl40_static_la-spl40_repair.lo: spl40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libspl40_static_la_CFLAGS) $(CFLAGS) -MT libspl40_static_la-spl40_repair.lo -MD -MP -MF $(DEPDIR)/libspl40_static_la-spl40_repair.Tpo -c -o libspl40_static_la-spl40_repair.lo `test -f 'spl40_repair.c' || echo '$(srcdir)/'`spl40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libspl40_static_la-spl40_repair.Tpo $(DEPDIR)/libspl40_static_la-spl40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spl40_repair.c' object='libspl40_static_la-spl40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libspl40_static_la_CFLAGS) $(CFLAGS) -c -o libspl40_static_la-spl40_repair.lo `test -f 'spl40_repair.c' || echo '$(srcdir)/'`spl40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/object/spl40/spl40_repair.c0000644000175000017500000000246411131470543021111 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. spl40_repair.c -- reiser4 special files plugin repair code. */ #ifndef ENABLE_MINIMAL #ifdef ENABLE_SPECIAL #include "spl40_repair.h" static int spl40_check_mode(reiser4_object_t *spl, uint16_t *mode, uint16_t correct) { if (S_ISCHR(*mode) || S_ISBLK(*mode) || S_ISFIFO(*mode) || S_ISSOCK(*mode)) { return 0; } *mode &= ~S_IFMT; *mode |= S_IFBLK; return 1; } errno_t spl40_check_struct(reiser4_object_t *spl, place_func_t place_func, void *data, uint8_t mode) { obj40_stat_hint_t hint; obj40_stat_ops_t ops; errno_t res; aal_assert("vpf-1357", spl != NULL); aal_assert("vpf-1358", spl->info.tree != NULL); aal_assert("vpf-1359", spl->info.object.plug != NULL); aal_memset(&ops, 0, sizeof(ops)); aal_memset(&hint, 0, sizeof(hint)); if ((res = obj40_prepare_stat(spl, S_IFBLK, mode))) return res; /* Try to register SD as an item of this file. */ if (place_func && place_func(&spl->info.start, data)) return -EINVAL; ops.check_mode = spl40_check_mode; ops.check_bytes = SKIP_METHOD; ops.check_nlink = mode == RM_BUILD ? 0 : SKIP_METHOD; /* Fix the SD, if no fatal corruptions were found. */ return obj40_update_stat(spl, &ops, &hint, mode); } #endif #endif reiser4progs-1.0.7.orig/plugin/object/spl40/spl40.c0000644000175000017500000000266711131470543017554 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. spl40.c -- reiser4 special files plugin. */ #ifdef ENABLE_SPECIAL #include "spl40.h" #include "spl40_repair.h" #define sym40_core obj40_core reiser4_object_plug_t spl40_plug = { .p = { .id = {OBJECT_SPL40_ID, SPL_OBJECT, OBJECT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "spl40", .desc = "Special file plugin.", #endif }, #ifndef ENABLE_MINIMAL .inherit = obj40_inherit, .create = obj40_create, .metadata = obj40_metadata, .link = obj40_link, .unlink = obj40_unlink, .linked = obj40_linked, .clobber = obj40_clobber, .check_struct = spl40_check_struct, .recognize = obj40_recognize, .layout = NULL, .seek = NULL, .write = NULL, .convert = NULL, .truncate = NULL, .rem_entry = NULL, .add_entry = NULL, .build_entry = NULL, .attach = NULL, .detach = NULL, .fake = NULL, .check_attach = NULL, #endif .lookup = NULL, .reset = NULL, .offset = NULL, .readdir = NULL, .telldir = NULL, .seekdir = NULL, .read = NULL, .follow = NULL, .stat = obj40_load_stat, .open = obj40_open, .close = NULL, #ifndef ENABLE_MINIMAL .sdext_mandatory = (1 << SDEXT_LW_ID), .sdext_unknown = (1 << SDEXT_SYMLINK_ID) #endif }; #endif reiser4progs-1.0.7.orig/plugin/object/spl40/spl40_repair.h0000644000175000017500000000071611131470543021114 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. spl40_repair.h -- reiser4 special file plugin repair methods. */ #ifndef SPL40_REPAIR_H #define SPL40_REPAIR_H #include "spl40.h" #include "plugin/object/obj40/obj40_repair.h" extern errno_t spl40_recognize(reiser4_object_t *spl); extern errno_t spl40_check_struct(reiser4_object_t *spl, place_func_t place_func, void *data, uint8_t mode); #endif reiser4progs-1.0.7.orig/plugin/object/spl40/spl40.h0000644000175000017500000000000111131470543017535 0ustar fzfz reiser4progs-1.0.7.orig/plugin/object/spl40/Makefile.am0000644000175000017500000000110611131470543020465 0ustar fzfzincludedir = -I$(top_srcdir)/include spl40_sources = spl40.c spl40.h spl40_repair.c spl40_repair.h STATIC_LIBS = libspl40-static.la libspl40_static_la_SOURCES = $(spl40_sources) libspl40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libspl40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libspl40_minimal_la_SOURCES = $(spl40_sources) libspl40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/object/obj40/0000777000175000017500000000000011134133446016414 5ustar fzfzreiser4progs-1.0.7.orig/plugin/object/obj40/Makefile.in0000644000175000017500000004614011134132276020462 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/object/obj40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libobj40_minimal_la_LIBADD = am__libobj40_minimal_la_SOURCES_DIST = obj40.c obj40_repair.c obj40.h \ obj40_repair.h am__objects_1 = libobj40_minimal_la-obj40.lo \ libobj40_minimal_la-obj40_repair.lo @ENABLE_MINIMAL_TRUE@am_libobj40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libobj40_minimal_la_OBJECTS = $(am_libobj40_minimal_la_OBJECTS) libobj40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libobj40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libobj40_minimal_la_rpath = libobj40_static_la_LIBADD = am__objects_2 = libobj40_static_la-obj40.lo \ libobj40_static_la-obj40_repair.lo am_libobj40_static_la_OBJECTS = $(am__objects_2) libobj40_static_la_OBJECTS = $(am_libobj40_static_la_OBJECTS) libobj40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libobj40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libobj40_minimal_la_SOURCES) $(libobj40_static_la_SOURCES) DIST_SOURCES = $(am__libobj40_minimal_la_SOURCES_DIST) \ $(libobj40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ obj40_sources = obj40.c obj40_repair.c obj40.h obj40_repair.h libobj40_static_la_SOURCES = $(obj40_sources) libobj40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libobj40-minimal.la noinst_LTLIBRARIES = libobj40-static.la $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libobj40_minimal_la_SOURCES = $(obj40_sources) @ENABLE_MINIMAL_TRUE@libobj40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/object/obj40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/object/obj40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libobj40-minimal.la: $(libobj40_minimal_la_OBJECTS) $(libobj40_minimal_la_DEPENDENCIES) $(libobj40_minimal_la_LINK) $(am_libobj40_minimal_la_rpath) $(libobj40_minimal_la_OBJECTS) $(libobj40_minimal_la_LIBADD) $(LIBS) libobj40-static.la: $(libobj40_static_la_OBJECTS) $(libobj40_static_la_DEPENDENCIES) $(libobj40_static_la_LINK) $(libobj40_static_la_OBJECTS) $(libobj40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libobj40_minimal_la-obj40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libobj40_minimal_la-obj40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libobj40_static_la-obj40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libobj40_static_la-obj40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libobj40_minimal_la-obj40.lo: obj40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libobj40_minimal_la_CFLAGS) $(CFLAGS) -MT libobj40_minimal_la-obj40.lo -MD -MP -MF $(DEPDIR)/libobj40_minimal_la-obj40.Tpo -c -o libobj40_minimal_la-obj40.lo `test -f 'obj40.c' || echo '$(srcdir)/'`obj40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libobj40_minimal_la-obj40.Tpo $(DEPDIR)/libobj40_minimal_la-obj40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='obj40.c' object='libobj40_minimal_la-obj40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libobj40_minimal_la_CFLAGS) $(CFLAGS) -c -o libobj40_minimal_la-obj40.lo `test -f 'obj40.c' || echo '$(srcdir)/'`obj40.c libobj40_minimal_la-obj40_repair.lo: obj40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libobj40_minimal_la_CFLAGS) $(CFLAGS) -MT libobj40_minimal_la-obj40_repair.lo -MD -MP -MF $(DEPDIR)/libobj40_minimal_la-obj40_repair.Tpo -c -o libobj40_minimal_la-obj40_repair.lo `test -f 'obj40_repair.c' || echo '$(srcdir)/'`obj40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libobj40_minimal_la-obj40_repair.Tpo $(DEPDIR)/libobj40_minimal_la-obj40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='obj40_repair.c' object='libobj40_minimal_la-obj40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libobj40_minimal_la_CFLAGS) $(CFLAGS) -c -o libobj40_minimal_la-obj40_repair.lo `test -f 'obj40_repair.c' || echo '$(srcdir)/'`obj40_repair.c libobj40_static_la-obj40.lo: obj40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libobj40_static_la_CFLAGS) $(CFLAGS) -MT libobj40_static_la-obj40.lo -MD -MP -MF $(DEPDIR)/libobj40_static_la-obj40.Tpo -c -o libobj40_static_la-obj40.lo `test -f 'obj40.c' || echo '$(srcdir)/'`obj40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libobj40_static_la-obj40.Tpo $(DEPDIR)/libobj40_static_la-obj40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='obj40.c' object='libobj40_static_la-obj40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libobj40_static_la_CFLAGS) $(CFLAGS) -c -o libobj40_static_la-obj40.lo `test -f 'obj40.c' || echo '$(srcdir)/'`obj40.c libobj40_static_la-obj40_repair.lo: obj40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libobj40_static_la_CFLAGS) $(CFLAGS) -MT libobj40_static_la-obj40_repair.lo -MD -MP -MF $(DEPDIR)/libobj40_static_la-obj40_repair.Tpo -c -o libobj40_static_la-obj40_repair.lo `test -f 'obj40_repair.c' || echo '$(srcdir)/'`obj40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libobj40_static_la-obj40_repair.Tpo $(DEPDIR)/libobj40_static_la-obj40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='obj40_repair.c' object='libobj40_static_la-obj40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libobj40_static_la_CFLAGS) $(CFLAGS) -c -o libobj40_static_la-obj40_repair.lo `test -f 'obj40_repair.c' || echo '$(srcdir)/'`obj40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/object/obj40/obj40_repair.c0000644000175000017500000004116711131472663021051 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. obj40_repair.c -- reiser4 file 40 plugins repair code. */ #ifndef ENABLE_MINIMAL #include "obj40_repair.h" #define STAT_KEY(o) \ (&((o)->info.start.key)) static void obj40_init(reiser4_object_t *object) { if (!object->info.start.plug) aal_memcpy(STAT_KEY(object), &object->info.object, sizeof(object->info.object)); } /* Obtains the maxreal key of the given place. */ uint64_t obj40_place_maxreal(reiser4_place_t *place) { reiser4_key_t key; objcall(place, balance->maxreal_key, &key); return objcall(&key, get_offset); } static errno_t obj40_exts_check(reiser4_object_t *obj) { reiser4_object_plug_t *ops; uint64_t extmask; aal_assert("vpf-1831", obj != NULL); extmask = obj40_extmask(&obj->info.start); ops = reiser4_psobj(obj); /* Check that there is no one unknown extension. */ if (extmask & ops->sdext_unknown) return RE_FATAL; /* Check that LW and UNIX extensions exist. */ return ((extmask & ops->sdext_mandatory) == ops->sdext_mandatory) ? 0 : RE_FATAL; } /* Checks that @obj->info.start is SD of the wanted file. */ static errno_t obj40_check_stat(reiser4_object_t *obj) { object_info_t *info; errno_t res; aal_assert("vpf-1200", obj != NULL); info = &obj->info; if (!info->start.plug) { if (!obj40_valid_item(&info->start)) return RE_FATAL; if ((res = obj40_fetch_item(&info->start))) return res; } if (info->start.plug->p.id.group != STAT_ITEM) return RE_FATAL; #if 0 /* Compare the correct key with the place key. */ if (plug_call(info->object.plug, compfull, &info->object, &info->start.key)) { return RE_FATAL; } #endif /* Some SD is recognized. Check that this is our SD. */ return obj40_exts_check(obj); } /* The plugin tries to recognize the object: detects the SD, body items */ static errno_t obj40_objkey_check(reiser4_object_t *obj) { object_info_t *info; reiser4_key_t key; aal_assert("vpf-1121", obj->info.tree != NULL); aal_assert("vpf-1127", obj->info.object.plug != NULL); info = &obj->info; /* Check if the key pointer is correct and then check the found item if it is SD with the proper key. */ plugcall(info->object.plug, build_generic, &key, KEY_STATDATA_TYPE, objcall(&info->object, get_locality), objcall(&info->object, get_ordering), objcall(&info->object, get_objectid), 0); /* Compare the correct key with the search one. */ return objcall(&key, compfull, &info->object) ? RE_FATAL : 0; } errno_t obj40_recognize(reiser4_object_t *obj) { errno_t res; aal_assert("vpf-1231", obj != NULL); /* Initializing file handle */ obj40_init(obj); if ((res = obj40_objkey_check(obj))) return res; if ((res = obj40_check_stat(obj))) return res; /* Positioning to the first directory unit */ if (reiser4_psobj(obj)->reset) reiser4_psobj(obj)->reset(obj); return 0; } #define OBJ40_CHECK(field, type, value, correct) \ static inline int obj40_check_##field(reiser4_object_t *obj, \ type *value, \ type correct) \ { \ if (*value == correct) \ return 0; \ \ *value = correct; \ return 1; \ } /* The default method for nlink and size handling. */ OBJ40_CHECK(nlink, uint32_t, value, correct); OBJ40_CHECK(size, uint64_t, value, correct); OBJ40_CHECK(bytes, uint64_t, value, correct); static inline void obj40_check_bytes_report(reiser4_place_t *start, reiser4_core_t *core, uint64_t found_bytes, uint8_t mode, uint64_t correct_bytes) { fsck_mess("Node (%llu), item (%u), [%s] (%s): wrong bytes " "(%llu), %s (%llu).", place_blknr(start), start->pos.item, print_inode(core, &start->key), start->plug->p.label, found_bytes, mode == RM_CHECK ? "Should be" : "Fixed to", correct_bytes); } static inline int obj40_check_mode(reiser4_object_t *obj, uint16_t *mode, uint16_t correct) { if (((*mode) & S_IFMT) == correct) return 0; *mode &= ~S_IFMT; *mode |= correct; return 1; } static inline errno_t obj40_stat_unix_check(reiser4_object_t *obj, obj40_stat_ops_t *ops, obj40_stat_hint_t *hint, uint8_t mode, int present) { reiser4_place_t *start = &obj->info.start; sdhint_unix_t unixh, correct; errno_t res; int fixed; aal_memset(&unixh, 0, sizeof(unixh)); /* If the UNIX extention is not present, skip checking or add it. */ if (!present) { trans_hint_t trans; stat_hint_t stat; /* If the LW extention is not mandatory, skip checking. */ if (!(reiser4_psobj(obj)->sdext_mandatory & (1 << SDEXT_UNIX_ID))) { return 0; } fsck_mess("Node (%llu), item (%u), [%s] (%s): no mandatory " "unix extention.%s Plugin (%s).", place_blknr(start), start->pos.item, print_inode(obj40_core, &start->key), start->plug->p.label, mode != RM_CHECK ? " Added." : "", reiser4_psobj(obj)->p.label); if (mode == RM_CHECK) return RE_FIXABLE; /* Add missed, mandatory extention. */ aal_memset(&trans, 0, sizeof(trans)); aal_memset(&stat, 0, sizeof(stat)); trans.shift_flags = SF_DEFAULT; trans.specific = &stat; trans.plug = start->plug; obj40_stat_unix_init(&stat, &unixh, hint->bytes, 0); start->pos.unit = 0; if ((res = obj40_insert(obj, start, &trans, LEAF_LEVEL))) return res; if ((res = obj40_update(obj))) return res; /* Do not return here, but check the new extention with the given set of methods instead. */ } if ((res = obj40_read_ext(obj, SDEXT_UNIX_ID, &unixh)) < 0) return res; correct = unixh; if (ops->check_bytes == NULL) { /* Call the default one. */ fixed = obj40_check_bytes(obj, &correct.bytes, hint->bytes); } else if (ops->check_bytes != SKIP_METHOD) { fixed = ops->check_bytes(obj, &correct.bytes, hint->bytes); } else { fixed = 0; } if (fixed) { /* sd_bytes are set wrongly in the kernel. */ if (ops->check_bytes_report == NULL) { /* Report with the default method */ obj40_check_bytes_report(start, obj40_core, unixh.bytes, mode, correct.bytes); } else if (ops->check_bytes_report != SKIP_METHOD) { ops->check_bytes_report(start, obj40_core, unixh.bytes, mode, correct.bytes); } else { ; } /* Zero rdev because rdev and bytes is the union on disk but not in the unixh. */ correct.rdev = 0; res = RE_FIXABLE; } if (res && mode != RM_CHECK) return obj40_write_ext(obj, SDEXT_UNIX_ID, &correct); return res; } static inline errno_t obj40_stat_lw_check(reiser4_object_t *obj, obj40_stat_ops_t *ops, obj40_stat_hint_t *hint, uint8_t mode, int present) { reiser4_place_t *start = &obj->info.start; sdhint_lw_t lwh, correct; errno_t res; int fixed; aal_memset(&lwh, 0, sizeof(lwh)); /* If the LW extention is not present, skip checking or add it. */ if (!present) { trans_hint_t trans; stat_hint_t stat; /* If the LW extention is not mandatory, skip checking. */ if (!(reiser4_psobj(obj)->sdext_mandatory & (1 << SDEXT_LW_ID))) { return 0; } fsck_mess("Node (%llu), item (%u), [%s] (%s): no mandatory " "light-weight extention.%s Plugin (%s).", place_blknr(start), start->pos.item, print_inode(obj40_core, &start->key), start->plug->p.label, mode != RM_CHECK ? "Added." : "", reiser4_psobj(obj)->p.label); if (mode == RM_CHECK) return RE_FIXABLE; /* Add missed, mandatory extention. */ aal_memset(&trans, 0, sizeof(trans)); aal_memset(&stat, 0, sizeof(stat)); trans.shift_flags = SF_DEFAULT; trans.specific = &stat; trans.plug = start->plug; obj40_stat_lw_init(obj, &stat, &lwh, hint->size, hint->nlink, hint->mode); start->pos.unit = 0; if ((res = obj40_insert(obj, start, &trans, LEAF_LEVEL))) return res; if ((res = obj40_update(obj))) return res; /* Do not return here, but check the new extention with the given set of methods instead. */ } /* Read LW extension. */ if ((res = obj40_read_ext(obj, SDEXT_LW_ID, &lwh))) return res; /* Form the correct LW extension. */ correct = lwh; if (ops->check_nlink == NULL) { /* Call the default one. */ fixed = obj40_check_nlink(obj, &correct.nlink, hint->nlink); } else if (ops->check_nlink != SKIP_METHOD) { fixed = ops->check_nlink(obj, &correct.nlink, hint->nlink); } else { fixed = 0; } if (fixed) { /* Fix nlink silently: there is no way to check if nlink is correct, so the check is either skipped or rebuild. */ res = RE_FIXABLE; } if (ops->check_mode == NULL) { /* Call the default one. */ fixed = obj40_check_mode(obj, &correct.mode, hint->mode); } else if (ops->check_mode != SKIP_METHOD) { fixed = ops->check_mode(obj, &correct.mode, hint->mode); } else { fixed = 0; } if (fixed) { fsck_mess("Node (%llu), item (%u), [%s] (%s): wrong mode (%u), " "%s (%u).", place_blknr(start), start->pos.item, print_inode(obj40_core, &start->key), start->plug->p.label, lwh.mode, mode == RM_CHECK ? "Should be" : "Fixed to", correct.mode); res = RE_FIXABLE; } if (ops->check_size == NULL) { /* Call the default one. */ fixed = obj40_check_size(obj, &correct.size, hint->size); } else if (ops->check_size != SKIP_METHOD) { fixed = ops->check_size(obj, &correct.size, hint->size); } else { fixed = 0; } if (fixed) { fsck_mess("Node (%llu), item (%u), [%s] (%s): wrong size (%llu)" ", %s (%llu).", place_blknr(start), start->pos.item, print_inode(obj40_core, &start->key), start->plug->p.label, lwh.size, mode == RM_CHECK ? "Should be" : "Fixed to", correct.size); res = RE_FIXABLE; } if (res && mode != RM_CHECK) return obj40_write_ext(obj, SDEXT_LW_ID, &correct); return res; } /* This is not yet clear how to detect the correct plugin, e.g. formatting, and figure out if it is essential or not and leave detected or fix evth to the one from SD. So evth is recovered according to SD plugins, except essential ones. The knowledge if a pset member is essensial is hardcoded yet. obj40_check_plug is used to form the on-disk pset according to already existent SD pset and tree->pset. Actually used for the root only. */ static inline errno_t obj40_stat_pset_check(reiser4_object_t *obj, uint8_t mode, int present) { reiser4_place_t *start; sdhint_plug_t plugh; trans_hint_t trans; stat_hint_t stat; uint64_t diff; uint64_t mask; errno_t res; aal_assert("vpf-1650", obj != NULL); start = &obj->info.start; /* Get plugins that must exists in the PLUGID extention. */ mask = obj40_core->pset_ops.build_mask(obj->info.tree, &obj->info.pset); mask &= ((1 << PSET_STORE_LAST) - 1); if ((diff = (mask != obj->info.pset.plug_mask))) { fsck_mess("Node (%llu), item (%u), [%s] (%s): wrong plugin " "set is stored on disk (0x%llx). %s (0x%llx).", place_blknr(start), start->pos.item, print_inode(obj40_core, &start->key), start->plug->p.label, obj->info.pset.plug_mask, mode == RM_CHECK ? "Should be" : "Fixed to", mask); } if (!diff || mode == RM_CHECK) return diff ? RE_FIXABLE : 0; /* Prepare hints. For removing & adding plug extention. */ aal_memset(&trans, 0, sizeof(trans)); aal_memset(&stat, 0, sizeof(stat)); trans.shift_flags = SF_DEFAULT; trans.specific = &stat; trans.plug = start->plug; start->pos.unit = 0; stat.extmask = (1 << SDEXT_PSET_ID); if (present) { /* Plug extention is the SD is wrong. Remove it first. */ if ((res = obj40_remove(obj, start, &trans))) return res; if ((res = obj40_update(obj))) return res; if ((res = obj40_fetch_item(&obj->info.start))) return res; } obj->info.pset.plug_mask = mask; /* Pass plugh there instead of obj->info.pset to not get the altered result after the modification */ aal_memcpy(&plugh, &obj->info.pset, sizeof(plugh)); stat.ext[SDEXT_PSET_ID] = &plugh; start->pos.unit = 0; if ((res = obj40_insert(obj, start, &trans, LEAF_LEVEL))) return res; return obj40_update(obj); } /* Check the set of SD extentions and their contents. */ errno_t obj40_update_stat(reiser4_object_t *obj, obj40_stat_ops_t *ops, obj40_stat_hint_t *hint, uint8_t mode) { reiser4_place_t *start; uint64_t extmask; errno_t res; aal_assert("vpf-1213", obj != NULL); start = &obj->info.start; /* Update the SD place. */ if ((res = obj40_update(obj))) return res; /* Get the set of present SD extentions. */ if ((extmask = obj40_extmask(start)) == MAX_UINT64) { aal_error("Node (%llu), item (%u), (%s): failed " "to obtain the StatData extention mask.", place_blknr(start), start->pos.item, start->plug->p.label); return -EIO; } /* Remove unknown SD extentions. */ if (extmask & reiser4_psobj(obj)->sdext_unknown) { trans_hint_t trans; stat_hint_t stat; aal_memset(&trans, 0, sizeof(trans)); aal_memset(&stat, 0, sizeof(stat)); stat.extmask = extmask & reiser4_psobj(obj)->sdext_unknown; fsck_mess("Node (%llu), item (%u), [%s]: StatData has some " "unknown extentions (mask=%llu).%s Plugin (%s).", place_blknr(start), start->pos.item, print_inode(obj40_core, &start->key), stat.extmask, mode != RM_CHECK ? " Removed." : "", start->plug->p.label); if (mode != RM_CHECK) { trans.specific = &stat; trans.shift_flags = SF_DEFAULT; start->pos.unit = 0; trans.count = 0; if ((res = obj40_remove(obj, start, &trans))) return res; /* Update the SD place. */ if ((res = obj40_update(obj))) return res; if ((res = obj40_fetch_item(&obj->info.start))) return res; } } /* Check the UNIX extention. */ if ((res = obj40_stat_unix_check(obj, ops, hint, mode, extmask & (1 << SDEXT_UNIX_ID))) < 0) { return res; } /* Check the LW extension. */ if ((res |= obj40_stat_lw_check(obj, ops, hint, mode, extmask & (1 << SDEXT_LW_ID))) < 0) { return res; } /* Check the Plugin SET extention. */ if ((res |= obj40_stat_pset_check(obj, mode, extmask & (1 << SDEXT_PSET_ID))) < 0) { return res; } /* The sdext_sym & sdext_crc are either mandatory or unknown. Nothing to check there. */ return res; } errno_t obj40_prepare_stat(reiser4_object_t *obj, uint16_t objmode, uint8_t mode) { reiser4_place_t *start; trans_hint_t trans; reiser4_key_t *key; lookup_t lookup; errno_t res; aal_assert("vpf-1225", obj != NULL); start = STAT_PLACE(obj); key = &obj->info.object; /* Update the place of SD. */ if ((lookup = obj40_find_item(obj, key, FIND_EXACT, NULL, NULL, start)) < 0) return lookup; if (lookup == PRESENT) { /* Check if SD item is found. */ if (start->plug->p.id.group == STAT_ITEM) return 0; /* Not SD item is found. Possible only when a fake object was created. */ fsck_mess("Node (%llu), item (%u), (%s): not " "StatData is found by the key (%s).%s", place_blknr(start), start->pos.item, start->plug->p.label, print_key(obj40_core, key), mode == RM_BUILD ? "Removed." : ""); if (mode != RM_BUILD) return RE_FATAL; aal_memset(&trans, 0, sizeof(trans)); trans.shift_flags = SF_DEFAULT; trans.count = 1; start->pos.unit = MAX_UINT32; if ((res = obj40_remove(obj, start, &trans))) return res; } /* SD is absent. Create a new one. THIS IS THE SPECIAL CASE and usually is not used as object plugin cannot be recognized w/out SD. Used for for "/" and "lost+found" recovery only. */ fsck_mess("The file [%s] does not have a StatData item.%s Plugin %s.", print_inode(obj40_core, key), mode == RM_BUILD ? " Creating " "a new one." : "", reiser4_psobj(obj)->p.label); if (mode != RM_BUILD) return RE_FATAL; if ((res = obj40_create_stat(obj, 0, 0, 0, 0, objmode, objmode == S_IFLNK ? "FAKE_LINK" : NULL))) { aal_error("The file [%s] failed to create a StatData item. " "Plugin %s.", print_inode(obj40_core, key), reiser4_psobj(obj)->p.label); } return res; } lookup_t obj40_check_item(reiser4_object_t *obj, obj_func_t item_func, obj_func_t update_func, void *data) { object_info_t *info; trans_hint_t trans; errno_t res; info = &obj->info; while (1) { res = obj40_update_body(obj, update_func); if (res != PRESENT && res != -ESTRUCT) return res; if ((res = item_func(obj, data)) && res != -ESTRUCT) return res; if (res == 0) return PRESENT; aal_memset(&trans, 0, sizeof(trans)); trans.count = 1; trans.shift_flags = SF_DEFAULT & ~SF_ALLOW_PACK; obj->body.pos.unit = MAX_UINT32; /* Item has wrong key, remove it. */ if ((res = obj40_remove(obj, &obj->body, &trans)) < 0) return res; } } #endif /* Local variables: c-indentation-style: "K&R" mode-name: "LC" c-basic-offset: 8 tab-width: 8 fill-column: 80 scroll-step: 1 End: */ reiser4progs-1.0.7.orig/plugin/object/obj40/obj40.c0000644000175000017500000005661411131470543017505 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. obj40.c -- reiser4 file 40 plugins common code. */ #include "obj40.h" reiser4_core_t *obj40_core = NULL; /* Initializing instance in the common way, reseting directory. */ errno_t obj40_open(reiser4_object_t *obj) { aal_assert("vpf-1827", obj != NULL); aal_assert("vpf-1826", obj->info.tree != NULL); aal_assert("vpf-1828", reiser4_psobj(obj)->p.id.type == OBJECT_PLUG_TYPE); if (obj->info.start.plug->p.id.group != STAT_ITEM) return -EIO; /* Positioning to the first directory unit. */ if (reiser4_psobj(obj)->reset) reiser4_psobj(obj)->reset(obj); return 0; } /* Set the file position offset to the given @offset. */ errno_t obj40_seek(reiser4_object_t *obj, uint64_t offset) { aal_assert("umka-1968", obj != NULL); objcall(&obj->position, set_offset, offset); return 0; } /* Resets file position. The file position is stored inside @obj->position, so it just builds new zero offset key.*/ errno_t obj40_reset(reiser4_object_t *obj) { aal_assert("umka-1963", obj != NULL); plugcall(obj->info.object.plug, build_generic, &obj->position, KEY_FILEBODY_TYPE, objcall(&obj->info.object, get_locality), objcall(&obj->info.object, get_ordering), objcall(&obj->info.object, get_objectid), 0); return 0; } /* Fetches item info at @place. */ errno_t obj40_fetch_item(reiser4_place_t *place) { return objcall(place->node, fetch, &place->pos, place); } /* Checks if @place has valid position. */ bool_t obj40_valid_item(reiser4_place_t *place) { uint32_t items = objcall(place->node, items); return (place->pos.item < items); } /* Checks if passed @place belongs to some object by the short @key. */ lookup_t obj40_belong(reiser4_place_t *place, reiser4_key_t *key) { errno_t res; /* If there is no valid node, it does defenetely not belong to the object. */ if (!place->node) return ABSENT; /* Checking if item component in @place->pos is valid one. This is needed because tree_lookup() does not fetch item data at place if it was not found. So, it may point to unexistent item and we should check this here. */ if (!obj40_valid_item(place)) return ABSENT; /* Fetching item info at @place. This is needed to make sue, that all @place fields are initialized rigth. Normally it is done by tree_lookup(), if it is sure, that place points to valid postion in node. This happen if lookup found a key. Otherwise it leaves place not initialized and caller has to care about it. */ if ((res = obj40_fetch_item(place))) return res; /* Is the place of the same object? */ return objcall(key, compshort, &place->key) ? ABSENT : PRESENT; } /* Performs lookup and returns result to caller */ lookup_t obj40_find_item(reiser4_object_t *obj, reiser4_key_t *key, lookup_bias_t bias, coll_func_t func, coll_hint_t *chint, reiser4_place_t *place) { lookup_hint_t hint; aal_assert("umka-1966", obj != NULL); aal_assert("umka-3111", key != NULL); aal_assert("umka-3112", place != NULL); hint.key = key; hint.level = LEAF_LEVEL; #ifndef ENABLE_MINIMAL hint.hint = chint; hint.collision = func; #endif return obj40_core->tree_ops.lookup(obj->info.tree, &hint, bias, place); } /* Takes the next item, perform some checks if it is of the same object. */ lookup_t obj40_next_item(reiser4_object_t *obj) { reiser4_place_t place; lookup_t res; aal_assert("vpf-1833", obj != NULL); /* Getting next item into the @place. */ if ((res = obj40_core->tree_ops.next_item(obj->info.tree, &obj->body, &place))) { return res; } /* Check if this item owned by this object. */ if (obj40_belong(&place, &obj->position) == ABSENT) return ABSENT; /* If @place belongs to the object, copy it to the object body. */ aal_memcpy(&obj->body, &place, sizeof(place)); /* Correcting unit pos for next body item. */ if (obj->body.pos.unit == MAX_UINT32) obj->body.pos.unit = 0; return PRESENT; } lookup_t obj40_update_body(reiser4_object_t *obj, obj_func_t adjust_func) { uint32_t units; errno_t res; #ifndef ENABLE_MINIMAL uint32_t adjust = obj->position.adjust; #endif aal_assert("vpf-1344", obj != NULL); /* Lookup the current object position in the tree. */ if ((res = obj40_find_item(obj, &obj->position, FIND_EXACT, NULL, NULL, &obj->body)) < 0) { return res; } if (res == ABSENT) { /* Getting next object item if not valid place & just check if the current is ours if a valid one. */ if (!obj40_valid_item(&obj->body)) { res = obj40_next_item(obj); } else { res = obj40_belong(&obj->body, &obj->position); } if (res != PRESENT) return res; #ifndef ENABLE_MINIMAL /* No adjusting for the ABSENT result. */ adjust = 0; #endif } units = objcall(&obj->body, balance->units); /* Correcting unit pos for next body item. */ if (obj->body.pos.unit == MAX_UINT32) obj->body.pos.unit = 0; /* Adjusting current position by key's adjust. This is needed for working fine when a key collision takes place. */ while ( #ifndef ENABLE_MINIMAL adjust || #endif obj->body.pos.unit >= units) { if (obj->body.pos.unit >= units) { if ((res = obj40_next_item(obj)) != PRESENT) return res; units = objcall(&obj->body, balance->units); continue; } #ifndef ENABLE_MINIMAL if (adjust) { if ((res = adjust_func(obj, NULL)) < 0) return res; if (res) return PRESENT; adjust--; } #endif obj->body.pos.unit++; } return PRESENT; } /* Reads one stat data extension to @data. */ errno_t obj40_read_ext(reiser4_object_t *obj, rid_t id, void *data) { stat_hint_t stat; aal_memset(&stat, 0, sizeof(stat)); stat.extmask |= (1 << id); if (data) stat.ext[id] = data; return obj40_load_stat(obj, &stat); } /* Gets size field from the stat data */ uint64_t obj40_get_size(reiser4_object_t *obj) { sdhint_lw_t lwh; if (obj40_read_ext(obj, SDEXT_LW_ID, &lwh)) return MAX_UINT64; return lwh.size; } /* Loads stat data to passed @hint. */ errno_t obj40_load_stat(reiser4_object_t *obj, stat_hint_t *hint) { trans_hint_t trans; aal_assert("umka-2553", obj != NULL); /* Preparing hint and mask. */ trans.specific = hint; trans.place_func = NULL; trans.region_func = NULL; trans.shift_flags = SF_DEFAULT; /* Calling statdata fetch method. */ if (objcall(STAT_PLACE(obj), object->fetch_units, &trans) != 1) return -EIO; return 0; } #ifndef ENABLE_MINIMAL /* Saves stat data to passed @hint. */ errno_t obj40_save_stat(reiser4_object_t *obj, stat_hint_t *hint) { trans_hint_t trans; aal_assert("umka-2554", obj != NULL); /* Preparing hint and mask */ trans.specific = hint; trans.place_func = NULL; trans.region_func = NULL; trans.shift_flags = SF_DEFAULT; /* Updating stat data. */ if (objcall(STAT_PLACE(obj), object->update_units, &trans) <= 0) return -EIO; return 0; } errno_t obj40_inherit(object_info_t *info, object_info_t *parent) { int i; aal_assert("vpf-1855", info != NULL); aal_assert("vpf-1855", info->pset.plug[PSET_OBJ] != NULL); aal_assert("vpf-1855", parent != NULL); info->pset.plug_mask |= (1 << PSET_OBJ); /* Get not specified plugins from the parent. Do not set flags into plug_mask as these plugins are inherited but not specified explicitly. */ for (i = 0; i < PSET_LAST; i++) { if (info->pset.plug_mask & (1 << i)) continue; info->pset.plug[i] = parent->pset.plug[i]; } return 0; } /* Prepapre unix hint in StatData */ errno_t obj40_stat_unix_init(stat_hint_t *stat, sdhint_unix_t *unixh, uint64_t bytes, uint64_t rdev) { aal_assert("vpf-1772", stat != NULL); aal_assert("vpf-1773", unixh != NULL); /* Unix extension hint initializing */ if (rdev && bytes) { aal_error("Invalid stat data params (rdev or bytes)."); return -EINVAL; } else { unixh->rdev = rdev; unixh->bytes = bytes; } unixh->uid = getuid(); unixh->gid = getgid(); unixh->atime = time(NULL); unixh->mtime = unixh->atime; unixh->ctime = unixh->atime; stat->extmask |= (1 << SDEXT_UNIX_ID); stat->ext[SDEXT_UNIX_ID] = unixh; return 0; } errno_t obj40_stat_lw_init(reiser4_object_t *obj, stat_hint_t *stat, sdhint_lw_t *lwh, uint64_t size, uint32_t nlink, uint16_t mode) { aal_assert("vpf-1848", obj != NULL); aal_assert("vpf-1774", stat != NULL); aal_assert("vpf-1775", lwh != NULL); /* Light weight hint initializing. */ lwh->size = size; lwh->nlink = nlink; /* mode is the bitwise OR between the given mode, the file type mode and the defaul rwx permissions. The later is 0755 for directories and 0644 for others. */ mode |= reiser4_psobj(obj)->p.id.group == REG_OBJECT ? S_IFREG : reiser4_psobj(obj)->p.id.group == DIR_OBJECT ? S_IFDIR : reiser4_psobj(obj)->p.id.group == SYM_OBJECT ? S_IFLNK : 0; if (reiser4_psobj(obj)->p.id.group == DIR_OBJECT) mode |= 0755; else mode |= 0644; lwh->mode = mode; stat->extmask |= (1 << SDEXT_LW_ID); stat->ext[SDEXT_LW_ID] = lwh; return 0; } static errno_t obj40_stat_plug_init(reiser4_object_t *obj, stat_hint_t *stat, sdhint_plug_t *plugh) { aal_assert("vpf-1777", stat != NULL); aal_assert("vpf-1776", plugh != NULL); aal_assert("vpf-1778", obj != NULL); /* Get plugins that must exists in the PLUGID extention. */ obj->info.pset.plug_mask = obj40_core->pset_ops.build_mask(obj->info.tree, &obj->info.pset); if (obj->info.pset.plug_mask) { aal_memcpy(plugh, &obj->info.pset, sizeof(*plugh)); stat->extmask |= (1 << SDEXT_PSET_ID); stat->ext[SDEXT_PSET_ID] = plugh; } return 0; } static errno_t obj40_stat_heir_init(reiser4_object_t *obj, stat_hint_t *stat, sdhint_plug_t *heirh) { aal_assert("vpf-1899", stat != NULL); aal_assert("vpf-1898", heirh != NULL); aal_assert("vpf-1897", obj != NULL); if (obj->info.hset.plug_mask) { aal_memcpy(heirh, &obj->info.hset, sizeof(*heirh)); stat->extmask |= (1 << SDEXT_HSET_ID); stat->ext[SDEXT_HSET_ID] = heirh; } return 0; } static errno_t obj40_stat_sym_init(reiser4_object_t *obj, stat_hint_t *stat, char *path) { aal_assert("vpf-1851", obj != NULL); aal_assert("vpf-1779", stat != NULL); if (reiser4_psobj(obj)->p.id.group != SYM_OBJECT) return 0; if (!path || !aal_strlen(path)) { aal_error("No SymLink target point is given."); return -EINVAL; } stat->extmask |= (1 << SDEXT_SYMLINK_ID); stat->ext[SDEXT_SYMLINK_ID] = path; return 0; } static errno_t obj40_stat_crc_init(reiser4_object_t *obj, stat_hint_t *stat, sdhint_crypto_t *crch, char *key) { aal_assert("vpf-1847", obj != NULL); aal_assert("vpf-1780", stat != NULL); /* Plugin must be of the regular file group. */ if (reiser4_psobj(obj)->p.id.group != REG_OBJECT) return 0; /* Check if cryto is specified. */ if (reiser4_pscrypto(obj) != CRYPTO_NONE_ID) { if (!key || !aal_strlen(key)) { aal_error("No proper key is given: %s.", key); return -EINVAL; } stat->extmask |= (1 << SDEXT_CRYPTO_ID); stat->ext[SDEXT_CRYPTO_ID] = crch; crch->keylen = aal_strlen(key); /* To get the fingerprint digest plugin is needed. */ aal_error("Crypto files cannot be created yet."); return -EINVAL; } return 0; } /* Create stat data item basing on passed extensions @mask, @size, @bytes, @nlinks, @mode and @path for symlinks. Returns error or zero for success. */ errno_t obj40_create_stat(reiser4_object_t *obj, uint64_t size, uint64_t bytes, uint64_t rdev, uint32_t nlink, uint16_t mode, char *str) { sdhint_unix_t unixh; sdhint_plug_t plugh; sdhint_plug_t heirh; sdhint_crypto_t crch; sdhint_lw_t lwh; stat_hint_t stat; trans_hint_t hint; lookup_t lookup; int64_t res; aal_assert("vpf-1592", obj != NULL); aal_assert("vpf-1593", reiser4_psstat(obj) != NULL); aal_memset(&hint, 0, sizeof(hint)); /* Getting statdata plugin */ hint.plug = reiser4_psstat(obj); hint.count = 1; hint.shift_flags = SF_DEFAULT; aal_memcpy(&hint.offset, &obj->info.object, sizeof(hint.offset)); /* Prepapre the StatData hint. */ aal_memset(&stat, 0, sizeof(stat)); if ((res = obj40_stat_unix_init(&stat, &unixh, bytes, rdev))) return res; if ((res = obj40_stat_lw_init(obj, &stat, &lwh, size, nlink, mode))) return res; if ((res = obj40_stat_plug_init(obj, &stat, &plugh))) return res; if ((res = obj40_stat_heir_init(obj, &stat, &heirh))) return res; if ((res = obj40_stat_sym_init(obj, &stat, str))) return res; if ((res = obj40_stat_crc_init(obj, &stat, &crch, str))) return res; hint.specific = &stat; /* Lookup place new item to be insert at and insert it to tree */ switch ((lookup = obj40_find_item(obj, &hint.offset, FIND_CONV, NULL, NULL, STAT_PLACE(obj)))) { case ABSENT: break; default: return lookup < 0 ? lookup : -EIO; } /* Insert stat data to tree */ res = obj40_insert(obj, STAT_PLACE(obj), &hint, LEAF_LEVEL); /* Reset file. */ if (reiser4_psobj(obj)->reset) reiser4_psobj(obj)->reset(obj); return res < 0 ? res : 0; } errno_t obj40_create(reiser4_object_t *obj, object_hint_t *hint) { if (hint == NULL) return obj40_create_stat(obj, 0, 0, 0, 0, 0, NULL); return obj40_create_stat(obj, 0, 0, hint->rdev, 0, hint->mode, hint->str); } /* Writes one stat data extension. */ errno_t obj40_write_ext(reiser4_object_t *obj, rid_t id, void *data) { stat_hint_t stat; aal_memset(&stat, 0, sizeof(stat)); stat.extmask |= (1 << id); if (data) stat.ext[id] = data; return obj40_save_stat(obj, &stat); } /* Returns extensions mask from stat data item at @place. */ uint64_t obj40_extmask(reiser4_place_t *place) { trans_hint_t hint; stat_hint_t stat; aal_memset(&stat, 0, sizeof(stat)); /* Preparing hint and mask */ hint.specific = &stat; hint.place_func = NULL; hint.region_func = NULL; hint.shift_flags = SF_DEFAULT; /* Calling statdata open method if any */ if (objcall(place, object->fetch_units, &hint) != 1) return MAX_UINT64; return stat.extmask; } /* Updates size field in the stat data */ errno_t obj40_set_size(reiser4_object_t *obj, uint64_t size) { sdhint_lw_t lwh; errno_t res; if ((res = obj40_read_ext(obj, SDEXT_LW_ID, &lwh))) return res; lwh.size = size; return obj40_write_ext(obj, SDEXT_LW_ID, &lwh); } /* Gets nlink field from the stat data */ int64_t obj40_get_nlink(reiser4_object_t *obj, int update) { sdhint_lw_t lwh; errno_t res; if (update) { if ((res = obj40_update(obj))) return res; } if ((res = obj40_read_ext(obj, SDEXT_LW_ID, &lwh))) return res; return lwh.nlink; } /* Updates nlink field in the stat data */ errno_t obj40_set_nlink(reiser4_object_t *obj, uint32_t nlink) { sdhint_lw_t lwh; errno_t res; if ((res = obj40_read_ext(obj, SDEXT_LW_ID, &lwh))) return res; lwh.nlink = nlink; return obj40_write_ext(obj, SDEXT_LW_ID, &lwh); } /* Gets bytes field from the stat data */ uint64_t obj40_get_bytes(reiser4_object_t *obj) { sdhint_unix_t unixh; if (obj40_read_ext(obj, SDEXT_UNIX_ID, &unixh)) return 0; return unixh.bytes; } /* Updates bytes field in the stat data */ errno_t obj40_set_bytes(reiser4_object_t *obj, uint64_t bytes) { sdhint_unix_t unixh; errno_t res; if ((res = obj40_read_ext(obj, SDEXT_UNIX_ID, &unixh))) return res; unixh.rdev = 0; unixh.bytes = bytes; return obj40_write_ext(obj, SDEXT_UNIX_ID, &unixh); } /* Changes nlink field in statdata by passed @value */ static errno_t obj40_inc_link(reiser4_object_t *obj, int32_t value, int update) { uint32_t nlink = obj40_get_nlink(obj, update); return obj40_set_nlink(obj, nlink + value); } /* Removes object stat data. */ errno_t obj40_clobber(reiser4_object_t *obj) { errno_t res; trans_hint_t hint; aal_assert("umka-2546", obj != NULL); if ((res = obj40_update(obj))) return res; aal_memset(&hint, 0, sizeof(hint)); hint.count = 1; hint.shift_flags = SF_DEFAULT; STAT_PLACE(obj)->pos.unit = MAX_UINT32; return obj40_remove(obj, STAT_PLACE(obj), &hint); } /* Enumerates object metadata. */ errno_t obj40_metadata(reiser4_object_t *obj, place_func_t place_func, void *data) { errno_t res; aal_assert("umka-2549", obj != NULL); aal_assert("umka-2550", place_func != NULL); if ((res = obj40_update(obj))) return res; return place_func(STAT_PLACE(obj), data); } errno_t obj40_link(reiser4_object_t *obj) { return obj40_inc_link(obj, 1, 1); } errno_t obj40_unlink(reiser4_object_t *obj) { return obj40_inc_link(obj, -1, 1); } /* Check if linked. Needed to let higher API levels know, that file has zero links and may be clobbered. */ bool_t obj40_linked(reiser4_object_t *entity) { return obj40_get_nlink(entity, 1) != 0; } #endif /* Makes sure, that passed place points to right location in tree by means of calling tree_lookup() for its key. This is needed, because items may move to somewhere after each balancing. */ errno_t obj40_update(reiser4_object_t *obj) { lookup_t res; aal_assert("umka-1905", obj != NULL); /* Looking for stat data place by */ switch ((res = obj40_find_item(obj, &obj->info.object, FIND_EXACT, NULL, NULL, STAT_PLACE(obj)))) { case PRESENT: return 0; case ABSENT: return -EIO; default: return res; } } /* Reads data from the tree to passed @hint. */ int64_t obj40_read(reiser4_object_t *obj, trans_hint_t *hint, void *buff, uint64_t off, uint64_t count) { /* Preparing hint to be used for calling read with it. Here we initialize @count -- number of bytes to read, @specific -- pointer to buffer data will be read into, and pointer to tree instance, file is opened on. */ aal_memset(hint, 0, sizeof(*hint)); /* Initializing offset data must be read from. This is current file offset, so we use @reg->position. */ aal_memcpy(&hint->offset, &obj->position, sizeof(hint->offset)); objcall(&hint->offset, set_offset, off); hint->count = count; hint->specific = buff; return obj40_core->flow_ops.read(obj->info.tree, hint); } #ifndef ENABLE_MINIMAL int64_t obj40_convert(reiser4_object_t *obj, conv_hint_t *hint) { return obj40_core->flow_ops.convert(obj->info.tree, hint); } int64_t obj40_cut(reiser4_object_t *obj, trans_hint_t *hint, uint64_t off, uint64_t count, region_func_t func, void *data) { aal_memset(hint, 0, sizeof(*hint)); /* Preparing key of the data to be cut. */ aal_memcpy(&hint->offset, &obj->position, sizeof(hint->offset)); objcall(&hint->offset, set_offset, off); /* Removing data from the tree. */ hint->count = count; hint->shift_flags = SF_DEFAULT; hint->region_func = func; hint->data = data; return obj40_core->flow_ops.cut(obj->info.tree, hint); } /* Truncates data in tree */ int64_t obj40_truncate(reiser4_object_t *obj, uint64_t n, reiser4_item_plug_t *item_plug) { trans_hint_t hint; uint64_t size; uint64_t bytes; errno_t res; aal_assert("vpf-1882", obj != NULL); aal_assert("vpf-1884", item_plug != NULL); if ((res = obj40_update(obj))) return res; size = obj40_get_size(obj); if (size == n) return 0; if (n > size) { if ((res = obj40_write(obj, &hint, NULL, size, n - size, item_plug, NULL, NULL)) < 0) { return res; } bytes = hint.bytes; } else { res = obj40_cut(obj, &hint, n, MAX_UINT64, NULL, NULL); if (res < 0) return res; bytes = -hint.bytes; } /* Updating stat data fields. */ return obj40_touch(obj, n - size, bytes); } /* Inserts passed item hint into the tree. After function is finished, place contains the place of the inserted item. */ int64_t obj40_insert(reiser4_object_t *obj, reiser4_place_t *place, trans_hint_t *hint, uint8_t level) { return obj40_core->tree_ops.insert(obj->info.tree, place, hint, level); } /* Removes item/unit by @key */ errno_t obj40_remove(reiser4_object_t *obj, reiser4_place_t *place, trans_hint_t *trans) { return obj40_core->tree_ops.remove(obj->info.tree, place, trans); } /* This fucntion implements object item enumerator function. Used for getting directory metadata on packing, etc. */ errno_t obj40_traverse(reiser4_object_t *obj, place_func_t place_func, obj_func_t obj_func, void *data) { errno_t res; aal_assert("umka-1712", obj != NULL); aal_assert("umka-1713", place_func != NULL); /* Calculating stat data item. */ if ((res = obj40_metadata(obj, place_func, data))) return res; /* Update current body item coord. */ if ((res = obj40_update_body(obj, obj_func)) != PRESENT) return res == ABSENT ? 0 : res; /* Loop until all items are enumerated. */ while (1) { /* Calling callback function. */ if ((res = place_func(&obj->body, data))) return res; /* Getting next item. */ if ((res = obj40_next_item(obj)) < 0) return res; if (res == ABSENT) return 0; } return 0; } /* File data enumeration related stuff. */ typedef struct layout_hint { void *data; region_func_t region_func; } layout_hint_t; static errno_t cb_item_layout(blk_t start, count_t width, void *data) { layout_hint_t *hint = (layout_hint_t *)data; return hint->region_func(start, width, hint->data); } /* This fucntion implements hashed directory enumerator function. It is used when calculating fargmentation, prining. */ errno_t obj40_layout(reiser4_object_t *obj, region_func_t region_func, obj_func_t obj_func, void *data) { layout_hint_t hint; errno_t res; aal_assert("umka-1473", obj != NULL); aal_assert("umka-1474", region_func != NULL); /* Update current body item coord. */ if ((res = obj40_update_body(obj, obj_func)) != PRESENT) return res == ABSENT ? 0 : res; /* Prepare layout hint. */ hint.data = data; hint.region_func = region_func; /* Loop until all items are enumerated. */ while (1) { reiser4_place_t *place = &obj->body; if (obj->body.plug->object->layout) { /* Calling item's layout method */ if ((res = objcall(place, object->layout, cb_item_layout, &hint))) { return res; } } else { /* Layout method is not implemented. Counting item itself. */ blk_t blk = place_blknr(place); if ((res = cb_item_layout(blk, 1, &hint))) return res; } /* Getting next item. */ if ((res = obj40_next_item(obj)) < 0) return res; /* Object is over? */ if (res == ABSENT) return 0; } return 0; } /* Writes passed data to the file. Returns amount of written bytes. */ int64_t obj40_write(reiser4_object_t *obj, trans_hint_t *hint, void *buff, uint64_t off, uint64_t count, reiser4_item_plug_t *item_plug, place_func_t func, void *data) { /* Preparing hint to be used for calling write method. This is initializing @count - number of bytes to write, @specific - buffer to write into and @offset -- file offset data must be written at. */ aal_memset(hint, 0, sizeof(*hint)); hint->count = count; hint->specific = buff; hint->shift_flags = SF_DEFAULT; hint->place_func = func; hint->plug = item_plug; hint->data = data; aal_memcpy(&hint->offset, &obj->position, sizeof(hint->offset)); objcall(&hint->offset, set_offset, off); /* Write data to tree. */ return obj40_core->flow_ops.write(obj->info.tree, hint); } errno_t obj40_touch(reiser4_object_t *obj, int64_t size, int64_t bytes) { uint64_t fbytes; uint64_t fsize; errno_t res; /* Updating the SD place and update size, bytes there. */ if ((res = obj40_update(obj))) return res; fsize = obj40_get_size(obj); fbytes = obj40_get_bytes(obj); /* Update size & bytes unless they do not change. */ if (size && (res = obj40_set_size(obj, fsize + size))) return res; if (bytes && (res = obj40_set_bytes(obj, fbytes + bytes))) return res; return 0; } #endif reiser4progs-1.0.7.orig/plugin/object/obj40/obj40.h0000644000175000017500000001126211131470543017500 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. obj40.h -- reiser4 file plugins common structures. */ #ifndef OBJ40_H #define OBJ40_H #include #ifndef ENABLE_MINIMAL # include # include #endif #include "reiser4/plugin.h" extern reiser4_core_t *obj40_core; #define STAT_PLACE(o) \ (&((o)->info.start)) /* Returns the file position offset. */ static inline uint64_t obj40_offset(reiser4_object_t *obj) { return objcall(&obj->position, get_offset); } extern errno_t obj40_fini(reiser4_object_t *obj); extern errno_t obj40_update(reiser4_object_t *obj); extern uint64_t obj40_get_size(reiser4_object_t *obj); extern bool_t obj40_valid_item(reiser4_place_t *place); extern errno_t obj40_fetch_item(reiser4_place_t *place); extern lookup_t obj40_belong(reiser4_place_t *place, reiser4_key_t *key); extern lookup_t obj40_find_item(reiser4_object_t *obj, reiser4_key_t *key, lookup_bias_t bias, coll_func_t func, coll_hint_t *hint, reiser4_place_t *place); extern int64_t obj40_read(reiser4_object_t *obj, trans_hint_t *hint, void *buff, uint64_t off, uint64_t count); extern errno_t obj40_read_ext(reiser4_object_t *obj, rid_t id, void *data); extern errno_t obj40_load_stat(reiser4_object_t *obj, stat_hint_t *hint); extern errno_t obj40_save_stat(reiser4_object_t *obj, stat_hint_t *hint); extern errno_t obj40_open(reiser4_object_t *obj); extern errno_t obj40_seek(reiser4_object_t *obj, uint64_t offset); extern errno_t obj40_reset(reiser4_object_t *obj); typedef errno_t (*obj_func_t) (reiser4_object_t *, void *); extern lookup_t obj40_update_body(reiser4_object_t *obj, obj_func_t adjust_func); extern lookup_t obj40_next_item(reiser4_object_t *obj); #ifndef ENABLE_MINIMAL extern errno_t obj40_write_ext(reiser4_object_t *obj, rid_t id, void *data); extern errno_t obj40_touch(reiser4_object_t *obj, int64_t size, int64_t bytes); extern uint64_t obj40_extmask(reiser4_place_t *sd); extern uint16_t obj40_get_mode(reiser4_object_t *obj); extern int64_t obj40_get_nlink(reiser4_object_t *obj, int update); extern uint32_t obj40_get_atime(reiser4_object_t *obj); extern uint32_t obj40_get_mtime(reiser4_object_t *obj); extern uint64_t obj40_get_bytes(reiser4_object_t *obj); extern errno_t obj40_clobber(reiser4_object_t *obj); extern errno_t obj40_link(reiser4_object_t *obj); extern errno_t obj40_unlink(reiser4_object_t *obj); extern bool_t obj40_linked(reiser4_object_t *obj); extern errno_t obj40_set_mode(reiser4_object_t *obj, uint16_t mode); extern errno_t obj40_set_size(reiser4_object_t *obj, uint64_t size); extern errno_t obj40_set_nlink(reiser4_object_t *obj, uint32_t nlink); extern errno_t obj40_set_atime(reiser4_object_t *obj, uint32_t atime); extern errno_t obj40_set_mtime(reiser4_object_t *obj, uint32_t mtime); extern errno_t obj40_set_bytes(reiser4_object_t *obj, uint64_t bytes); extern errno_t obj40_layout(reiser4_object_t *obj, region_func_t region_func, obj_func_t obj_func, void *data); extern errno_t obj40_metadata(reiser4_object_t *obj, place_func_t place_func, void *data); extern errno_t obj40_traverse(reiser4_object_t *obj, place_func_t place_func, obj_func_t obj_func, void *data); extern errno_t obj40_remove(reiser4_object_t *obj, reiser4_place_t *place, trans_hint_t *hint); extern int64_t obj40_insert(reiser4_object_t *obj, reiser4_place_t *place, trans_hint_t *hint, uint8_t level); extern int64_t obj40_write(reiser4_object_t *obj, trans_hint_t *hint, void *buff, uint64_t off, uint64_t count, reiser4_item_plug_t *item_plug, place_func_t func, void *data); extern int64_t obj40_convert(reiser4_object_t *obj, conv_hint_t *hint); extern int64_t obj40_cut(reiser4_object_t *obj, trans_hint_t *hint, uint64_t off, uint64_t count, region_func_t func, void *data); extern int64_t obj40_truncate(reiser4_object_t *obj, uint64_t n, reiser4_item_plug_t *item_plug); extern errno_t obj40_stat_unix_init(stat_hint_t *stat, sdhint_unix_t *unixh, uint64_t bytes, uint64_t rdev); extern errno_t obj40_stat_lw_init(reiser4_object_t *obj, stat_hint_t *stat, sdhint_lw_t *lwh, uint64_t size, uint32_t nlink, uint16_t mode); extern errno_t obj40_inherit(object_info_t *info, object_info_t *parent); extern errno_t obj40_create(reiser4_object_t *obj, object_hint_t *hint); extern errno_t obj40_create_stat(reiser4_object_t *obj, uint64_t size, uint64_t bytes, uint64_t rdev, uint32_t nlink, uint16_t mode, char *path); #endif #endif reiser4progs-1.0.7.orig/plugin/object/obj40/Makefile.am0000644000175000017500000000105511131470543020444 0ustar fzfzincludedir = -I$(top_srcdir)/include obj40_sources = obj40.c obj40_repair.c obj40.h obj40_repair.h libobj40_static_la_SOURCES = $(obj40_sources) libobj40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libobj40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = libobj40-static.la $(MINIMAL_LIBS) if ENABLE_MINIMAL libobj40_minimal_la_SOURCES = $(obj40_sources) libobj40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/object/obj40/obj40_repair.h0000644000175000017500000000311311131471002021025 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. obj40_repair.h -- reiser4 file plugins common repair structures and methods. */ #ifndef OBJ40_REPAIR_H #define OBJ40_REPAIR_H #include "obj40.h" #include "repair/plugin.h" typedef errno_t (*stat_func_t) (reiser4_place_t *); #define SKIP_METHOD ((void *)-1) typedef struct obj40_stat_ops { int (*check_mode) (reiser4_object_t *obj, uint16_t *, uint16_t); int (*check_nlink) (reiser4_object_t *obj, uint32_t *, uint32_t); int (*check_size) (reiser4_object_t *obj, uint64_t *, uint64_t); int (*check_bytes) (reiser4_object_t *obj, uint64_t *, uint64_t); int (*check_bytes_report) (reiser4_place_t *start, reiser4_core_t *core, uint64_t found_bytes, uint8_t mode, uint64_t correct_bytes); } obj40_stat_ops_t; typedef struct obj40_stat_hint { uint64_t size; uint64_t bytes; uint32_t nlink; uint16_t mode; } obj40_stat_hint_t; extern uint64_t obj40_place_maxreal(reiser4_place_t *place); extern errno_t obj40_update_stat(reiser4_object_t *obj, obj40_stat_ops_t *ops, obj40_stat_hint_t *hint, uint8_t mode); extern errno_t obj40_prepare_stat(reiser4_object_t *obj, uint16_t objmode, uint8_t mode); extern errno_t obj40_recognize(reiser4_object_t *obj); extern lookup_t obj40_check_item(reiser4_object_t *obj, obj_func_t item_func, obj_func_t update_func, void *data); #endif /* Local variables: c-indentation-style: "K&R" mode-name: "LC" c-basic-offset: 8 tab-width: 8 fill-column: 80 scroll-step: 1 End: */ reiser4progs-1.0.7.orig/plugin/object/ccreg40/0000777000175000017500000000000011134133447016726 5ustar fzfzreiser4progs-1.0.7.orig/plugin/object/ccreg40/ccreg40.h0000644000175000017500000000153311131470543020322 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ccreg40.h -- reiser4 crypto compression regular file plugin declarations. */ #ifndef CCREG40_H #define CCREG40_H #ifndef ENABLE_MINIMAL #include #include "reiser4/plugin.h" #include "plugin/object/obj40/obj40.h" #define ccreg40_clstart(off, size) ((off) & ~((size) - 1)) #define ccreg40_clnext(off, size) (ccreg40_clstart(off, size) + (size)) #define ccreg40_clsame(off1, off2, size) \ (ccreg40_clstart(off1, size) == ccreg40_clstart(off2, size)) extern errno_t ccreg40_check_struct(reiser4_object_t *cc, place_func_t func, void *data, uint8_t mode); extern uint32_t ccreg40_get_cluster_size(reiser4_place_t *place); extern errno_t ccreg40_set_cluster_size(reiser4_place_t *place, uint32_t cluster); #endif #endif reiser4progs-1.0.7.orig/plugin/object/ccreg40/ccreg40_repair.c0000644000175000017500000002141511131473073021661 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ccreg40_repair.c -- reiser4 crypto-compression regular file plugin repair code. */ #ifndef ENABLE_MINIMAL #include #include "ccreg40.h" #include "plugin/object/obj40/obj40_repair.h" static int ccreg40_check_size(reiser4_object_t *cc, uint64_t *sdsize, uint64_t counted_size) { return 0; } typedef struct ccreg40_hint { obj40_stat_hint_t stat; /* Item seek, found and next item offsets. */ uint64_t prev_found; /* (key) offset found in the previous iteration */ uint64_t seek; /* expected offset for lookup */ uint64_t found; /* what has been really found */ uint64_t maxreal; /* maximal (key) offset in the found item */ /* Bytes all clusters takes on disk. */ uint32_t bytes; uint64_t sdsize; uint32_t adler; uint8_t mode; /* If a hole is detected. */ uint8_t hole; /* The cluster size & the buffer for the data. */ uint8_t data[64 * 1024]; uint64_t clstart; uint32_t clsize; } ccreg40_hint_t; static errno_t ccreg40_check_item(reiser4_object_t *cc, void *data) { ccreg40_hint_t *hint = (ccreg40_hint_t *)data; uint32_t clsize; errno_t res = 0; hint->found = objcall(&cc->body.key, get_offset); hint->maxreal = obj40_place_maxreal(&cc->body); aal_assert("vpf-1871", hint->maxreal >= hint->found); aal_assert("vpf-1872", hint->seek <= hint->found); /* Check the item plugin. */ if (cc->body.plug != reiser4_psctail(cc)) { fsck_mess("The file [%s] (%s), node [%llu], item " "[%u]: item of the illegal plugin (%s) " "with the key of this object found.%s", print_inode(obj40_core, &cc->info.object), reiser4_psobj(cc)->p.label, place_blknr(&cc->body), cc->body.pos.item, cc->body.plug->p.label, hint->mode == RM_BUILD ? " Removed." : ""); return hint->mode == RM_BUILD ? -ESTRUCT : RE_FATAL; } /* Check the shift. */ clsize = ccreg40_get_cluster_size(&cc->body); if (hint->clsize != clsize) { fsck_mess("The file [%s] (%s), node [%llu], item [%u]: item " "of the wrong cluster size (%d) found, Should be " "(%d).%s", print_inode(obj40_core, &cc->info.object), reiser4_psobj(cc)->p.label, place_blknr(&cc->body), cc->body.pos.item, clsize, hint->clsize, hint->mode != RM_CHECK ? " Fixed." : ""); /* Just fix the shift if wrong. */ if (hint->mode == RM_CHECK) { res |= RE_FIXABLE; } else { ccreg40_set_cluster_size(&cc->body, hint->clsize); } } if (!ccreg40_clsame(hint->found, hint->maxreal, hint->clsize)) { /* The item covers the cluster border. Delete it. */ fsck_mess("The file [%s] (%s), node [%llu], item [%u]: " "item of the lenght (%llu) found, it cannot " "contain data of 2 clusters.%s", print_inode(obj40_core, &cc->info.object), reiser4_psobj(cc)->p.label, place_blknr(&cc->body), cc->body.pos.item, hint->maxreal - hint->found + 1, hint->mode == RM_BUILD ? " Removed." : ""); return hint->mode == RM_BUILD ? -ESTRUCT : RE_FATAL; } return res; } static int64_t ccreg40_read_item(reiser4_place_t *place, ccreg40_hint_t *hint) { trans_hint_t trans; uint64_t offset; int64_t count; aal_assert("vpf-1870", place->pos.unit == 0 || place->pos.unit == MAX_UINT32); /* Read the data. */ offset = hint->found % hint->clsize; trans.count = hint->maxreal - hint->found + 1; trans.specific = hint->data + offset; if ((count = objcall(place, object->read_units, &trans)) < 0) return count; return 0; } static errno_t ccreg40_check_crc(ccreg40_hint_t *hint) { uint32_t adler, disk, offset; aal_assert("edward-2", hint->bytes > sizeof(uint32_t)); offset = hint->bytes - sizeof(uint32_t); adler = aux_adler32(0, (char *)hint->data, offset); disk = LE32_TO_CPU(*(uint32_t *)(hint->data + offset)); return adler == disk ? 0 : RE_FATAL; } static errno_t ccreg40_check_cluster(reiser4_object_t *cc, ccreg40_hint_t *hint, uint8_t mode) { errno_t result; errno_t res; int start; uint32_t lcl_size; result = 0; /* true, if the found item is the first one in the disk cluster */ start = (ccreg40_clstart(hint->found, hint->clsize) == hint->found); if ((cc->body.plug == NULL) || (hint->seek && start) || !ccreg40_clsame(hint->prev_found, hint->found, hint->clsize)) { /* Cluster is over */ if (hint->prev_found > hint->sdsize) { /* cluster is orphan */ hint->bytes = 0; result = RE_FATAL; /* set offset of the cluster to be deleted. */ hint->clstart = ccreg40_clstart(hint->prev_found, hint->clsize); fsck_mess("The file [%s] (%s): the cluster at [%llu] " "offset %u bytes long is orphan.%s", print_inode(obj40_core, &cc->info.object), reiser4_psobj(cc)->p.label, hint->clstart, hint->clsize, hint->mode != RM_CHECK ? " Removed." : ""); } /** * If there still is a hole in the logical cluster, * then check a checksum (no hole means no checksum) */ else if (hint->hole && ccreg40_check_crc(hint)) { /* wrong checksum */ hint->bytes = 0; result = RE_FATAL; /* set offset of the cluster to be deleted. */ hint->clstart = ccreg40_clstart(hint->prev_found, hint->clsize); fsck_mess("The file [%s] (%s): the cluster at [%llu] " "offset %u bytes long is corrupted.%s", print_inode(obj40_core, &cc->info.object), reiser4_psobj(cc)->p.label, hint->clstart, hint->clsize, hint->mode != RM_CHECK ? " Removed." : ""); } /* Fini all the data related to the previous cluster. */ hint->stat.bytes += hint->bytes; hint->bytes = 0; hint->adler = 0; if (!cc->body.plug) return result; /* Update the cluster data. */ aal_memset(hint->data, 0, hint->clsize); } /* An item found. */ aal_assert("edward-1", ccreg40_clstart(hint->found, hint->clsize) == ccreg40_clstart(hint->maxreal, hint->clsize)); if ((res = ccreg40_read_item(&cc->body, hint))) return res; hint->prev_found = hint->found; hint->bytes += objcall(&cc->body, object->bytes); /** * Calculate a size of logical cluster * and figure out, if there is a hole * for the found items in the logical cluster. */ lcl_size = 0; if (ccreg40_clsame(hint->found, hint->sdsize - 1, hint->clsize)) lcl_size = hint->sdsize % hint->clsize; if (lcl_size == 0) lcl_size = hint->clsize; hint->hole = (hint->bytes != lcl_size); return result; } errno_t ccreg40_check_struct(reiser4_object_t *cc, place_func_t func, void *data, uint8_t mode) { object_info_t *info; ccreg40_hint_t hint; trans_hint_t trans; errno_t res; aal_assert("vpf-1829", cc != NULL); aal_assert("vpf-1836", cc->info.tree != NULL); info = &cc->info; aal_memset(&hint, 0, sizeof(hint)); if ((res = obj40_prepare_stat(cc, S_IFREG, mode))) return res; /* Try to register SD as an item of this file. */ if (func && func(&info->start, data)) return -EINVAL; res = 0; hint.mode = mode; hint.clsize = reiser4_pscluster(cc)->clsize; hint.sdsize = obj40_get_size(cc); while(1) { lookup_t lookup; /* Get next item. */ lookup = obj40_check_item(cc, ccreg40_check_item, NULL, &hint); if (repair_error_fatal(lookup)) return lookup; else if (lookup == ABSENT) cc->body.plug = NULL; /* Register the item. */ if (cc->body.plug && func && func(&cc->body, data)) { aal_bug("vpf-1869", "The item [%s] should not be " "registered yet.", print_key(obj40_core, &info->object)); } if ((res |= ccreg40_check_cluster(cc, &hint, mode)) < 0) return res; if (res & RE_FATAL) { /* Delete the whole cluster. */ if (mode == RM_BUILD) { res &= ~RE_FATAL; res |= obj40_cut(cc, &trans, hint.clstart, hint.clsize, NULL, NULL); if (res < 0) return res; } } /* If the file size is the max possible one, break out here to not seek to 0. */ if (!cc->body.plug || hint.maxreal == MAX_UINT64) break; hint.seek = hint.maxreal + 1; obj40_seek(cc, hint.seek); } /* Fix the SD, if no fatal corruptions were found. */ if (!(res & RE_FATAL)) { obj40_stat_ops_t ops; aal_memset(&ops, 0, sizeof(ops)); ops.check_size = ccreg40_check_size; ops.check_nlink = mode == RM_BUILD ? 0 : SKIP_METHOD; /** * don't report about wrong bytes for ccreg40 * objects, as in most cases it is because kernel * doesn't support i_blocks and i_bytes for such * objects because of performance issues. */ ops.check_bytes = mode == RM_CHECK ? SKIP_METHOD : 0; ops.check_bytes_report = SKIP_METHOD; hint.stat.mode = S_IFREG; hint.stat.size = objcall(&cc->position, get_offset); res |= obj40_update_stat(cc, &ops, &hint.stat, mode); } obj40_reset(cc); return res; } #endif /* Local variables: c-indentation-style: "K&R" mode-name: "LC" c-basic-offset: 8 tab-width: 8 fill-column: 80 scroll-step: 1 End: */ reiser4progs-1.0.7.orig/plugin/object/ccreg40/Makefile.in0000644000175000017500000004664411134132276021004 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/object/ccreg40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libccreg40_minimal_la_LIBADD = am__libccreg40_minimal_la_SOURCES_DIST = ccreg40.c ccreg40.h \ ccreg40_repair.c am__objects_1 = libccreg40_minimal_la-ccreg40.lo \ libccreg40_minimal_la-ccreg40_repair.lo @ENABLE_MINIMAL_TRUE@am_libccreg40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libccreg40_minimal_la_OBJECTS = $(am_libccreg40_minimal_la_OBJECTS) libccreg40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libccreg40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libccreg40_minimal_la_rpath = libccreg40_static_la_LIBADD = am__objects_2 = libccreg40_static_la-ccreg40.lo \ libccreg40_static_la-ccreg40_repair.lo am_libccreg40_static_la_OBJECTS = $(am__objects_2) libccreg40_static_la_OBJECTS = $(am_libccreg40_static_la_OBJECTS) libccreg40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libccreg40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libccreg40_minimal_la_SOURCES) \ $(libccreg40_static_la_SOURCES) DIST_SOURCES = $(am__libccreg40_minimal_la_SOURCES_DIST) \ $(libccreg40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ccreg40_sources = ccreg40.c ccreg40.h ccreg40_repair.c STATIC_LIBS = libccreg40-static.la libccreg40_static_la_SOURCES = $(ccreg40_sources) libccreg40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libccreg40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libccreg40_minimal_la_SOURCES = $(ccreg40_sources) @ENABLE_MINIMAL_TRUE@libccreg40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/object/ccreg40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/object/ccreg40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libccreg40-minimal.la: $(libccreg40_minimal_la_OBJECTS) $(libccreg40_minimal_la_DEPENDENCIES) $(libccreg40_minimal_la_LINK) $(am_libccreg40_minimal_la_rpath) $(libccreg40_minimal_la_OBJECTS) $(libccreg40_minimal_la_LIBADD) $(LIBS) libccreg40-static.la: $(libccreg40_static_la_OBJECTS) $(libccreg40_static_la_DEPENDENCIES) $(libccreg40_static_la_LINK) $(libccreg40_static_la_OBJECTS) $(libccreg40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libccreg40_minimal_la-ccreg40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libccreg40_minimal_la-ccreg40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libccreg40_static_la-ccreg40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libccreg40_static_la-ccreg40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libccreg40_minimal_la-ccreg40.lo: ccreg40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libccreg40_minimal_la_CFLAGS) $(CFLAGS) -MT libccreg40_minimal_la-ccreg40.lo -MD -MP -MF $(DEPDIR)/libccreg40_minimal_la-ccreg40.Tpo -c -o libccreg40_minimal_la-ccreg40.lo `test -f 'ccreg40.c' || echo '$(srcdir)/'`ccreg40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libccreg40_minimal_la-ccreg40.Tpo $(DEPDIR)/libccreg40_minimal_la-ccreg40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ccreg40.c' object='libccreg40_minimal_la-ccreg40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libccreg40_minimal_la_CFLAGS) $(CFLAGS) -c -o libccreg40_minimal_la-ccreg40.lo `test -f 'ccreg40.c' || echo '$(srcdir)/'`ccreg40.c libccreg40_minimal_la-ccreg40_repair.lo: ccreg40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libccreg40_minimal_la_CFLAGS) $(CFLAGS) -MT libccreg40_minimal_la-ccreg40_repair.lo -MD -MP -MF $(DEPDIR)/libccreg40_minimal_la-ccreg40_repair.Tpo -c -o libccreg40_minimal_la-ccreg40_repair.lo `test -f 'ccreg40_repair.c' || echo '$(srcdir)/'`ccreg40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libccreg40_minimal_la-ccreg40_repair.Tpo $(DEPDIR)/libccreg40_minimal_la-ccreg40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ccreg40_repair.c' object='libccreg40_minimal_la-ccreg40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libccreg40_minimal_la_CFLAGS) $(CFLAGS) -c -o libccreg40_minimal_la-ccreg40_repair.lo `test -f 'ccreg40_repair.c' || echo '$(srcdir)/'`ccreg40_repair.c libccreg40_static_la-ccreg40.lo: ccreg40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libccreg40_static_la_CFLAGS) $(CFLAGS) -MT libccreg40_static_la-ccreg40.lo -MD -MP -MF $(DEPDIR)/libccreg40_static_la-ccreg40.Tpo -c -o libccreg40_static_la-ccreg40.lo `test -f 'ccreg40.c' || echo '$(srcdir)/'`ccreg40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libccreg40_static_la-ccreg40.Tpo $(DEPDIR)/libccreg40_static_la-ccreg40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ccreg40.c' object='libccreg40_static_la-ccreg40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libccreg40_static_la_CFLAGS) $(CFLAGS) -c -o libccreg40_static_la-ccreg40.lo `test -f 'ccreg40.c' || echo '$(srcdir)/'`ccreg40.c libccreg40_static_la-ccreg40_repair.lo: ccreg40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libccreg40_static_la_CFLAGS) $(CFLAGS) -MT libccreg40_static_la-ccreg40_repair.lo -MD -MP -MF $(DEPDIR)/libccreg40_static_la-ccreg40_repair.Tpo -c -o libccreg40_static_la-ccreg40_repair.lo `test -f 'ccreg40_repair.c' || echo '$(srcdir)/'`ccreg40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libccreg40_static_la-ccreg40_repair.Tpo $(DEPDIR)/libccreg40_static_la-ccreg40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ccreg40_repair.c' object='libccreg40_static_la-ccreg40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libccreg40_static_la_CFLAGS) $(CFLAGS) -c -o libccreg40_static_la-ccreg40_repair.lo `test -f 'ccreg40_repair.c' || echo '$(srcdir)/'`ccreg40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/object/ccreg40/Makefile.am0000644000175000017500000000111411131470543020751 0ustar fzfzincludedir = -I$(top_srcdir)/include ccreg40_sources = ccreg40.c ccreg40.h ccreg40_repair.c STATIC_LIBS = libccreg40-static.la libccreg40_static_la_SOURCES = $(ccreg40_sources) libccreg40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libccreg40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libccreg40_minimal_la_SOURCES = $(ccreg40_sources) libccreg40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/object/ccreg40/ccreg40.c0000644000175000017500000002214211131470543020314 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. ccreg40.c -- reiser4 crypto compression regular file plugin. */ #ifndef ENABLE_MINIMAL #include "ccreg40.h" #include "plugin/object/obj40/obj40_repair.h" uint32_t ccreg40_get_cluster_size(reiser4_place_t *place) { trans_hint_t hint; ctail_hint_t chint; aal_assert("vpf-1866", place != NULL); hint.specific = &chint; hint.count = 1; if (objcall(place, object->fetch_units, &hint) != 1) return MAX_UINT32; return 1 << chint.shift; } errno_t ccreg40_set_cluster_size(reiser4_place_t *place, uint32_t cluster) { trans_hint_t hint; ctail_hint_t chint; aal_assert("vpf-1867", place != NULL); hint.specific = &chint; hint.count = 1; chint.shift = aal_log2(cluster); if (objcall(place, object->update_units, &hint) != 1) return -EIO; return 0; } /* Performs Cluster De-CryptoCompression. @count bytes are taken from @disk, get De-CC & the result is put into @clust. Returns the size of uncompressed cluster. compressed is an indicator if data on disk are smaller then the cluster size. Note cluster size depends on file size for the last cluster. */ static int64_t ccreg40_decc_cluster(reiser4_object_t *cc, void *clust, void *disk, int64_t count, uint32_t compressed) { if (reiser4_pscrypto(cc) != CRYPTO_NONE_ID) { aal_error("Object [%s]: Can't extract encrypted " "data. Not supported yet.", print_inode(obj40_core, &cc->info.object)); return -EINVAL; } /* Desite the set compression plugin, cluster can be either compressed or not. */ if (compressed) { aal_error("Object [%s]: Can't extract compressed " "data. Not supported yet.", print_inode(obj40_core, &cc->info.object)); return -EINVAL; } aal_memcpy(clust, disk, count); return count; } /* Performs Cluster CryptoCompression. @could bytes are taken from @clust, get CC & the result is put into @disk. Returns the size of CC-ed cluster. */ static int64_t ccreg40_cc_cluster(reiser4_object_t *cc, void *disk, void *clust, uint64_t count) { if (reiser4_pscrypto(cc) != CRYPTO_NONE_ID) { aal_error("Object [%s]: Can't encrypt data. Not supported " "yet.", print_inode(obj40_core, &cc->info.object)); return -EINVAL; } if (reiser4_pscmode(cc)->id.id != CMODE_NONE_ID || reiser4_compressed(reiser4_pscompress(cc)->id.id)) { aal_error("Object [%s]: Can't compress data. Not supported " "yet.", print_inode(obj40_core, &cc->info.object)); return -EINVAL; } aal_memcpy(disk, clust, count); return count; } /* Cluster read operation. It reads exactly 1 cluster the @off offset belongs to. De-CC it, copy the wanted part of the cluster into @buff & return the amount of bytes put into @buff. */ static int64_t ccreg40_read_clust(reiser4_object_t *cc, trans_hint_t *hint, void *buff, uint64_t off, uint64_t count, uint32_t fsize) { uint8_t clust[64 *1024]; uint8_t disk[64 * 1024]; uint64_t clstart; uint32_t clsize; int64_t read; if (off > fsize) return 0; clsize = reiser4_pscluster(cc)->clsize; clstart = ccreg40_clstart(off, clsize); if (clsize > fsize - clstart) clsize = fsize - clstart; /* Reading data. */ if ((read = obj40_read(cc, hint, disk, clstart, clsize)) < 0) return read; if (read == 0) { read = clstart + clsize - off; if ((uint64_t)read > count) read = count; aal_memset(buff, 0, read); return read; } /* Extract the read cluster to the given buffer. */ if ((read = ccreg40_decc_cluster(cc, clust, disk, read, read < clsize)) < 0) { return read; } if (read != clsize) { aal_error("File [%s]: Failed to read the cluster at the offset " "(%llu).", print_inode(obj40_core, &cc->info.object), clstart); return -EIO; } off -= clstart; read = clsize - off; if ((uint64_t)read > count) read = count; aal_memcpy(buff, clust + off, read); return read; } static errno_t cc_write_item(reiser4_place_t *place, void *data) { return ccreg40_set_cluster_size(place, *(uint32_t *)data); } /* Cluster write operation. It write exactly 1 cluster given in @buff. */ static int64_t ccreg40_write_clust(reiser4_object_t *cc, trans_hint_t *hint, void *buff, uint64_t off, uint64_t count, uint64_t fsize) { uint8_t clust[64 *1024]; uint8_t disk[64 * 1024]; uint64_t clstart; uint32_t clsize; int64_t written; uint64_t end; int64_t done; done = 0; clsize = reiser4_pscluster(cc)->clsize; clstart = ccreg40_clstart(off, clsize); /* Set @end to the cluster end offset. */ end = clstart + clsize; if (end > fsize) end = fsize; if (clstart >= fsize) { aal_memset(clust, 0, clsize); } else if (off != clstart || off + count < end) { if ((done = ccreg40_read_clust(cc, hint, clust, clstart, end - clstart, fsize)) < 0) { return done; } if ((uint64_t)done != end - clstart) { aal_error("File [%s]: Failed to read the " "cluster at the offset (%llu).", print_inode(obj40_core, &cc->info.object), off); return -EIO; } } end = clstart + clsize; if (end > off + count) end = off + count; count = end - off; aal_memcpy(clust + off - clstart, buff, count); end = (clstart + done > off + count) ? clstart + done : off + count; if ((done = ccreg40_cc_cluster(cc, disk, clust, end - clstart)) < 0) return done; if ((written = obj40_write(cc, hint, clust, clstart, done, reiser4_psctail(cc), cc_write_item, &clsize)) < 0) { return written; } if (written < done) { aal_error("File [%s]: There are less bytes " "written (%llu) than asked (%llu).", print_inode(obj40_core, &cc->info.object), written, done); return -EIO; } return count; } static int64_t ccreg40_read(reiser4_object_t *cc, void *buff, uint64_t n) { trans_hint_t hint; uint64_t count; uint64_t fsize; int64_t read; uint64_t off; errno_t res; aal_assert("vpf-1873", cc != NULL); aal_assert("vpf-1874", buff != NULL); if ((res = obj40_update(cc))) return res; count = 0; off = obj40_offset(cc); fsize = obj40_get_size(cc); if (off > fsize) return 0; if (n > fsize - off) n = fsize - off; while (n) { /* Reading data. */ if ((read = ccreg40_read_clust(cc, &hint, buff, off, n, fsize)) < 0) { return read; } aal_assert("vpf-1879", (uint64_t)read <= n); count += read; buff += read; off += read; n -= read; } obj40_seek(cc, off); return count; } static int64_t ccreg40_write(reiser4_object_t *cc, void *buff, uint64_t n) { trans_hint_t hint; uint64_t fsize; uint64_t count; uint64_t bytes; uint64_t off; errno_t res; aal_assert("vpf-1877", cc != NULL); aal_assert("vpf-1878", buff != NULL); if ((res = obj40_update(cc))) return res; fsize = obj40_get_size(cc); off = obj40_offset(cc); count = 0; bytes = 0; while (n) { if ((res = ccreg40_write_clust(cc, &hint, buff, off, n, fsize)) < 0) { return res; } aal_assert("vpf-1880", (uint64_t)res <= n); bytes += hint.bytes; count += res; buff += res; off += res; n -= res; } obj40_seek(cc, off); off = fsize > off ? 0 : off - fsize; /* Updating the SD place and update size, bytes there. */ if ((res = obj40_touch(cc, off, bytes))) return res; return count; } static errno_t ccreg40_truncate(reiser4_object_t *cc, uint64_t n) { return obj40_truncate(cc, n, reiser4_psctail(cc)); } static errno_t ccreg40_clobber(reiser4_object_t *cc) { errno_t res; aal_assert("vpf-1881", cc != NULL); if ((res = ccreg40_truncate(cc, 0)) < 0) return res; return obj40_clobber(cc); } static errno_t ccreg40_layout(reiser4_object_t *cc, region_func_t func, void *data) { obj40_reset(cc); return obj40_layout(cc, func, NULL, data); } static errno_t ccreg40_metadata(reiser4_object_t *cc, place_func_t func, void *data) { obj40_reset(cc); return obj40_traverse(cc, func, NULL, data); } /* CRC regular file plugin. */ reiser4_object_plug_t ccreg40_plug = { .p = { .id = {OBJECT_CCREG40_ID, REG_OBJECT, OBJECT_PLUG_TYPE}, .label = "ccreg40", .desc = "Cryptcompress regular file plugin.", }, .inherit = obj40_inherit, .create = obj40_create, .write = ccreg40_write, .truncate = ccreg40_truncate, .layout = ccreg40_layout, .metadata = ccreg40_metadata, .convert = NULL, .link = obj40_link, .unlink = obj40_unlink, .linked = obj40_linked, .clobber = ccreg40_clobber, .recognize = obj40_recognize, .check_struct = ccreg40_check_struct, .add_entry = NULL, .rem_entry = NULL, .build_entry = NULL, .attach = NULL, .detach = NULL, .fake = NULL, .check_attach = NULL, .lookup = NULL, .follow = NULL, .readdir = NULL, .telldir = NULL, .seekdir = NULL, .stat = obj40_load_stat, .open = obj40_open, .close = NULL, .reset = obj40_reset, .seek = obj40_seek, .offset = obj40_offset, .read = ccreg40_read, .sdext_mandatory = (1 << SDEXT_LW_ID), .sdext_unknown = (1 << SDEXT_SYMLINK_ID | 1 << SDEXT_CRYPTO_ID) }; #endif reiser4progs-1.0.7.orig/plugin/object/Makefile.am0000644000175000017500000000006011131470543017521 0ustar fzfzSUBDIRS = obj40 dir40 reg40 sym40 spl40 ccreg40 reiser4progs-1.0.7.orig/plugin/object/sym40/0000777000175000017500000000000011134133446016452 5ustar fzfzreiser4progs-1.0.7.orig/plugin/object/sym40/Makefile.in0000644000175000017500000004615511134132277020527 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/object/sym40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsym40_minimal_la_LIBADD = am__libsym40_minimal_la_SOURCES_DIST = sym40.c sym40_repair.c \ sym40_repair.h am__objects_1 = libsym40_minimal_la-sym40.lo \ libsym40_minimal_la-sym40_repair.lo @ENABLE_MINIMAL_TRUE@am_libsym40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libsym40_minimal_la_OBJECTS = $(am_libsym40_minimal_la_OBJECTS) libsym40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsym40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsym40_minimal_la_rpath = libsym40_static_la_LIBADD = am__objects_2 = libsym40_static_la-sym40.lo \ libsym40_static_la-sym40_repair.lo am_libsym40_static_la_OBJECTS = $(am__objects_2) libsym40_static_la_OBJECTS = $(am_libsym40_static_la_OBJECTS) libsym40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsym40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsym40_minimal_la_SOURCES) $(libsym40_static_la_SOURCES) DIST_SOURCES = $(am__libsym40_minimal_la_SOURCES_DIST) \ $(libsym40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sym40_sources = sym40.c sym40_repair.c sym40_repair.h STATIC_LIBS = libsym40-static.la libsym40_static_la_SOURCES = $(sym40_sources) libsym40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsym40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsym40_minimal_la_SOURCES = $(sym40_sources) @ENABLE_MINIMAL_TRUE@libsym40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/object/sym40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/object/sym40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsym40-minimal.la: $(libsym40_minimal_la_OBJECTS) $(libsym40_minimal_la_DEPENDENCIES) $(libsym40_minimal_la_LINK) $(am_libsym40_minimal_la_rpath) $(libsym40_minimal_la_OBJECTS) $(libsym40_minimal_la_LIBADD) $(LIBS) libsym40-static.la: $(libsym40_static_la_OBJECTS) $(libsym40_static_la_DEPENDENCIES) $(libsym40_static_la_LINK) $(libsym40_static_la_OBJECTS) $(libsym40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsym40_minimal_la-sym40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsym40_minimal_la-sym40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsym40_static_la-sym40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsym40_static_la-sym40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsym40_minimal_la-sym40.lo: sym40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsym40_minimal_la_CFLAGS) $(CFLAGS) -MT libsym40_minimal_la-sym40.lo -MD -MP -MF $(DEPDIR)/libsym40_minimal_la-sym40.Tpo -c -o libsym40_minimal_la-sym40.lo `test -f 'sym40.c' || echo '$(srcdir)/'`sym40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsym40_minimal_la-sym40.Tpo $(DEPDIR)/libsym40_minimal_la-sym40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sym40.c' object='libsym40_minimal_la-sym40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsym40_minimal_la_CFLAGS) $(CFLAGS) -c -o libsym40_minimal_la-sym40.lo `test -f 'sym40.c' || echo '$(srcdir)/'`sym40.c libsym40_minimal_la-sym40_repair.lo: sym40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsym40_minimal_la_CFLAGS) $(CFLAGS) -MT libsym40_minimal_la-sym40_repair.lo -MD -MP -MF $(DEPDIR)/libsym40_minimal_la-sym40_repair.Tpo -c -o libsym40_minimal_la-sym40_repair.lo `test -f 'sym40_repair.c' || echo '$(srcdir)/'`sym40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsym40_minimal_la-sym40_repair.Tpo $(DEPDIR)/libsym40_minimal_la-sym40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sym40_repair.c' object='libsym40_minimal_la-sym40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsym40_minimal_la_CFLAGS) $(CFLAGS) -c -o libsym40_minimal_la-sym40_repair.lo `test -f 'sym40_repair.c' || echo '$(srcdir)/'`sym40_repair.c libsym40_static_la-sym40.lo: sym40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsym40_static_la_CFLAGS) $(CFLAGS) -MT libsym40_static_la-sym40.lo -MD -MP -MF $(DEPDIR)/libsym40_static_la-sym40.Tpo -c -o libsym40_static_la-sym40.lo `test -f 'sym40.c' || echo '$(srcdir)/'`sym40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsym40_static_la-sym40.Tpo $(DEPDIR)/libsym40_static_la-sym40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sym40.c' object='libsym40_static_la-sym40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsym40_static_la_CFLAGS) $(CFLAGS) -c -o libsym40_static_la-sym40.lo `test -f 'sym40.c' || echo '$(srcdir)/'`sym40.c libsym40_static_la-sym40_repair.lo: sym40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsym40_static_la_CFLAGS) $(CFLAGS) -MT libsym40_static_la-sym40_repair.lo -MD -MP -MF $(DEPDIR)/libsym40_static_la-sym40_repair.Tpo -c -o libsym40_static_la-sym40_repair.lo `test -f 'sym40_repair.c' || echo '$(srcdir)/'`sym40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsym40_static_la-sym40_repair.Tpo $(DEPDIR)/libsym40_static_la-sym40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sym40_repair.c' object='libsym40_static_la-sym40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsym40_static_la_CFLAGS) $(CFLAGS) -c -o libsym40_static_la-sym40_repair.lo `test -f 'sym40_repair.c' || echo '$(srcdir)/'`sym40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/object/sym40/sym40_repair.h0000644000175000017500000000066711131470543021145 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sym40_repair.h -- reiser4 symlink plugin repair functions. */ #ifndef SYM40_REPAIR_H #define SYM40_REPAIR_H #include "plugin/object/obj40/obj40_repair.h" extern errno_t sym40_check_struct(reiser4_object_t *sym, place_func_t place_func, void *data, uint8_t mode); extern errno_t sym40_recognize(reiser4_object_t *sym); #endif reiser4progs-1.0.7.orig/plugin/object/sym40/sym40_repair.c0000644000175000017500000000307611131470543021135 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sym40_repair.c -- reiser4 default symlink file plugin repair code. */ #include "sym40_repair.h" #ifndef ENABLE_MINIMAL #ifdef ENABLE_SYMLINKS errno_t sym40_check_struct(reiser4_object_t *sym, place_func_t place_func, void *data, uint8_t mode) { reiser4_place_t *place; obj40_stat_hint_t hint; obj40_stat_ops_t ops; errno_t res; char *path; aal_assert("vpf-1232", sym != NULL); aal_assert("vpf-1233", sym->info.tree != NULL); aal_assert("vpf-1234", sym->info.object.plug != NULL); place = STAT_PLACE(sym); aal_memset(&ops, 0, sizeof(ops)); aal_memset(&hint, 0, sizeof(hint)); if ((res = obj40_prepare_stat(sym, S_IFLNK, mode))) return res; if (!(path = aal_calloc(place_blksize(place), 0))) return -ENOMEM; if ((res = obj40_read_ext(sym, SDEXT_SYMLINK_ID, path))) goto error; /* Fix the SD, if no fatal corruptions were found. */ ops.check_nlink = mode == RM_BUILD ? 0 : SKIP_METHOD; hint.mode = S_IFLNK; hint.size = aal_strlen(path); if (!hint.size) { fsck_mess("The object [%s]: found SD item of the SymLink " "type does not have SymLink SD extention.%s", print_inode(obj40_core, &sym->info.object), mode != RM_CHECK ? " Removed" : ""); return RE_FATAL; } /* Try to register SD as an item of this file. */ if (place_func && place_func(place, data)) return -EINVAL; if ((res = obj40_update_stat(sym, &ops, &hint, mode))) goto error; aal_free(path); return 0; error: aal_free(path); return res; } #endif #endif reiser4progs-1.0.7.orig/plugin/object/sym40/Makefile.am0000644000175000017500000000107611131470543020505 0ustar fzfzincludedir = -I$(top_srcdir)/include sym40_sources = sym40.c sym40_repair.c sym40_repair.h STATIC_LIBS = libsym40-static.la libsym40_static_la_SOURCES = $(sym40_sources) libsym40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsym40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsym40_minimal_la_SOURCES = $(sym40_sources) libsym40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/object/sym40/sym40.c0000644000175000017500000000674211131470543017576 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. sym40.c -- reiser4 symlink file plugin. */ #include "sym40_repair.h" #ifdef ENABLE_SYMLINKS /* Reads whole symlink data to passed @buff. */ static int64_t sym40_read(reiser4_object_t *sym, void *buff, uint64_t n) { errno_t res; aal_assert("umka-1571", buff != NULL); aal_assert("umka-1570", sym != NULL); /* Update stat data coord. */ if ((res = obj40_update(sym))) return res; /* Reading symlink extension data. */ if ((res = obj40_read_ext(sym, SDEXT_SYMLINK_ID, buff))) return res; return aal_strlen(buff); } #ifndef ENABLE_MINIMAL /* Creates symlink and returns initialized instance to the caller */ static errno_t sym40_create(reiser4_object_t *sym, object_hint_t *hint) { aal_assert("umka-1740", hint != NULL); /* Create symlink sta data item. */ return obj40_create_stat(sym, aal_strlen(hint->str), 0, 0, 0, hint->mode | S_IFLNK | 0644, hint->str); } /* Clober symlink, that is clobber its stat data. */ static errno_t sym40_clobber(reiser4_object_t *sym) { aal_assert("umka-2300", sym != NULL); return obj40_clobber(sym); } #endif /* This function reads symlink, parses it with aux_parse_path() applying corresponding callback fucntions for searching stat data and searchig all entries. It returns stat data key of the object symlink points to. Note: not static, to allow symlink support detection to work. Should be changed? */ errno_t sym40_follow(reiser4_object_t *sym, reiser4_key_t *from, reiser4_key_t *key) { uint32_t size; errno_t res; char *path; aal_assert("umka-1775", key != NULL); aal_assert("umka-2245", from != NULL); aal_assert("umka-1774", sym != NULL); /* Maximal symlink size is MAX_ITEM_LEN. Take the block size to simplify it. */ size = place_blksize(STAT_PLACE(sym)); if (!(path = aal_calloc(size, 0))) return -ENOMEM; /* Read symlink data to @path */ if ((res = sym40_read(sym, path, size) < 0)) goto error; /* Calling symlink parse function and resolution function. */ if ((res = obj40_core->object_ops.resolve(sym->info.tree, path, from, key))) { goto error; } aal_free(path); return 0; error: aal_free(path); return res; } /* Symlink plugin itself. */ reiser4_object_plug_t sym40_plug = { .p = { .id = {OBJECT_SYM40_ID, SYM_OBJECT, OBJECT_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "sym40", .desc = "Symlink file plugin.", #endif }, #ifndef ENABLE_MINIMAL .inherit = obj40_inherit, .create = sym40_create, .metadata = obj40_metadata, .link = obj40_link, .unlink = obj40_unlink, .linked = obj40_linked, .clobber = sym40_clobber, .recognize = obj40_recognize, .check_struct = sym40_check_struct, .layout = NULL, .seek = NULL, .write = NULL, .convert = NULL, .truncate = NULL, .rem_entry = NULL, .add_entry = NULL, .build_entry = NULL, .attach = NULL, .detach = NULL, .fake = NULL, .check_attach = NULL, #endif .lookup = NULL, .reset = NULL, .offset = NULL, .readdir = NULL, .telldir = NULL, .seekdir = NULL, .stat = obj40_load_stat, .read = sym40_read, .open = obj40_open, .close = NULL, .follow = sym40_follow, #ifndef ENABLE_MINIMAL .sdext_mandatory = (1 << SDEXT_LW_ID | 1 << SDEXT_SYMLINK_ID), .sdext_unknown = 0, #endif }; #endif reiser4progs-1.0.7.orig/plugin/journal/0000777000175000017500000000000011134133445015701 5ustar fzfzreiser4progs-1.0.7.orig/plugin/journal/Makefile.in0000644000175000017500000003434311134132275017751 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/journal DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = journal40 all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/journal/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/journal/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/journal/Makefile.am0000644000175000017500000000002411131470543017725 0ustar fzfzSUBDIRS = journal40 reiser4progs-1.0.7.orig/plugin/journal/journal40/0000777000175000017500000000000011134133445017517 5ustar fzfzreiser4progs-1.0.7.orig/plugin/journal/journal40/journal40.c0000644000175000017500000004045711131470543021507 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. journal40.c -- reiser4 journal plugin. */ #ifndef ENABLE_MINIMAL #include "journal40.h" #include "journal40_repair.h" static uint32_t journal40_get_state(reiser4_journal_ent_t *entity) { aal_assert("umka-2081", entity != NULL); return PLUG_ENT(entity)->state; } static void journal40_set_state(reiser4_journal_ent_t *entity, uint32_t state) { aal_assert("umka-2082", entity != NULL); PLUG_ENT(entity)->state = state; } static errno_t journal40_valid(reiser4_journal_ent_t *entity) { aal_assert("umka-965", entity != NULL); return 0; } /* Journal enumerator function. */ static errno_t journal40_layout(reiser4_journal_ent_t *entity, region_func_t region_func, void *data) { blk_t blk; aal_assert("umka-1040", entity != NULL); aal_assert("umka-1041", region_func != NULL); blk = JOURNAL40_BLOCKNR(PLUG_ENT(entity)->blksize); return region_func(blk, 2, data); } aal_device_t *journal40_device(reiser4_journal_ent_t *entity) { aal_assert("vpf-455", entity != NULL); return PLUG_ENT(entity)->device; } /* Helper function fetching journal footer and header. */ static errno_t cb_fetch_journal(blk_t start, count_t width, void *data) { journal40_t *journal = (journal40_t *)data; /* Load journal header. */ if (!(journal->header = aal_block_load(journal->device, journal->blksize, start))) { aal_error("Can't read journal header from block " "%llu. %s.", start, journal->device->error); return -EIO; } /* Load journal footer. */ if (!(journal->footer = aal_block_load(journal->device, journal->blksize, start + 1))) { aal_error("Can't read journal footer from block %llu. %s.", start + 1, journal->device->error); aal_block_free(journal->header); return -EIO; } return 0; } /* Open journal on passed @format entity, @start and @blocks. Uses passed @desc for getting device journal is working on and fs block size. */ static reiser4_journal_ent_t *journal40_open(aal_device_t *device, uint32_t blksize, reiser4_format_ent_t *format, reiser4_oid_ent_t *oid, uint64_t start, uint64_t blocks) { journal40_t *journal; aal_assert("umka-409", device != NULL); aal_assert("umka-1692", format != NULL); /* Initializign journal entity. */ if (!(journal = aal_calloc(sizeof(*journal), 0))) return NULL; journal->state = 0; journal->format = format; journal->oid = oid; journal->device = device; journal->plug = &journal40_plug; journal->blksize = blksize; journal->area.len = blocks; journal->area.start = start; /* Calling journal enumerator in order to fetch journal header and footer. */ if (journal40_layout((reiser4_journal_ent_t *)journal, cb_fetch_journal, journal)) { aal_error("Can't open journal header/footer."); goto error_free_journal; } return (reiser4_journal_ent_t *)journal; error_free_journal: aal_free(journal); return NULL; } /* Helper function for creating empty journal header and footer. Used in journal create time. */ static errno_t cb_alloc_journal(blk_t start, count_t width, void *data) { journal40_t *journal = (journal40_t *)data; if (!(journal->header = aal_block_alloc(journal->device, journal->blksize, start))) { aal_error("Can't alloc journal header on " "block %llu.", start); return -ENOMEM; } if (!(journal->footer = aal_block_alloc(journal->device, journal->blksize, start + 1))) { aal_error("Can't alloc journal footer " "on block %llu.", start + 1); aal_block_free(journal->header); return -ENOMEM; } aal_block_fill(journal->header, 0); aal_block_fill(journal->footer, 0); return 0; } /* Create journal entity on passed params. Return create instance to caller. */ static reiser4_journal_ent_t *journal40_create(aal_device_t *device, uint32_t blksize, reiser4_format_ent_t *format, reiser4_oid_ent_t *oid, uint64_t start, uint64_t blocks) { journal40_t *journal; aal_assert("umka-1057", device != NULL); aal_assert("umka-1691", format != NULL); /* Initializing journal entity. Making it dirty. Setting up all fields. */ if (!(journal = aal_calloc(sizeof(*journal), 0))) return NULL; journal->format = format; journal->oid = oid; journal->area.len = blocks; journal->area.start = start; journal->device = device; journal->plug = &journal40_plug; journal->blksize = blksize; journal40_mkdirty(journal); /* Create journal header and footer. */ if (journal40_layout((reiser4_journal_ent_t *)journal, cb_alloc_journal, journal)) { aal_error("Can't create journal header/footer."); goto error_free_journal; } return (reiser4_journal_ent_t *)journal; error_free_journal: aal_free(journal); return NULL; } /* Helper function for save jopurnal header and footer to device journal is working on. */ static errno_t cb_sync_journal(blk_t start, count_t width, void *data) { journal40_t *journal = (journal40_t *)data; if (aal_block_write(journal->header)) { aal_error("Can't write journal header. %s.", journal->device->error); return -EIO; } if (aal_block_write(journal->footer)) { aal_error("Can't write journal footer. %s.", journal->device->error); return -EIO; } return 0; } /* Save journal metadata to device. */ static errno_t journal40_sync(reiser4_journal_ent_t *entity) { errno_t res; aal_assert("umka-410", entity != NULL); if ((res = journal40_layout(entity, cb_sync_journal, entity))) return res; journal40_mkclean(entity); return 0; } /* Update header/footer fields. Used from journal40_replay() and from fsck related stuff. */ static errno_t journal40_update(journal40_t *journal) { errno_t res = 0; aal_device_t *device; aal_block_t *tx_block; journal40_footer_t *footer; journal40_header_t *header; journal40_tx_header_t *tx_header; uint64_t last_commited_tx, last_flushed_tx; aal_assert("vpf-450", journal != NULL); aal_assert("vpf-451", journal->footer != NULL); aal_assert("vpf-452", journal->footer->data != NULL); aal_assert("vpf-453", journal->header != NULL); aal_assert("vpf-504", journal->header->data != NULL); aal_assert("vpf-454", journal->device != NULL); footer = JFOOTER(journal->footer); header = JHEADER(journal->header); last_commited_tx = get_jh_last_commited(header); last_flushed_tx = get_jf_last_flushed(footer); if (last_flushed_tx == last_commited_tx) return 0; device = journal->device; if (!(tx_block = aal_block_load(device, journal->blksize, last_commited_tx))) { aal_error("Can't read block %llu while updating " "the journal. %s.", last_commited_tx, device->error); return -EIO; } tx_header = (journal40_tx_header_t *)tx_block->data; if (aal_memcmp(tx_header->magic, TXH_MAGIC, TXH_MAGIC_SIZE)) { aal_error("Invalid transaction header has been detected."); res = -EINVAL; goto error_free_tx_block; } /* Updating journal footer */ set_jf_last_flushed(footer, last_commited_tx); set_jf_free_blocks(footer, get_th_free_blocks(tx_header)); set_jf_used_oids(footer, get_th_used_oids(tx_header)); set_jf_next_oid(footer, get_th_next_oid(tx_header)); journal40_mkdirty(journal); error_free_tx_block: aal_block_free(tx_block); return res; } static errno_t journal40_update_format(journal40_t *journal) { journal40_footer_t *footer; aal_assert("vpf-1582", journal != NULL); aal_assert("vpf-1583", journal->format != NULL); aal_assert("vpf-1584", journal->footer != NULL); aal_assert("vpf-1585", journal->footer->data != NULL); footer = JFOOTER(journal->footer); /* If there is no valid info, return. */ if (!get_jf_last_flushed(footer)) return 0; /* Some transaction passed, update format accordingly to the footer info. */ entcall(journal->format, set_free, get_jf_free_blocks(footer)); entcall(journal->oid, set_next, get_jf_next_oid(footer)); entcall(journal->oid, set_used, get_jf_used_oids(footer)); return 0; } /* Traverses one journal transaction. This is used for transactions replaying, checking, etc. */ errno_t journal40_traverse_trans( reiser4_journal_ent_t *entity, /* journal object to be traversed */ aal_block_t *tx_block, /* trans header of a transaction */ journal40_han_func_t han_func, /* wandered/original pair callback */ journal40_sec_func_t sec_func, /* secondary blocks callback */ void *data) { errno_t res; uint64_t log_blk; uint32_t i, capacity; aal_device_t *device; journal40_t *journal; journal40_lr_entry_t *entry; aal_block_t *log_block = NULL; aal_block_t *wan_block = NULL; journal40_lr_header_t *lr_header; journal = (journal40_t *)entity; device = journal->device; log_blk = get_th_next_block((journal40_tx_header_t *)tx_block->data); while (log_blk != tx_block->nr) { /* FIXME-VITALY->UMKA: There should be a check that the log_blk is not one of the LGR's of the same transaction. return 1. */ if (sec_func && (res = sec_func(entity, tx_block, log_blk, JB_LGR, data))) { return res; } /* Loading log record block. */ if (!(log_block = aal_block_load(device, journal->blksize, log_blk))) { aal_error("Can't read block %llu while " "traversing the journal. %s.", log_blk, device->error); return -EIO; } /* Checking it for validness, that is check magic, etc. */ lr_header = (journal40_lr_header_t *)log_block->data; log_blk = get_lh_next_block(lr_header); if (aal_memcmp(lr_header->magic, LGR_MAGIC, LGR_MAGIC_SIZE)) { aal_error("Invalid log record header has been detected."); res = -ESTRUCT; goto error_free_log_block; } entry = (journal40_lr_entry_t *)(lr_header + 1); capacity = (journal->blksize - sizeof(journal40_lr_header_t)) / sizeof(journal40_lr_entry_t); /* Loop trough the all wandered records. */ for (i = 0; i < capacity; i++) { if (get_le_wandered(entry) == 0) break; if (sec_func) { if ((res = sec_func(entity, tx_block, get_le_wandered(entry), JB_WAN, data))) { goto error_free_log_block; } if ((res = sec_func(entity, tx_block, get_le_original(entry), JB_ORG, data))) { goto error_free_log_block; } } if (han_func) { if (!(wan_block = aal_block_load(device, journal->blksize, get_le_wandered(entry)))) { aal_error("Can't read block %llu while " "traversing the journal. %s.", get_le_wandered(entry), device->error); res = -EIO; goto error_free_log_block; } if ((res = han_func(entity, wan_block, get_le_original(entry), data))) { goto error_free_wandered; } aal_block_free(wan_block); } entry++; } aal_block_free(log_block); } return 0; error_free_wandered: aal_block_free(wan_block); error_free_log_block: aal_block_free(log_block); return res; } /* Journal traverse method. Finds the oldest transaction first, then goes through each transaction from the oldest to the earliest. Return codes: 0 everything okay < 0 some error (-ESTRUCT, -EIO, etc). */ errno_t journal40_traverse( reiser4_journal_ent_t *entity, /* journal object to be traversed */ journal40_txh_func_t txh_func, /* TxH block callback */ journal40_han_func_t han_func, /* wandered/original pair callback */ journal40_sec_func_t sec_func, /* secondary blocks callback */ void *data) /* opaque data for traverse callbacks */ { errno_t res; uint64_t txh_blk; aal_device_t *device; uint64_t last_flushed_tx; uint64_t last_commited_tx; journal40_t *journal; aal_block_t *tx_block; aal_list_t *tx_list = NULL; journal40_header_t *jheader; journal40_footer_t *jfooter; journal40_tx_header_t *tx_header; journal = (journal40_t *)entity; aal_assert("vpf-448", journal != NULL); aal_assert("vpf-487", journal->header != NULL); aal_assert("vpf-488", journal->header->data != NULL); jheader = (journal40_header_t *)journal->header->data; jfooter = (journal40_footer_t *)journal->footer->data; last_commited_tx = get_jh_last_commited(jheader); last_flushed_tx = get_jf_last_flushed(jfooter); device = journal->device; txh_blk = last_commited_tx; while (txh_blk != last_flushed_tx) { /* FIXME-VITALY->UMKA: There should be a check that the txh_blk is not one of the TxH's we have met already. return 1. */ if (txh_func && (res = txh_func(entity, txh_blk, data))) goto error_free_tx_list; if (!(tx_block = aal_block_load(device, journal->blksize, txh_blk))) { aal_error("Can't read block %llu while traversing " "the journal. %s.", txh_blk, device->error); res = -EIO; goto error_free_tx_list; } tx_header = (journal40_tx_header_t *)tx_block->data; if (aal_memcmp(tx_header->magic, TXH_MAGIC, TXH_MAGIC_SIZE)) { aal_error("Invalid transaction header has been detected."); res = -ESTRUCT; goto error_free_tx_list; } txh_blk = get_th_prev_tx(tx_header); tx_list = aal_list_prepend(tx_list, tx_block); } while (tx_list != NULL) { /* The oldest valid unreplayed transaction */ tx_block = (aal_block_t *)tx_list->data; if ((res = journal40_traverse_trans(entity, tx_block, han_func, sec_func, data))) { goto error_free_tx_list; } tx_list = aal_list_remove(tx_list, tx_block); aal_block_free(tx_block); } return 0; error_free_tx_list: /* Close all from the list */ while(tx_list != NULL) { tx_block = (aal_block_t *)aal_list_first(tx_list)->data; tx_list = aal_list_remove(tx_list, tx_block); aal_block_free(tx_block); } return res; } static errno_t cb_replay(reiser4_journal_ent_t *entity, aal_block_t *block, d64_t orig, void *data) { errno_t res; aal_block_move(block, PLUG_ENT(entity)->device, orig); if ((res = aal_block_write(block))) { aal_error("Can't write block %llu.", block->nr); aal_block_free(block); } return res; } typedef struct replay_count { uint64_t tx_count; uint64_t blk_count; } replay_count_t; static errno_t cb_print_replay(reiser4_journal_ent_t *entity, aal_block_t *block, blk_t orig, journal40_block_t type, void *data) { journal40_tx_header_t *header; replay_count_t *count; header = (journal40_tx_header_t *)block->data; count = (replay_count_t *)data; if (type == JB_WAN) count->blk_count++; /* A print at every transaction. */ if (type != JB_LGR) return 0; aal_mess("Replaying transaction: id %llu, block count %lu.", header->th_id, (long unsigned)header->th_total); count->tx_count++; return 0; } /* Makes journal replay */ static errno_t journal40_replay(reiser4_journal_ent_t *entity) { replay_count_t count; errno_t res; aal_assert("umka-412", entity != NULL); aal_memset(&count, 0, sizeof(count)); /* Traverse the journal and replay all transactions. */ if ((res = journal40_traverse(entity, NULL, cb_replay, cb_print_replay, &count))) { return res; } /* Update the format according to the footer's values. */ if ((res = journal40_update_format(PLUG_ENT(entity)))) return res; /* Update the journal. */ if ((res = journal40_update(PLUG_ENT(entity)))) return res; if (count.tx_count) { aal_mess("Reiser4 journal (%s) on %s: %llu transactions " "replayed of the total %llu blocks.", journal40_plug.p.label, PLUG_ENT(entity)->device->name, count.tx_count, count.blk_count); } /* Invalidate the journal. */ journal40_invalidate(entity); return 0; } /* Releases the journal */ static void journal40_close(reiser4_journal_ent_t *entity) { aal_assert("umka-411", entity != NULL); aal_block_free(PLUG_ENT(entity)->header); aal_block_free(PLUG_ENT(entity)->footer); aal_free(entity); } reiser4_journal_plug_t journal40_plug = { .p = { .id = {JOURNAL_REISER40_ID, 0, JOURNAL_PLUG_TYPE}, .label = "journal40", .desc = "Journal plugin.", }, .open = journal40_open, .create = journal40_create, .sync = journal40_sync, .replay = journal40_replay, .print = journal40_print, .layout = journal40_layout, .valid = journal40_valid, .close = journal40_close, .device = journal40_device, .set_state = journal40_set_state, .get_state = journal40_get_state, .check_struct = journal40_check_struct, .invalidate = journal40_invalidate, .pack = journal40_pack, .unpack = journal40_unpack, }; #endif reiser4progs-1.0.7.orig/plugin/journal/journal40/Makefile.in0000644000175000017500000004743411134132275021574 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/journal/journal40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libjournal40_minimal_la_LIBADD = am__libjournal40_minimal_la_SOURCES_DIST = journal40.c \ journal40_repair.c journal40.h journal40_repair.h am__objects_1 = libjournal40_minimal_la-journal40.lo \ libjournal40_minimal_la-journal40_repair.lo @ENABLE_MINIMAL_TRUE@am_libjournal40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libjournal40_minimal_la_OBJECTS = \ $(am_libjournal40_minimal_la_OBJECTS) libjournal40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libjournal40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libjournal40_minimal_la_rpath = libjournal40_static_la_LIBADD = am__objects_2 = libjournal40_static_la-journal40.lo \ libjournal40_static_la-journal40_repair.lo am_libjournal40_static_la_OBJECTS = $(am__objects_2) libjournal40_static_la_OBJECTS = $(am_libjournal40_static_la_OBJECTS) libjournal40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libjournal40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libjournal40_minimal_la_SOURCES) \ $(libjournal40_static_la_SOURCES) DIST_SOURCES = $(am__libjournal40_minimal_la_SOURCES_DIST) \ $(libjournal40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ journal40_sources = journal40.c journal40_repair.c \ journal40.h journal40_repair.h STATIC_LIBS = libjournal40-static.la libjournal40_static_la_SOURCES = $(journal40_sources) libjournal40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libjournal40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libjournal40_minimal_la_SOURCES = $(journal40_sources) @ENABLE_MINIMAL_TRUE@libjournal40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/journal/journal40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/journal/journal40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libjournal40-minimal.la: $(libjournal40_minimal_la_OBJECTS) $(libjournal40_minimal_la_DEPENDENCIES) $(libjournal40_minimal_la_LINK) $(am_libjournal40_minimal_la_rpath) $(libjournal40_minimal_la_OBJECTS) $(libjournal40_minimal_la_LIBADD) $(LIBS) libjournal40-static.la: $(libjournal40_static_la_OBJECTS) $(libjournal40_static_la_DEPENDENCIES) $(libjournal40_static_la_LINK) $(libjournal40_static_la_OBJECTS) $(libjournal40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjournal40_minimal_la-journal40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjournal40_minimal_la-journal40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjournal40_static_la-journal40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjournal40_static_la-journal40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libjournal40_minimal_la-journal40.lo: journal40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjournal40_minimal_la_CFLAGS) $(CFLAGS) -MT libjournal40_minimal_la-journal40.lo -MD -MP -MF $(DEPDIR)/libjournal40_minimal_la-journal40.Tpo -c -o libjournal40_minimal_la-journal40.lo `test -f 'journal40.c' || echo '$(srcdir)/'`journal40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libjournal40_minimal_la-journal40.Tpo $(DEPDIR)/libjournal40_minimal_la-journal40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal40.c' object='libjournal40_minimal_la-journal40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjournal40_minimal_la_CFLAGS) $(CFLAGS) -c -o libjournal40_minimal_la-journal40.lo `test -f 'journal40.c' || echo '$(srcdir)/'`journal40.c libjournal40_minimal_la-journal40_repair.lo: journal40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjournal40_minimal_la_CFLAGS) $(CFLAGS) -MT libjournal40_minimal_la-journal40_repair.lo -MD -MP -MF $(DEPDIR)/libjournal40_minimal_la-journal40_repair.Tpo -c -o libjournal40_minimal_la-journal40_repair.lo `test -f 'journal40_repair.c' || echo '$(srcdir)/'`journal40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libjournal40_minimal_la-journal40_repair.Tpo $(DEPDIR)/libjournal40_minimal_la-journal40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal40_repair.c' object='libjournal40_minimal_la-journal40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjournal40_minimal_la_CFLAGS) $(CFLAGS) -c -o libjournal40_minimal_la-journal40_repair.lo `test -f 'journal40_repair.c' || echo '$(srcdir)/'`journal40_repair.c libjournal40_static_la-journal40.lo: journal40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjournal40_static_la_CFLAGS) $(CFLAGS) -MT libjournal40_static_la-journal40.lo -MD -MP -MF $(DEPDIR)/libjournal40_static_la-journal40.Tpo -c -o libjournal40_static_la-journal40.lo `test -f 'journal40.c' || echo '$(srcdir)/'`journal40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libjournal40_static_la-journal40.Tpo $(DEPDIR)/libjournal40_static_la-journal40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal40.c' object='libjournal40_static_la-journal40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjournal40_static_la_CFLAGS) $(CFLAGS) -c -o libjournal40_static_la-journal40.lo `test -f 'journal40.c' || echo '$(srcdir)/'`journal40.c libjournal40_static_la-journal40_repair.lo: journal40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjournal40_static_la_CFLAGS) $(CFLAGS) -MT libjournal40_static_la-journal40_repair.lo -MD -MP -MF $(DEPDIR)/libjournal40_static_la-journal40_repair.Tpo -c -o libjournal40_static_la-journal40_repair.lo `test -f 'journal40_repair.c' || echo '$(srcdir)/'`journal40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libjournal40_static_la-journal40_repair.Tpo $(DEPDIR)/libjournal40_static_la-journal40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal40_repair.c' object='libjournal40_static_la-journal40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjournal40_static_la_CFLAGS) $(CFLAGS) -c -o libjournal40_static_la-journal40_repair.lo `test -f 'journal40_repair.c' || echo '$(srcdir)/'`journal40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/journal/journal40/journal40_repair.h0000644000175000017500000000173611131470543023053 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. journal40_repair.h -- reiser4 default journal plugin repair. */ #ifndef JOURNAL40_REPAIR_H #define JOURNAL40_REPAIR_H #ifndef ENABLE_MINIMAL #include #include extern errno_t journal40_check_struct(reiser4_journal_ent_t *entity, layout_func_t layout_func, void *data); extern void journal40_print(reiser4_journal_ent_t *entity, aal_stream_t *stream, uint16_t options); extern void journal40_invalidate(reiser4_journal_ent_t *entity); extern errno_t journal40_pack(reiser4_journal_ent_t *entity, aal_stream_t *stream); extern reiser4_journal_ent_t *journal40_unpack(aal_device_t *device, uint32_t blksize, reiser4_format_ent_t *format, reiser4_oid_ent_t *oid, uint64_t start, uint64_t blocks, aal_stream_t *stream); #endif #endif reiser4progs-1.0.7.orig/plugin/journal/journal40/journal40.h0000644000175000017500000001245611131470543021512 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. journal40.h -- reiser4 default journal plugin. */ #ifndef JOURNAL40_H #define JOURNAL40_H #ifndef ENABLE_MINIMAL #include #include #define JOURNAL40_BLOCKNR(blksize) \ (REISER4_MASTER_BLOCKNR(blksize) + 3) extern reiser4_journal_plug_t journal40_plug; typedef struct journal40_area { blk_t start; count_t len; } journal40_area_t; typedef struct journal40 { reiser4_journal_plug_t *plug; /* Filesystem blocksize */ uint32_t blksize; /* Journal state (dirty, etc). */ uint32_t state; /* Joirnal device */ aal_device_t *device; /* Format instance */ reiser4_format_ent_t *format; /* Oid instance */ reiser4_oid_ent_t *oid; /* Area on device, journal may occupie it. */ journal40_area_t area; /* Journal header and footer */ aal_block_t *header; aal_block_t *footer; } journal40_t; typedef struct journal40_header { d64_t jh_last_commited; } journal40_header_t; #define PLUG_ENT(p) ((journal40_t *)p) #define get_jh_last_commited(jh) aal_get_le64(jh, jh_last_commited) #define set_jh_last_commited(jh, val) aal_set_le64(jh, jh_last_commited, val) typedef struct journal40_footer { d64_t jf_last_flushed; d64_t jf_free_blocks; d64_t jf_used_oids; d64_t jf_next_oid; } journal40_footer_t; #define get_jf_last_flushed(jf) aal_get_le64(jf, jf_last_flushed) #define set_jf_last_flushed(jf, val) aal_set_le64(jf, jf_last_flushed, val) #define get_jf_free_blocks(jf) aal_get_le64(jf, jf_free_blocks) #define set_jf_free_blocks(jf, val) aal_set_le64(jf, jf_free_blocks, val) #define get_jf_used_oids(jf) aal_get_le64(jf, jf_used_oids) #define set_jf_used_oids(jf, val) aal_set_le64(jf, jf_used_oids, val) #define get_jf_next_oid(jf) aal_get_le64(jf, jf_next_oid) #define set_jf_next_oid(jf, val) aal_set_le64(jf, jf_next_oid, val) #define TXH_MAGIC "TxMagic4" #define LGR_MAGIC "LogMagc4" #define TXH_MAGIC_SIZE 8 #define LGR_MAGIC_SIZE 8 typedef struct journal40_tx_header { char magic[TXH_MAGIC_SIZE]; d64_t th_id; d32_t th_total; d32_t th_padding; d64_t th_prev_tx; d64_t th_next_block; d64_t th_free_blocks; d64_t th_used_oids; d64_t th_next_oid; } journal40_tx_header_t; #define get_th_id(th) aal_get_le64(th, th_id) #define set_th_id(th, val) aal_set_le64(th, th_id, val) #define get_th_total(th) aal_get_le32(th, th_total) #define set_th_total(th, val) aal_set_le32(th, th_total, val) #define get_th_prev_tx(th) aal_get_le64(th, th_prev_tx) #define set_th_prev_tx(th, val) aal_set_le64(th, th_prev_tx, val) #define get_th_next_block(th) aal_get_le64(th, th_next_block) #define set_th_next_block(th, val) aal_set_le64(th, th_next_block, val) #define get_th_free_blocks(th) aal_get_le64(th, th_free_blocks) #define set_th_free_blocks(th, val) aal_set_le64(th, th_free_blocks, val) #define get_th_used_oids(th) aal_get_le64(th, th_used_oids) #define set_th_used_oids(th, val) aal_set_le64(th, th_used_oids, val) #define get_th_next_oid(th) aal_get_le64(th, th_next_oid) #define set_th_next_oid(th, val) aal_set_le64(th, th_next_oid, val) typedef struct journal40_lr_header { char magic[LGR_MAGIC_SIZE]; d64_t lh_id; d32_t lh_total; d32_t lh_serial; d64_t lh_next_block; } journal40_lr_header_t; #define get_lh_id(lh) aal_get_le64(lh, lh_id) #define set_lh_id(lh, val) aal_set_le64(lh, lh_id, val) #define get_lh_total(lh) aal_get_le32(lh, lh_total) #define set_lh_total(lh, val) aal_set_le32(lh, lh_total, val) #define get_lh_serial(lh) aal_get_le32(lh, lh_serial) #define set_lh_serial(lh, val) aal_set_le32(lh, lh_serial, val) #define get_lh_next_block(lh) aal_get_le64(lh, lh_next_block) #define set_lh_next_block(lh, val) aal_set_le64(lh, lh_next_block, val) typedef struct journal40_lr_entry { d64_t le_original; d64_t le_wandered; } journal40_lr_entry_t; typedef enum journal40_block { JB_INV = 0x0, JB_TXH = 0x1, JB_LGR = 0x2, JB_WAN = 0x3, JB_ORG = 0x4, JB_LST } journal40_block_t; #define get_le_original(le) aal_get_le64(le, le_original) #define set_le_original(le, val) aal_set_le64(le, le_original, val) #define get_le_wandered(le) aal_get_le64(le, le_wandered) #define set_le_wandered(le, val) aal_set_le64(le, le_wandered, val) typedef errno_t (*journal40_txh_func_t) (reiser4_journal_ent_t *, blk_t, void *); typedef errno_t (*journal40_sec_func_t) (reiser4_journal_ent_t *, aal_block_t *,\ blk_t, journal40_block_t, void *); typedef errno_t (*journal40_han_func_t) (reiser4_journal_ent_t *, aal_block_t *, blk_t, void *); #define JFOOTER(block) ((journal40_footer_t *)block->data) #define JHEADER(block) ((journal40_header_t *)block->data) #endif extern errno_t journal40_traverse(reiser4_journal_ent_t *entity, journal40_txh_func_t txh_func, journal40_han_func_t han_func, journal40_sec_func_t sec_func, void *data); extern errno_t journal40_traverse_trans(reiser4_journal_ent_t *entity, aal_block_t *tx_block, journal40_han_func_t han_func, journal40_sec_func_t sec_func, void *data); extern aal_device_t *journal40_device(reiser4_journal_ent_t *entity); #define journal40_mkdirty(journal) \ ((journal40_t *)journal)->state |= (1 << ENTITY_DIRTY); #define journal40_mkclean(journal) \ ((journal40_t *)journal)->state &= ~(1 << ENTITY_DIRTY); #endif reiser4progs-1.0.7.orig/plugin/journal/journal40/Makefile.am0000644000175000017500000000117711131470543021555 0ustar fzfzincludedir = -I$(top_srcdir)/include journal40_sources = journal40.c journal40_repair.c \ journal40.h journal40_repair.h STATIC_LIBS = libjournal40-static.la libjournal40_static_la_SOURCES = $(journal40_sources) libjournal40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libjournal40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libjournal40_minimal_la_SOURCES = $(journal40_sources) libjournal40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/journal/journal40/journal40_repair.c0000644000175000017500000005765111131470543023055 0ustar fzfz/* Copyright 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. journal40.c -- reiser4 default journal plugin. Journal check description: a. no one block can point before the master sb and after the end of a partition. b. TxH, LGR, wandered blocks - cannot be met more then once in the whole journal. - cannot point to format area. - cannot be met as original blocks from the current transaction and from the previous ones, but could be of next ones. c. Original blocks - cannot point to any journal block from any next and the current transactions. Problems. 1. out of bounds. 2. format area. 3. wrong magic. 4. met before as of the same type 5. met before as not of the same type. Traverse is going through the TxH in back order first, then through transactions themselves in right order. So TxH blocks are handled before all others. I. TxH. 1.2.3.4. kill the journal 5. (Good magic, so we met it as wand/orig in previous transactions) - cut the journal to that previous transaction; - cannot happen as TxH blocks are handled first. II. LGR. 1.2.3. Cut the journal to the current transaction. 4.5. (LGR magic is ok) If the current transaction is of a good LGR circle - cut the journal to that previous transaction. If not OK - to this transaction. III. wandered 1.2. Cut the journal to the current transaction. 3. -. 4. (+ orig) Cut the journal to the previous transaction. 5. (TxH, LG) Cut the journal to this transaction. IV. original 1.2. Cut the journal to the current transaction. 3. -. 4.5. In older transactions - no problem. Otherwise, cut the journal to the current transaction (do not forget to check the current). FIXME-VITALY: For now II.4.5. and III.5. - cut to the previous transaction. */ #ifndef ENABLE_MINIMAL #include "journal40.h" #include "journal40_repair.h" #include #include /* Traverse flags. */ #define TF_SAME_TXH_BREAK 1 /* break when current trans was reached. */ #define TF_DATA_AREA_ONLY 2 /* check if block lies in data area only or in data and format area. */ typedef struct journal40_check { reiser4_bitmap_t *journal_layout; /* All blocks are pointed by journal. */ reiser4_bitmap_t *current_layout; /* Blocks of current trans only. */ blk_t cur_txh; /* TxH block of the current trans at traverse time. And the oldest problem trans at traverse return time if return 1. */ blk_t wanted_blk; /* Nested traverses look for this block and put the TxH block of the found trans here. */ journal40_block_t found_type; /* Put the type of the found block here. */ int flags; layout_func_t layout_func; void *layout_data; } journal40_check_t; static char *blk_types[] = { "Unknown", "Transaction Header", "Log Record", "Wandered", "Original" }; static char *__blk_type_name(journal40_block_t blk_type) { if (blk_type == JB_INV || blk_type >= JB_LST) return blk_types[0]; return blk_types[blk_type]; } /* Callback for format.layout. Returns 1 for all fotmat blocks. */ static errno_t cb_check_format_block(blk_t start, count_t width, void *data) { blk_t blk = *(blk_t *)data; return (blk >= start && blk < start + width); } /* Check if blk belongs to format area. */ static errno_t journal40_blk_format_check(journal40_t *journal, blk_t blk, journal40_check_t *data) { aal_assert("vpf-490", journal != NULL); aal_assert("vpf-492", data != NULL); /* blk is out of format bound */ if (blk >= journal->area.len || blk < journal->area.start) return -ESTRUCT; /* If blk can be from format area, nothing to check anymore. */ if (!(data->flags & (1 << TF_DATA_AREA_ONLY))) return 0; /* blk belongs to format area */ return data->layout_func(data->layout_data, cb_check_format_block, &blk) ? -ESTRUCT : 0; } /* TxH callback for nested traverses. Should find the transaction which TxH block number equals to wanted blk. Set found_type then to TxH. Returns 1 when traverse should be stopped, zeroes found_type if no satisfied transaction was found. */ static errno_t cb_find_txh_blk(reiser4_journal_ent_t *entity, blk_t blk, void *data) { journal40_check_t *check_data = (journal40_check_t *)data; /* If wanted blk == TxH block number. */ if (check_data->wanted_blk == blk) { /* wanted_blk equals blk already. */ check_data->found_type = JB_TXH; return -ESTRUCT; } /* If the current transaction was reached and traverse should stop here. */ if ((check_data->cur_txh == blk) && (check_data->flags & (1 << TF_SAME_TXH_BREAK))) { check_data->found_type = JB_INV; return -ESTRUCT; } return 0; } /* Secondary (not TxH) blocks callback for nested traverses. Should find the transaction which contains block number equal to wanted blk. Set wanted_blk to TxH block number and found_type to the type of found blk. */ static errno_t cb_find_sec_blk(reiser4_journal_ent_t *entity, aal_block_t *txh_block, blk_t blk, journal40_block_t blk_type, void *data) { journal40_check_t *check_data = (journal40_check_t *)data; if (check_data->wanted_blk == blk) { check_data->wanted_blk = txh_block->nr; check_data->found_type = blk_type; return -ESTRUCT; } return 0; } /* TxH callback for traverse. Returns 1 if blk is a block out of format bound or of format area or is met more then once. data->cur_txh = 0 all the way here to explain the traverse caller that the whole journal is invalid. */ static errno_t cb_journal_txh_check(reiser4_journal_ent_t *entity, blk_t blk, void *data) { journal40_t *journal = (journal40_t *)entity; journal40_check_t *check_data = (journal40_check_t *)data; aal_assert("vpf-461", journal != NULL); aal_assert("vpf-491", check_data != NULL); check_data->flags = 1 << TF_DATA_AREA_ONLY; if (journal40_blk_format_check(journal, blk, check_data)) { fsck_mess("Transaction header lies in the illegal block " "(%llu) for the used format (%s).", blk, journal->format->plug->p.label); return -ESTRUCT; } if (reiser4_bitmap_test(check_data->journal_layout, blk)) { /* TxH block is met not for the 1 time. Kill the journal. */ fsck_mess("Transaction header in the block (%llu) was " "met already.", blk); return -ESTRUCT; } reiser4_bitmap_mark(check_data->journal_layout, blk); return 0; } /* Secondary blocks callback for traverse. Does all the work described above for all block types except TxH. */ static errno_t cb_journal_sec_check(reiser4_journal_ent_t *entity, aal_block_t *txh_block, blk_t blk, journal40_block_t blk_type, void *data) { journal40_t *journal = (journal40_t *)entity; journal40_check_t *check_data = (journal40_check_t *)data; errno_t res; aal_assert("vpf-461", journal != NULL); aal_assert("vpf-491", check_data != NULL); aal_assert("vpf-506", txh_block != NULL); aal_assert("vpf-507", txh_block->device != NULL); /* If we start working with a new trans, zero the current trans bitmap. */ if (check_data->cur_txh != txh_block->nr) { aal_memset(check_data->current_layout->map, 0, check_data->current_layout->size); check_data->cur_txh = txh_block->nr; } /* Check that blk is not out of bound and (not for original block) that it is not from format area. */ check_data->flags = blk_type == JB_ORG ? 0 : 1 << TF_DATA_AREA_ONLY; if (journal40_blk_format_check(journal, blk, check_data)) { fsck_mess("%s lies in the illegal block (%llu) for the " "used format (%s).", __blk_type_name(blk_type), blk, journal->format->plug->p.label); return -ESTRUCT; } /* Read the block and check the magic for LGR. */ if (blk_type == JB_LGR) { aal_block_t *log_block; journal40_lr_header_t *lr_header; if (!(log_block = aal_block_load(txh_block->device, journal->blksize, blk))) { aal_error("Can't read block %llu while " "traversing the journal. %s.", blk, txh_block->device->error); return -EIO; } lr_header = (journal40_lr_header_t *)log_block->data; if (aal_memcmp(lr_header->magic, LGR_MAGIC, LGR_MAGIC_SIZE)) { fsck_mess("Transaction Header (%llu), Log record " "(%llu): Log Record Magic was not found.", check_data->cur_txh, blk); aal_block_free(log_block); return -ESTRUCT; } aal_block_free(log_block); } if (reiser4_bitmap_test(check_data->journal_layout, blk)) { /* blk was met in the current trans more then once. */ if (reiser4_bitmap_test(check_data->current_layout, blk)) { fsck_mess("Transaction Header (%llu): %s block " "(%llu) was met in the transaction " "more then once.", check_data->cur_txh, __blk_type_name(blk_type), blk); return -ESTRUCT; } /* Block was met before. */ if (blk_type == JB_LGR) { /* Check LRG circle for this trans. If it is valid - cut the journal to the trans where blk was met for the first time. If it is not valid - cut the journal to this trans. Run traverse for this trans only with no callbacks. If returns not 0 - cur_txh = blk_txh. 0 - no problem - run traverse for searching the first transaction where blk is met. If returns not 0 - cur_txh = blk_txh */ /* Traverse of 1 trans with no callbacks shows if LRG circle is valid. */ res = journal40_traverse_trans(entity, txh_block, NULL, NULL, NULL); if (res == 0) { /* Find the place we met blk previous time. */ check_data->wanted_blk = blk; res = journal40_traverse(entity, NULL, NULL, cb_find_sec_blk, check_data); if (res != -ESTRUCT) { aal_error("Traverse failed to find " "a transaction the block " "(%llu) was met for the " "first time.", blk); return res; } /* Found trans is the oldest problem, return it to caller. */ fsck_mess("Transaction Header (%llu): " "transaction looks correct but " "uses the block (%llu) already " "used in the transaction (%llu).", check_data->cur_txh, blk, check_data->wanted_blk); check_data->cur_txh = check_data->wanted_blk; } else if (res != -ESTRUCT) { aal_error("Transaction Header (%llu): " "corrupted log record circle " "found.", txh_block->nr); return res; } return -ESTRUCT; } else if (blk_type == JB_WAN) { /* Run the whole traverse to find the transaction we met blk for the first time and get its type. */ check_data->wanted_blk = blk; check_data->flags = 0; res = journal40_traverse(entity, cb_find_txh_blk, NULL, cb_find_sec_blk, check_data); if (res != -ESTRUCT) { aal_error("Traverse failed to find a " "transaction the block (%llu) was " "met for the first time.", blk); return res; } fsck_mess("Transaction Header (%llu): transaction " "looks correct but uses the block (%llu) " "already used in the transaction (%llu) " "as a %s block.", check_data->cur_txh, blk, check_data->wanted_blk, __blk_type_name(check_data->found_type)); /* The oldest problem transaction for TxH or LGR is the current one, and for WAN, ORG is that found trans. */ if (check_data->found_type == JB_WAN || check_data->found_type == JB_ORG) check_data->cur_txh = check_data->wanted_blk; return -ESTRUCT; } else if (blk_type == JB_ORG) { /* It could be met before as TxH block of a next trans or as any other block of previous trans. It is legal to meet it in a previous trans. Run traverse with one txh callback to check for next trans' TxH blocks. */ check_data->wanted_blk = blk; /* Stop looking through TxH's when reach the current trans. */ check_data->flags = (1 << TF_SAME_TXH_BREAK); res = journal40_traverse(entity, cb_find_txh_blk, NULL, NULL, check_data); if (res != -ESTRUCT) { aal_error("Traverse failed to find a " "transaction the block (%llu) was " "met for the first time.", blk); return res; } /* If TxH was found, the current transaction is the oldest problem trans. */ if (check_data->found_type != JB_INV) { fsck_mess("Transaction Header (%llu): " "original location (%llu) was " "met before as a Transaction " "Header of one of the next " "transactions.", check_data->cur_txh, blk); return -ESTRUCT; } } } reiser4_bitmap_mark(check_data->journal_layout, blk); reiser4_bitmap_mark(check_data->current_layout, blk); return 0; } errno_t journal40_check_struct(reiser4_journal_ent_t *entity, layout_func_t func, void *data) { journal40_t *journal = (journal40_t *)entity; journal40_header_t *header; journal40_tx_header_t *txh; journal40_check_t jdata; errno_t ret; aal_assert("vpf-447", journal != NULL); aal_assert("vpf-733", func != NULL); aal_memset(&jdata, 0, sizeof(jdata)); jdata.layout_func = func; jdata.layout_data = data; if (!(jdata.journal_layout = reiser4_bitmap_create(journal->area.len))) { aal_error("Failed to allocate a control bitmap for " "journal layout."); return -ENOMEM; } if (!(jdata.current_layout = reiser4_bitmap_create(journal->area.len))) { aal_error("Failed to allocate a control bitmap of the " "current transaction blocks."); ret = -ENOMEM; goto error_free_layout; } ret = journal40_traverse(entity, cb_journal_txh_check, NULL, cb_journal_sec_check, &jdata); if (ret && ret != -ESTRUCT) goto error_free_current; if (ret) { /* Journal should be updated */ if (!jdata.cur_txh) { fsck_mess("Journal has broken list of transaction " "headers. Reinitialize the journal."); jdata.cur_txh = get_jf_last_flushed((journal40_footer_t *) journal->footer->data); } else { aal_block_t *tx_block = NULL; aal_device_t *device = NULL; /* jdata.cur_txh is the oldest problem transaction. Set the last_committed to the previous one. */ device = journal40_device((reiser4_journal_ent_t *)journal); if (device == NULL) { aal_error("Invalid device has been detected."); ret = -EINVAL; goto error_free_current; } tx_block = aal_block_load(device, journal->blksize, jdata.cur_txh); if (!tx_block) { aal_error("Can't read the block %llu while " "checking the journal. %s.", jdata.cur_txh, device->error); ret = -EIO; goto error_free_current; } txh = (journal40_tx_header_t *)tx_block->data; fsck_mess("Corrupted transaction (%llu) was found. " "The last valid transaction is (%llu).", jdata.cur_txh, get_th_prev_tx(txh)); jdata.cur_txh = get_th_prev_tx(txh); aal_block_free(tx_block); } header = (journal40_header_t *)journal->header->data; set_jh_last_commited(header, jdata.cur_txh); journal40_mkdirty(journal); } reiser4_bitmap_close(jdata.current_layout); reiser4_bitmap_close(jdata.journal_layout); return 0; error_free_current: reiser4_bitmap_close(jdata.current_layout); error_free_layout: reiser4_bitmap_close(jdata.journal_layout); return ret; } void journal40_invalidate(reiser4_journal_ent_t *entity) { journal40_t *journal = (journal40_t *)entity; journal40_footer_t *footer; journal40_header_t *header; aal_assert("vpf-1554", entity != NULL); footer = JFOOTER(journal->footer); header = JHEADER(journal->header); set_jh_last_commited(header, 0); set_jf_last_flushed(footer, 0); set_jf_free_blocks(footer, 0); set_jf_used_oids(footer, 0); set_jf_next_oid(footer, 0); journal40_mkdirty(journal); } /* Safely extracts string field from passed location. */ static void extract_string(char *stor, char *orig, uint32_t max) { uint32_t i; for (i = 0; i < max; i++) { if (orig[i] == '\0') break; } aal_memcpy(stor, orig, i); } /* Helper function for printing transaction header. */ static errno_t cb_print_txh(reiser4_journal_ent_t *entity, blk_t blk, void *data) { aal_block_t *block; journal40_t *journal; aal_stream_t *stream; char magic[TXH_MAGIC_SIZE]; journal40_tx_header_t *txh; if (blk == INVAL_BLK) return -EINVAL; stream = (aal_stream_t *)data; journal = (journal40_t *)entity; if (!(block = aal_block_load(journal->device, journal->blksize, blk))) { return -EIO; } txh = (journal40_tx_header_t *)block->data; aal_stream_format(stream, "Transaction header:\n"); aal_memset(magic, 0, sizeof(magic)); extract_string(magic, txh->magic, sizeof(magic)); aal_stream_format(stream, "magic:\t%s\n", magic); aal_stream_format(stream, "id: \t0x%llx\n", get_th_id(txh)); aal_stream_format(stream, "total:\t%lu\n", get_th_total(txh)); aal_stream_format(stream, "prev:\t%llu\n", get_th_prev_tx(txh)); aal_stream_format(stream, "next block:\t%llu\n", get_th_next_block(txh)); aal_stream_format(stream, "free blocks:\t%llu\n", get_th_free_blocks(txh)); aal_stream_format(stream, "used oids:\t%llu\n", get_th_used_oids(txh)); aal_stream_format(stream, "next oid:\t0x%llx\n\n", get_th_next_oid(txh)); aal_block_free(block); return 0; } /* Printing pair (wandered and original) blocks */ static errno_t cb_print_par(reiser4_journal_ent_t *entity, aal_block_t *block, blk_t orig, void *data) { aal_stream_format((aal_stream_t *)data, "%llu -> %llu\n", orig, block->nr); return 0; } /* hellper function for printing log record. */ static errno_t cb_print_lgr(reiser4_journal_ent_t *entity, aal_block_t *block, blk_t blk, journal40_block_t bel, void *data) { aal_stream_t *stream; char magic[LGR_MAGIC_SIZE]; journal40_lr_header_t *lgr; if (bel != JB_LGR) return 0; stream = (aal_stream_t *)data; lgr = (journal40_lr_header_t *)block->data; aal_stream_format(stream, "Log record:\n"); aal_memset(magic, 0, sizeof(magic)); extract_string(magic, lgr->magic, sizeof(magic)); aal_stream_format(stream, "magic:\t%s\n", magic); aal_stream_format(stream, "id: \t0x%llx\n", get_lh_id(lgr)); aal_stream_format(stream, "total:\t%lu\n", get_lh_total(lgr)); aal_stream_format(stream, "serial:\t0x%lx\n", get_lh_serial(lgr)); aal_stream_format(stream, "next block:\t%llu\n\n", get_lh_next_block(lgr)); return 0; } /* Prints journal structures into passed @stream */ void journal40_print(reiser4_journal_ent_t *entity, aal_stream_t *stream, uint16_t options) { journal40_t *journal; journal40_footer_t *footer; journal40_header_t *header; aal_assert("umka-1465", entity != NULL); aal_assert("umka-1466", stream != NULL); journal = (journal40_t *)entity; /* Printing journal header and journal footer first */ header = JHEADER(journal->header); footer = JFOOTER(journal->footer); aal_stream_format(stream, "Journal:\n"); aal_stream_format(stream, "plugin: \t%s\n", entity->plug->p.label); aal_stream_format(stream, "description:\t%s\n\n", entity->plug->p.desc); aal_stream_format(stream, "Journal header block (%llu):\n", journal->header->nr); aal_stream_format(stream, "last commited:\t%llu\n\n", get_jh_last_commited(header)); aal_stream_format(stream, "Journal footer block (%llu):\n", journal->footer->nr); aal_stream_format(stream, "last flushed:\t%llu\n", get_jf_last_flushed(footer)); aal_stream_format(stream, "free blocks:\t%llu\n", get_jf_free_blocks(footer)); aal_stream_format(stream, "next oid:\t0x%llx\n", get_jf_next_oid(footer)); aal_stream_format(stream, "used oids:\t%llu\n", get_jf_used_oids(footer)); /* Print all transactions. */ journal40_traverse(entity, cb_print_txh, cb_print_par, cb_print_lgr, (void *)stream); } static errno_t journal40_block_pack(journal40_t *journal, aal_stream_t *stream, reiser4_bitmap_t *layout, uint64_t blk) { journal40_tx_header_t *txh; journal40_lr_header_t *lrh; journal40_lr_entry_t *lre; aal_block_t *block; uint32_t i, num; errno_t res; if (blk < journal->area.start || blk >= journal->area.len) return 0; if (reiser4_bitmap_test(layout, blk)) return 0; reiser4_bitmap_mark(layout, blk); if (!(block = aal_block_load(journal->device, journal->blksize, blk))) { aal_error("Can't read block %llu while traversing the journal." "%s.", blk, journal->device->error); return -EIO; } aal_stream_write(stream, BLOCK_PACK_SIGN, 4); aal_stream_write(stream, &block->nr, sizeof(block->nr)); aal_stream_write(stream, block->data, block->size); txh = (journal40_tx_header_t *)block->data; if (!aal_memcmp(txh->magic, TXH_MAGIC, TXH_MAGIC_SIZE)) { if ((res = journal40_block_pack(journal, stream, layout, get_th_next_block(txh)))) { goto done_block; } if ((res = journal40_block_pack(journal, stream, layout, get_th_prev_tx(txh)))) { goto done_block; } } lrh = (journal40_lr_header_t *)block->data; if (!aal_memcmp(lrh->magic, LGR_MAGIC, LGR_MAGIC_SIZE)) { lre = (journal40_lr_entry_t *)(lrh + 1); num = (journal->blksize - sizeof(*lrh)) / sizeof(*lre); for (i = 0; i < num; i++, lre++) { blk = get_le_wandered(lre); if (!blk) break; if ((res = journal40_block_pack(journal, stream, layout, blk))) { goto done_block; } } } aal_block_free(block); return 0; done_block: aal_block_free(block); return res; } errno_t journal40_pack(reiser4_journal_ent_t *entity, aal_stream_t *stream) { journal40_header_t *jheader; journal40_t *journal; reiser4_bitmap_t *layout; uint64_t blk; errno_t res; aal_assert("vpf-1745", entity != NULL); aal_assert("vpf-1746", stream != NULL); journal = (journal40_t *)entity; if (!(layout = reiser4_bitmap_create(journal->area.len))) { aal_error("Failed to allocate a control bitmap for " "journal layout."); return -ENOMEM; } jheader = (journal40_header_t *)journal->header->data; blk = get_jh_last_commited(jheader); aal_stream_write(stream, journal->header->data, journal->header->size); aal_stream_write(stream, journal->footer->data, journal->footer->size); /* Getting all blocks that are pointed by journal, do not control the journal structure. */ res = journal40_block_pack(journal, stream, layout, blk); reiser4_bitmap_close(layout); return res; } reiser4_journal_ent_t *journal40_unpack(aal_device_t *device, uint32_t blksize, reiser4_format_ent_t *format, reiser4_oid_ent_t *oid, uint64_t start, uint64_t blocks, aal_stream_t *stream) { journal40_t *journal; uint64_t read; blk_t jblk; aal_assert("vpf-1755", device != NULL); aal_assert("vpf-1756", format != NULL); aal_assert("vpf-1757", oid != NULL); /* Initializign journal entity. */ if (!(journal = aal_calloc(sizeof(*journal), 0))) return NULL; journal->state = 0; journal->format = format; journal->oid = oid; journal->device = device; journal->plug = &journal40_plug; journal->blksize = blksize; journal->area.len = blocks; journal->area.start = start; jblk = JOURNAL40_BLOCKNR(blksize); if (!(journal->header = aal_block_alloc(device, blksize, jblk))) { aal_error("Can't alloc journal header on block %llu.", jblk); goto error_free_journal; } if (!(journal->footer = aal_block_alloc(device, blksize, jblk + 1))) { aal_error("Can't alloc journal footer on block %llu.", jblk + 1); goto error_free_header; } read = aal_stream_read(stream, journal->header->data, blksize); journal->header->dirty = 1; if (read != blksize) { aal_error("Can't unpack journal header. Stream is over?"); goto error_free_footer; } read = aal_stream_read(stream, journal->footer->data, blksize); journal->footer->dirty = 1; if (read != blksize) { aal_error("Can't unpack journal footer. Stream is over?"); goto error_free_footer; } /* Other blocks are unpacked in reiser4_fs_unpack as usual blocks. */ journal40_mkdirty(journal); return (reiser4_journal_ent_t *)journal; error_free_footer: aal_block_free(journal->footer); error_free_header: aal_block_free(journal->header); error_free_journal: aal_free(journal); return NULL; } #endif reiser4progs-1.0.7.orig/plugin/policy/0000777000175000017500000000000011134133447015530 5ustar fzfzreiser4progs-1.0.7.orig/plugin/policy/tails/0000777000175000017500000000000011134133447016644 5ustar fzfzreiser4progs-1.0.7.orig/plugin/policy/tails/Makefile.in0000644000175000017500000004116611134132277020715 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/policy/tails DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libtails_minimal_la_LIBADD = am__libtails_minimal_la_SOURCES_DIST = tails.c am__objects_1 = libtails_minimal_la-tails.lo @ENABLE_MINIMAL_TRUE@am_libtails_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libtails_minimal_la_OBJECTS = $(am_libtails_minimal_la_OBJECTS) libtails_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libtails_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libtails_minimal_la_rpath = libtails_static_la_LIBADD = am__objects_2 = libtails_static_la-tails.lo am_libtails_static_la_OBJECTS = $(am__objects_2) libtails_static_la_OBJECTS = $(am_libtails_static_la_OBJECTS) libtails_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libtails_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libtails_minimal_la_SOURCES) $(libtails_static_la_SOURCES) DIST_SOURCES = $(am__libtails_minimal_la_SOURCES_DIST) \ $(libtails_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ tails_sources = tails.c STATIC_LIBS = libtails-static.la libtails_static_la_SOURCES = $(tails_sources) libtails_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libtails-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libtails_minimal_la_SOURCES = $(tails_sources) @ENABLE_MINIMAL_TRUE@libtails_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/policy/tails/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/policy/tails/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libtails-minimal.la: $(libtails_minimal_la_OBJECTS) $(libtails_minimal_la_DEPENDENCIES) $(libtails_minimal_la_LINK) $(am_libtails_minimal_la_rpath) $(libtails_minimal_la_OBJECTS) $(libtails_minimal_la_LIBADD) $(LIBS) libtails-static.la: $(libtails_static_la_OBJECTS) $(libtails_static_la_DEPENDENCIES) $(libtails_static_la_LINK) $(libtails_static_la_OBJECTS) $(libtails_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtails_minimal_la-tails.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtails_static_la-tails.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libtails_minimal_la-tails.lo: tails.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtails_minimal_la_CFLAGS) $(CFLAGS) -MT libtails_minimal_la-tails.lo -MD -MP -MF $(DEPDIR)/libtails_minimal_la-tails.Tpo -c -o libtails_minimal_la-tails.lo `test -f 'tails.c' || echo '$(srcdir)/'`tails.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libtails_minimal_la-tails.Tpo $(DEPDIR)/libtails_minimal_la-tails.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tails.c' object='libtails_minimal_la-tails.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtails_minimal_la_CFLAGS) $(CFLAGS) -c -o libtails_minimal_la-tails.lo `test -f 'tails.c' || echo '$(srcdir)/'`tails.c libtails_static_la-tails.lo: tails.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtails_static_la_CFLAGS) $(CFLAGS) -MT libtails_static_la-tails.lo -MD -MP -MF $(DEPDIR)/libtails_static_la-tails.Tpo -c -o libtails_static_la-tails.lo `test -f 'tails.c' || echo '$(srcdir)/'`tails.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libtails_static_la-tails.Tpo $(DEPDIR)/libtails_static_la-tails.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tails.c' object='libtails_static_la-tails.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtails_static_la_CFLAGS) $(CFLAGS) -c -o libtails_static_la-tails.lo `test -f 'tails.c' || echo '$(srcdir)/'`tails.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/policy/tails/Makefile.am0000644000175000017500000000107311131470543020673 0ustar fzfzincludedir = -I$(top_srcdir)/include tails_sources = tails.c STATIC_LIBS = libtails-static.la libtails_static_la_SOURCES = $(tails_sources) libtails_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libtails-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libtails_minimal_la_SOURCES = $(tails_sources) libtails_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/policy/tails/tails.c0000644000175000017500000000070111131470543020114 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tails.c -- tails only tail policy plugin. */ #ifndef ENABLE_MINIMAL #include static int tails_tails(uint64_t value) { return 1; } reiser4_policy_plug_t tails_plug = { .p = { .id = {TAIL_ALWAYS_ID, 0, POLICY_PLUG_TYPE}, .label = "tails", .desc = "'Tails only' tail policy plugin.", }, .tails = tails_tails }; #endif reiser4progs-1.0.7.orig/plugin/policy/Makefile.in0000644000175000017500000003435211134132277017600 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/policy DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = tails extents smart all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/policy/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/policy/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/policy/extents/0000777000175000017500000000000011134133447017222 5ustar fzfzreiser4progs-1.0.7.orig/plugin/policy/extents/Makefile.in0000644000175000017500000004150311134132277021266 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/policy/extents DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libextents_minimal_la_LIBADD = am__libextents_minimal_la_SOURCES_DIST = extents.c am__objects_1 = libextents_minimal_la-extents.lo @ENABLE_MINIMAL_TRUE@am_libextents_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libextents_minimal_la_OBJECTS = $(am_libextents_minimal_la_OBJECTS) libextents_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libextents_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libextents_minimal_la_rpath = libextents_static_la_LIBADD = am__objects_2 = libextents_static_la-extents.lo am_libextents_static_la_OBJECTS = $(am__objects_2) libextents_static_la_OBJECTS = $(am_libextents_static_la_OBJECTS) libextents_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libextents_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libextents_minimal_la_SOURCES) \ $(libextents_static_la_SOURCES) DIST_SOURCES = $(am__libextents_minimal_la_SOURCES_DIST) \ $(libextents_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ extents_sources = extents.c STATIC_LIBS = libextents-static.la libextents_static_la_SOURCES = $(extents_sources) libextents_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libextents-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libextents_minimal_la_SOURCES = $(extents_sources) @ENABLE_MINIMAL_TRUE@libextents_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/policy/extents/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/policy/extents/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libextents-minimal.la: $(libextents_minimal_la_OBJECTS) $(libextents_minimal_la_DEPENDENCIES) $(libextents_minimal_la_LINK) $(am_libextents_minimal_la_rpath) $(libextents_minimal_la_OBJECTS) $(libextents_minimal_la_LIBADD) $(LIBS) libextents-static.la: $(libextents_static_la_OBJECTS) $(libextents_static_la_DEPENDENCIES) $(libextents_static_la_LINK) $(libextents_static_la_OBJECTS) $(libextents_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextents_minimal_la-extents.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextents_static_la-extents.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libextents_minimal_la-extents.lo: extents.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextents_minimal_la_CFLAGS) $(CFLAGS) -MT libextents_minimal_la-extents.lo -MD -MP -MF $(DEPDIR)/libextents_minimal_la-extents.Tpo -c -o libextents_minimal_la-extents.lo `test -f 'extents.c' || echo '$(srcdir)/'`extents.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libextents_minimal_la-extents.Tpo $(DEPDIR)/libextents_minimal_la-extents.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extents.c' object='libextents_minimal_la-extents.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextents_minimal_la_CFLAGS) $(CFLAGS) -c -o libextents_minimal_la-extents.lo `test -f 'extents.c' || echo '$(srcdir)/'`extents.c libextents_static_la-extents.lo: extents.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextents_static_la_CFLAGS) $(CFLAGS) -MT libextents_static_la-extents.lo -MD -MP -MF $(DEPDIR)/libextents_static_la-extents.Tpo -c -o libextents_static_la-extents.lo `test -f 'extents.c' || echo '$(srcdir)/'`extents.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libextents_static_la-extents.Tpo $(DEPDIR)/libextents_static_la-extents.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extents.c' object='libextents_static_la-extents.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextents_static_la_CFLAGS) $(CFLAGS) -c -o libextents_static_la-extents.lo `test -f 'extents.c' || echo '$(srcdir)/'`extents.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/policy/extents/Makefile.am0000644000175000017500000000111211131470543021243 0ustar fzfzincludedir = -I$(top_srcdir)/include extents_sources = extents.c STATIC_LIBS = libextents-static.la libextents_static_la_SOURCES = $(extents_sources) libextents_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libextents-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libextents_minimal_la_SOURCES = $(extents_sources) libextents_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/policy/extents/extents.c0000644000175000017500000000071611131470543021056 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. extents.c -- extents only tail policy plugin. */ #ifndef ENABLE_MINIMAL #include static int extents_tails(uint64_t value) { return 0; } reiser4_policy_plug_t extents_plug = { .p = { .id = {TAIL_NEVER_ID, 0, POLICY_PLUG_TYPE}, .label = "extents", .desc = "'Extents only' tail policy plugin.", }, .tails = extents_tails }; #endif reiser4progs-1.0.7.orig/plugin/policy/smart/0000777000175000017500000000000011134133447016656 5ustar fzfzreiser4progs-1.0.7.orig/plugin/policy/smart/Makefile.in0000644000175000017500000004116611134132277020727 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/policy/smart DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsmart_minimal_la_LIBADD = am__libsmart_minimal_la_SOURCES_DIST = smart.c am__objects_1 = libsmart_minimal_la-smart.lo @ENABLE_MINIMAL_TRUE@am_libsmart_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libsmart_minimal_la_OBJECTS = $(am_libsmart_minimal_la_OBJECTS) libsmart_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsmart_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libsmart_minimal_la_rpath = libsmart_static_la_LIBADD = am__objects_2 = libsmart_static_la-smart.lo am_libsmart_static_la_OBJECTS = $(am__objects_2) libsmart_static_la_OBJECTS = $(am_libsmart_static_la_OBJECTS) libsmart_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libsmart_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsmart_minimal_la_SOURCES) $(libsmart_static_la_SOURCES) DIST_SOURCES = $(am__libsmart_minimal_la_SOURCES_DIST) \ $(libsmart_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ smart_sources = smart.c STATIC_LIBS = libsmart-static.la libsmart_static_la_SOURCES = $(smart_sources) libsmart_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libsmart-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libsmart_minimal_la_SOURCES = $(smart_sources) @ENABLE_MINIMAL_TRUE@libsmart_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/policy/smart/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/policy/smart/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsmart-minimal.la: $(libsmart_minimal_la_OBJECTS) $(libsmart_minimal_la_DEPENDENCIES) $(libsmart_minimal_la_LINK) $(am_libsmart_minimal_la_rpath) $(libsmart_minimal_la_OBJECTS) $(libsmart_minimal_la_LIBADD) $(LIBS) libsmart-static.la: $(libsmart_static_la_OBJECTS) $(libsmart_static_la_DEPENDENCIES) $(libsmart_static_la_LINK) $(libsmart_static_la_OBJECTS) $(libsmart_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsmart_minimal_la-smart.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsmart_static_la-smart.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsmart_minimal_la-smart.lo: smart.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsmart_minimal_la_CFLAGS) $(CFLAGS) -MT libsmart_minimal_la-smart.lo -MD -MP -MF $(DEPDIR)/libsmart_minimal_la-smart.Tpo -c -o libsmart_minimal_la-smart.lo `test -f 'smart.c' || echo '$(srcdir)/'`smart.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsmart_minimal_la-smart.Tpo $(DEPDIR)/libsmart_minimal_la-smart.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smart.c' object='libsmart_minimal_la-smart.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsmart_minimal_la_CFLAGS) $(CFLAGS) -c -o libsmart_minimal_la-smart.lo `test -f 'smart.c' || echo '$(srcdir)/'`smart.c libsmart_static_la-smart.lo: smart.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsmart_static_la_CFLAGS) $(CFLAGS) -MT libsmart_static_la-smart.lo -MD -MP -MF $(DEPDIR)/libsmart_static_la-smart.Tpo -c -o libsmart_static_la-smart.lo `test -f 'smart.c' || echo '$(srcdir)/'`smart.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libsmart_static_la-smart.Tpo $(DEPDIR)/libsmart_static_la-smart.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smart.c' object='libsmart_static_la-smart.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsmart_static_la_CFLAGS) $(CFLAGS) -c -o libsmart_static_la-smart.lo `test -f 'smart.c' || echo '$(srcdir)/'`smart.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/policy/smart/smart.c0000644000175000017500000000072611131470543020147 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. smart.c -- smart tail policy plugin. */ #ifndef ENABLE_MINIMAL #include static int smart_tails(uint64_t value) { if (value > 16384) return 0; return 1; } reiser4_policy_plug_t smart_plug = { .p = { .id = {TAIL_SMART_ID, 0, POLICY_PLUG_TYPE}, .label = "smart", .desc = "Smart tail policy plugin.", }, .tails = smart_tails }; #endif reiser4progs-1.0.7.orig/plugin/policy/smart/Makefile.am0000644000175000017500000000107311131470543020705 0ustar fzfzincludedir = -I$(top_srcdir)/include smart_sources = smart.c STATIC_LIBS = libsmart-static.la libsmart_static_la_SOURCES = $(smart_sources) libsmart_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libsmart-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libsmart_minimal_la_SOURCES = $(smart_sources) libsmart_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/policy/Makefile.am0000644000175000017500000000003611131470543017555 0ustar fzfzSUBDIRS = tails extents smart reiser4progs-1.0.7.orig/plugin/Makefile.am0000644000175000017500000001471611131470543016270 0ustar fzfzSUBDIRS = format journal alloc oid node key hash \ sdext item object policy fibre compress if ENABLE_MINIMAL MINIMAL_LIBS = libreiser4-plugin-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = libreiser4-plugin.la $(MINIMAL_LIBS) libreiser4_plugin_la_LIBADD = format/format40/libformat40-static.la \ journal/journal40/libjournal40-static.la \ alloc/alloc40/liballoc40-static.la \ oid/oid40/liboid40-static.la \ node/node40/libnode40-static.la \ key/key_common/libkey_common-static.la \ key/key_short/libkey_short-static.la \ key/key_large/libkey_large-static.la \ item/nodeptr40/libnodeptr40-static.la \ item/cde40/libcde40-static.la \ item/body40/libbody40-static.la \ item/tail40/libtail40-static.la \ item/plain40/libplain40-static.la \ item/ctail40/libctail40-static.la \ item/extent40/libextent40-static.la \ item/stat40/libstat40-static.la \ item/bbox40/libbbox40-static.la \ object/obj40/libobj40-static.la \ object/dir40/libdir40-static.la \ object/reg40/libreg40-static.la \ object/sym40/libsym40-static.la \ object/spl40/libspl40-static.la \ object/ccreg40/libccreg40-static.la \ sdext/sdext_unix/libsdext_unix-static.la \ sdext/sdext_lw/libsdext_lw-static.la \ sdext/sdext_lt/libsdext_lt-static.la \ sdext/sdext_symlink/libsdext_symlink-static.la \ sdext/sdext_plug/libsdext_plug-static.la \ sdext/sdext_crypto/libsdext_crypto-static.la \ sdext/sdext_flags/libsdext_flags-static.la \ policy/tails/libtails-static.la \ policy/extents/libextents-static.la \ policy/smart/libsmart-static.la \ hash/r5_hash/libr5_hash-static.la \ hash/fnv1_hash/libfnv1_hash-static.la \ hash/rupasov_hash/librupasov_hash-static.la \ hash/tea_hash/libtea_hash-static.la \ hash/deg_hash/libdeg_hash-static.la \ fibre/lexic_fibre/liblexic_fibre-static.la \ fibre/dot_o_fibre/libdot_o_fibre-static.la \ fibre/ext_1_fibre/libext_1_fibre-static.la \ fibre/ext_3_fibre/libext_3_fibre-static.la \ compress/libcompress-static.la if ENABLE_MINIMAL libreiser4_plugin_minimal_la_LIBADD = format/format40/libformat40-minimal.la \ oid/oid40/liboid40-minimal.la \ node/node40/libnode40-minimal.la \ key/key_common/libkey_common-minimal.la \ key/key_short/libkey_short-minimal.la \ key/key_large/libkey_large-minimal.la \ item/body40/libbody40-minimal.la \ item/nodeptr40/libnodeptr40-minimal.la \ item/cde40/libcde40-minimal.la \ item/tail40/libtail40-minimal.la \ item/plain40/libplain40-minimal.la \ item/ctail40/libctail40-minimal.la \ item/extent40/libextent40-minimal.la \ item/stat40/libstat40-minimal.la \ item/bbox40/libbbox40-minimal.la \ object/obj40/libobj40-minimal.la \ object/dir40/libdir40-minimal.la \ object/reg40/libreg40-minimal.la \ object/sym40/libsym40-minimal.la \ object/spl40/libspl40-minimal.la \ object/ccreg40/libccreg40-minimal.la \ sdext/sdext_unix/libsdext_unix-minimal.la \ sdext/sdext_lw/libsdext_lw-minimal.la \ sdext/sdext_lt/libsdext_lt-minimal.la \ sdext/sdext_symlink/libsdext_symlink-minimal.la \ sdext/sdext_plug/libsdext_plug-minimal.la \ sdext/sdext_flags/libsdext_flags-minimal.la \ policy/tails/libtails-minimal.la \ policy/extents/libextents-minimal.la \ policy/smart/libsmart-minimal.la \ hash/r5_hash/libr5_hash-minimal.la \ hash/fnv1_hash/libfnv1_hash-minimal.la \ hash/rupasov_hash/librupasov_hash-minimal.la \ hash/tea_hash/libtea_hash-minimal.la \ hash/deg_hash/libdeg_hash-minimal.la \ fibre/lexic_fibre/liblexic_fibre-minimal.la \ fibre/dot_o_fibre/libdot_o_fibre-minimal.la \ fibre/ext_1_fibre/libext_1_fibre-minimal.la \ fibre/ext_3_fibre/libext_3_fibre-minimal.la \ compress/libcompress-minimal.la libreiser4_plugin_minimal_la_SOURCES = endif libreiser4_plugin_la_SOURCES = reiser4progs-1.0.7.orig/plugin/compress/0000777000175000017500000000000011134133447016064 5ustar fzfzreiser4progs-1.0.7.orig/plugin/compress/Makefile.in0000644000175000017500000005351211134132272020126 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/compress DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libcompress_minimal_la_LIBADD = am__libcompress_minimal_la_SOURCES_DIST = compress.c compress_mode.c \ cluster.c am__objects_1 = libcompress_minimal_la-compress.lo \ libcompress_minimal_la-compress_mode.lo \ libcompress_minimal_la-cluster.lo @ENABLE_MINIMAL_TRUE@am_libcompress_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libcompress_minimal_la_OBJECTS = $(am_libcompress_minimal_la_OBJECTS) libcompress_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libcompress_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libcompress_minimal_la_rpath = libcompress_static_la_LIBADD = am__objects_2 = libcompress_static_la-compress.lo \ libcompress_static_la-compress_mode.lo \ libcompress_static_la-cluster.lo am_libcompress_static_la_OBJECTS = $(am__objects_2) libcompress_static_la_OBJECTS = $(am_libcompress_static_la_OBJECTS) libcompress_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libcompress_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libcompress_minimal_la_SOURCES) \ $(libcompress_static_la_SOURCES) DIST_SOURCES = $(am__libcompress_minimal_la_SOURCES_DIST) \ $(libcompress_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ compress_sources = compress.c compress_mode.c cluster.c STATIC_LIBS = libcompress-static.la libcompress_static_la_SOURCES = $(compress_sources) libcompress_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libcompress-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libcompress_minimal_la_SOURCES = $(compress_sources) @ENABLE_MINIMAL_TRUE@libcompress_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/compress/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/compress/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcompress-minimal.la: $(libcompress_minimal_la_OBJECTS) $(libcompress_minimal_la_DEPENDENCIES) $(libcompress_minimal_la_LINK) $(am_libcompress_minimal_la_rpath) $(libcompress_minimal_la_OBJECTS) $(libcompress_minimal_la_LIBADD) $(LIBS) libcompress-static.la: $(libcompress_static_la_OBJECTS) $(libcompress_static_la_DEPENDENCIES) $(libcompress_static_la_LINK) $(libcompress_static_la_OBJECTS) $(libcompress_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompress_minimal_la-cluster.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompress_minimal_la-compress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompress_minimal_la-compress_mode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompress_static_la-cluster.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompress_static_la-compress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcompress_static_la-compress_mode.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libcompress_minimal_la-compress.lo: compress.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_minimal_la_CFLAGS) $(CFLAGS) -MT libcompress_minimal_la-compress.lo -MD -MP -MF $(DEPDIR)/libcompress_minimal_la-compress.Tpo -c -o libcompress_minimal_la-compress.lo `test -f 'compress.c' || echo '$(srcdir)/'`compress.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcompress_minimal_la-compress.Tpo $(DEPDIR)/libcompress_minimal_la-compress.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compress.c' object='libcompress_minimal_la-compress.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_minimal_la_CFLAGS) $(CFLAGS) -c -o libcompress_minimal_la-compress.lo `test -f 'compress.c' || echo '$(srcdir)/'`compress.c libcompress_minimal_la-compress_mode.lo: compress_mode.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_minimal_la_CFLAGS) $(CFLAGS) -MT libcompress_minimal_la-compress_mode.lo -MD -MP -MF $(DEPDIR)/libcompress_minimal_la-compress_mode.Tpo -c -o libcompress_minimal_la-compress_mode.lo `test -f 'compress_mode.c' || echo '$(srcdir)/'`compress_mode.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcompress_minimal_la-compress_mode.Tpo $(DEPDIR)/libcompress_minimal_la-compress_mode.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compress_mode.c' object='libcompress_minimal_la-compress_mode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_minimal_la_CFLAGS) $(CFLAGS) -c -o libcompress_minimal_la-compress_mode.lo `test -f 'compress_mode.c' || echo '$(srcdir)/'`compress_mode.c libcompress_minimal_la-cluster.lo: cluster.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_minimal_la_CFLAGS) $(CFLAGS) -MT libcompress_minimal_la-cluster.lo -MD -MP -MF $(DEPDIR)/libcompress_minimal_la-cluster.Tpo -c -o libcompress_minimal_la-cluster.lo `test -f 'cluster.c' || echo '$(srcdir)/'`cluster.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcompress_minimal_la-cluster.Tpo $(DEPDIR)/libcompress_minimal_la-cluster.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cluster.c' object='libcompress_minimal_la-cluster.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_minimal_la_CFLAGS) $(CFLAGS) -c -o libcompress_minimal_la-cluster.lo `test -f 'cluster.c' || echo '$(srcdir)/'`cluster.c libcompress_static_la-compress.lo: compress.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_static_la_CFLAGS) $(CFLAGS) -MT libcompress_static_la-compress.lo -MD -MP -MF $(DEPDIR)/libcompress_static_la-compress.Tpo -c -o libcompress_static_la-compress.lo `test -f 'compress.c' || echo '$(srcdir)/'`compress.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcompress_static_la-compress.Tpo $(DEPDIR)/libcompress_static_la-compress.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compress.c' object='libcompress_static_la-compress.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_static_la_CFLAGS) $(CFLAGS) -c -o libcompress_static_la-compress.lo `test -f 'compress.c' || echo '$(srcdir)/'`compress.c libcompress_static_la-compress_mode.lo: compress_mode.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_static_la_CFLAGS) $(CFLAGS) -MT libcompress_static_la-compress_mode.lo -MD -MP -MF $(DEPDIR)/libcompress_static_la-compress_mode.Tpo -c -o libcompress_static_la-compress_mode.lo `test -f 'compress_mode.c' || echo '$(srcdir)/'`compress_mode.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcompress_static_la-compress_mode.Tpo $(DEPDIR)/libcompress_static_la-compress_mode.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compress_mode.c' object='libcompress_static_la-compress_mode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_static_la_CFLAGS) $(CFLAGS) -c -o libcompress_static_la-compress_mode.lo `test -f 'compress_mode.c' || echo '$(srcdir)/'`compress_mode.c libcompress_static_la-cluster.lo: cluster.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_static_la_CFLAGS) $(CFLAGS) -MT libcompress_static_la-cluster.lo -MD -MP -MF $(DEPDIR)/libcompress_static_la-cluster.Tpo -c -o libcompress_static_la-cluster.lo `test -f 'cluster.c' || echo '$(srcdir)/'`cluster.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcompress_static_la-cluster.Tpo $(DEPDIR)/libcompress_static_la-cluster.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cluster.c' object='libcompress_static_la-cluster.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcompress_static_la_CFLAGS) $(CFLAGS) -c -o libcompress_static_la-cluster.lo `test -f 'cluster.c' || echo '$(srcdir)/'`cluster.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/compress/compress.c0000644000175000017500000000125711131470543020062 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. compress.c -- reiser4 compression transform plugins. Plugins are needed for the fsck and for all utilities when specifying them by the name with --override option. */ #ifdef HAVE_CONFIG_H # include #endif #ifndef ENABLE_MINIMAL #include "reiser4/plugin.h" reiser4_plug_t lzo1_plug = { .id = {COMPRESS_LZO1_ID, 0, COMPRESS_PLUG_TYPE}, .label = "lzo1", .desc = "lzo1 compression transform plugin.", }; reiser4_plug_t gzip1_plug = { .id = {COMPRESS_GZIP1_ID, 0, COMPRESS_PLUG_TYPE}, .label = "gzip1", .desc = "gzip1 compression transform plugin.", }; #endif reiser4progs-1.0.7.orig/plugin/compress/cluster.c0000644000175000017500000000250311131470543017703 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. cluster.c -- reiser4 cluster plugins. The real compression/encryption is not implemented yet, but plugins are needed for the fsck and for all utilities when specifying them by the name with --override option. */ #ifdef HAVE_CONFIG_H # include #endif #ifndef ENABLE_MINIMAL #include "reiser4/plugin.h" reiser4_cluster_plug_t clust64_plug = { .p = { .id = {CLUSTER_64K_ID, 0, CLUSTER_PLUG_TYPE}, .label = "64K", .desc = "64K size cluster plugin.", }, .clsize = 64 * 1024, }; reiser4_cluster_plug_t clust32_plug = { .p = { .id = {CLUSTER_32K_ID, 0, CLUSTER_PLUG_TYPE}, .label = "32K", .desc = "32K size cluster plugin.", }, .clsize = 32 * 1024, }; reiser4_cluster_plug_t clust16_plug = { .p = { .id = {CLUSTER_16K_ID, 0, CLUSTER_PLUG_TYPE}, .label = "16K", .desc = "16K size cluster plugin.", }, .clsize = 16 * 1024, }; reiser4_cluster_plug_t clust8_plug = { .p = { .id = {CLUSTER_8K_ID, 0, CLUSTER_PLUG_TYPE}, .label = "8K", .desc = "8K size cluster plugin.", }, .clsize = 8 * 1024, }; reiser4_cluster_plug_t clust4_plug = { .p = { .id = {CLUSTER_4K_ID, 0, CLUSTER_PLUG_TYPE}, .label = "4K", .desc = "4K size cluster plugin.", }, .clsize = 4 * 1024, }; #endif reiser4progs-1.0.7.orig/plugin/compress/compress_mode.c0000644000175000017500000000232311131470543021061 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. compress_mode.c -- reiser4 compression mode plugins. The real compression is not implemented yet, but plugins are needed for the fsck and for all utilities when specifying them by the name with --override option. */ #ifdef HAVE_CONFIG_H # include #endif #ifndef ENABLE_MINIMAL #include "reiser4/plugin.h" reiser4_plug_t nocompress_plug = { .id = {CMODE_NONE_ID, 0, CMODE_PLUG_TYPE}, .label = "none", .desc = "'Don't compress' compression mode plugin.", }; reiser4_plug_t lattd_plug = { .id = {CMODE_LATTD_ID, 0, CMODE_PLUG_TYPE}, .label = "latt", .desc = "'Check on dynamic lattice' compression mode plugin.", }; reiser4_plug_t ultim_plug = { .id = {CMODE_ULTIM_ID, 0, CMODE_PLUG_TYPE}, .label = "ultim", .desc = "'Check ultimately' compression mode plugin.", }; reiser4_plug_t force_plug = { .id = {CMODE_FORCE_ID, 0, CMODE_PLUG_TYPE}, .label = "force", .desc = "'Compress evrything' compression mode plugin.", }; reiser4_plug_t convx_plug = { .id = {CMODE_CONVX_ID, 0, CMODE_PLUG_TYPE}, .label = "conv", .desc = "'Convert to extent' compression mode plugin.", }; #endif reiser4progs-1.0.7.orig/plugin/compress/Makefile.am0000644000175000017500000000102311131470543020106 0ustar fzfzincludedir = -I$(top_srcdir)/include compress_sources = compress.c compress_mode.c cluster.c STATIC_LIBS = libcompress-static.la libcompress_static_la_SOURCES = $(compress_sources) libcompress_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libcompress-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libcompress_minimal_la_SOURCES = $(compress_sources) libcompress_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/oid/0000777000175000017500000000000011134133445015002 5ustar fzfzreiser4progs-1.0.7.orig/plugin/oid/Makefile.in0000644000175000017500000003432311134132277017052 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/oid DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = oid40 all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/oid/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/oid/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/oid/Makefile.am0000644000175000017500000000002011131470543017022 0ustar fzfzSUBDIRS = oid40 reiser4progs-1.0.7.orig/plugin/oid/oid40/0000777000175000017500000000000011134133445015721 5ustar fzfzreiser4progs-1.0.7.orig/plugin/oid/oid40/oid40.c0000644000175000017500000001211111131470543016774 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. oid40_repair.c -- reiser4 oid allocator plugin. */ #ifndef ENABLE_MINIMAL #include "oid40.h" #include "oid40_repair.h" static uint32_t oid40_get_state(reiser4_oid_ent_t *entity) { aal_assert("umka-2088", entity != NULL); return PLUG_ENT(entity)->state; } /* Returnes next oid to be used */ static uint64_t oid40_get_next_oid(reiser4_oid_ent_t *entity) { aal_assert("umka-1109", entity != NULL); return PLUG_ENT(entity)->next; } /* Returns number of used oids */ static uint64_t oid40_get_used_oid(reiser4_oid_ent_t *entity) { aal_assert("umka-530", entity != NULL); return PLUG_ENT(entity)->used; } static void oid40_set_state(reiser4_oid_ent_t *entity, uint32_t state) { aal_assert("umka-2089", entity != NULL); PLUG_ENT(entity)->state = state; } /* Updates next oid to be used */ static void oid40_set_next_oid(reiser4_oid_ent_t *entity, uint64_t next) { aal_assert("vpf-1588", entity != NULL); PLUG_ENT(entity)->next = next; PLUG_ENT(entity)->state = (1 << ENTITY_DIRTY); } /* Updates number of used oids */ static void oid40_set_used_oid(reiser4_oid_ent_t *entity, uint64_t used) { aal_assert("umka-530", entity != NULL); PLUG_ENT(entity)->used = used; PLUG_ENT(entity)->state = (1 << ENTITY_DIRTY); } /* Open oid allocator on passed format instance. */ static reiser4_oid_ent_t *oid40_open(reiser4_format_ent_t *format) { oid40_t *oid; aal_assert("umka-2664", format != NULL); if (!(oid = aal_calloc(sizeof(*oid), 0))) return NULL; oid->state = 0; oid->format = format; oid->plug = &oid40_plug; /* Getting oid pluign work area from format plugin. */ entcall(format, oid_area, &oid->start, &oid->len); oid->next = oid40_get_next(oid->start); oid->used = oid40_get_used(oid->start); return (reiser4_oid_ent_t *)oid; } static void oid40_close(reiser4_oid_ent_t *entity) { aal_assert("umka-510", entity != NULL); aal_free(entity); } /* Initializes oid allocator instance and returns it to caller. */ static reiser4_oid_ent_t *oid40_create(reiser4_format_ent_t *format) { oid40_t *oid; if (!(oid = aal_calloc(sizeof(*oid), 0))) return NULL; oid->state = (1 << ENTITY_DIRTY); /* Setting up next by OID40_RESERVED. It is needed because all oid less then OID40_RESERVED will be used for reiser4 insetrnal purposes. */ oid->used = 0; oid->format = format; oid->plug = &oid40_plug; oid->next = OID40_RESERVED; /* Getting oid pluign work area from format plugin. */ entcall(format, oid_area, &oid->start, &oid->len); oid40_set_next(oid->start, oid->next); oid40_set_used(oid->start, oid->used); return (reiser4_oid_ent_t *)oid; } /* Updating next and used values in oid allocator dedicated area */ static errno_t oid40_sync(reiser4_oid_ent_t *entity) { reiser4_format_ent_t *format; uint32_t state; aal_assert("umka-1016", entity != NULL); oid40_set_next(PLUG_ENT(entity)->start, PLUG_ENT(entity)->next); oid40_set_used(PLUG_ENT(entity)->start, PLUG_ENT(entity)->used); /* Mark the format dirty. */ format = PLUG_ENT(entity)->format; state = entcall(format, get_state); entcall(format, set_state, state | (1 << ENTITY_DIRTY)); return 0; } /* Returns free oid and marks it as used */ static oid_t oid40_allocate(reiser4_oid_ent_t *entity) { aal_assert("umka-513", entity != NULL); PLUG_ENT(entity)->next++; PLUG_ENT(entity)->used++; PLUG_ENT(entity)->state |= (1 << ENTITY_DIRTY); return PLUG_ENT(entity)->next - 1; } /* Releases passed oid */ static void oid40_release(reiser4_oid_ent_t *entity, oid_t oid) { aal_assert("umka-528", entity != NULL); PLUG_ENT(entity)->used--; PLUG_ENT(entity)->state |= (1 << ENTITY_DIRTY); } /* Returns number of free oids */ static oid_t oid40_free(reiser4_oid_ent_t *entity) { aal_assert("umka-961", entity != NULL); return MAX_UINT64 - PLUG_ENT(entity)->next; } /* Checks oid allocator for validness */ static errno_t oid40_valid(reiser4_oid_ent_t *entity) { aal_assert("umka-966", entity != NULL); /* Next oid should not be less than the root locality */ if (PLUG_ENT(entity)->next < OID40_ROOT_LOCALITY) return -EINVAL; return 0; } /* Returns root locality */ static oid_t oid40_root_locality() { return OID40_ROOT_LOCALITY; } /* Returns root oid */ static oid_t oid40_root_objectid() { return OID40_ROOT_OBJECTID; } reiser4_oid_plug_t oid40_plug = { .p = { .id = {OID_REISER40_ID, 0, OID_PLUG_TYPE}, .label = "oid40", .desc = "Inode number allocator plugin.", }, .open = oid40_open, .close = oid40_close, .create = oid40_create, .valid = oid40_valid, .allocate = oid40_allocate, .release = oid40_release, .sync = oid40_sync, .print = oid40_print, .free = oid40_free, .layout = NULL, .set_state = oid40_set_state, .set_next = oid40_set_next_oid, .set_used = oid40_set_used_oid, .get_state = oid40_get_state, .get_next = oid40_get_next_oid, .get_used = oid40_get_used_oid, .root_locality = oid40_root_locality, .root_objectid = oid40_root_objectid, .lost_objectid = oid40_lost_objectid, .slink_locality = oid40_slink_locality }; #endif reiser4progs-1.0.7.orig/plugin/oid/oid40/Makefile.in0000644000175000017500000004616411134132277017777 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/oid/oid40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) liboid40_minimal_la_LIBADD = am__liboid40_minimal_la_SOURCES_DIST = oid40.c oid40_repair.c oid40.h \ oid40_repair.h am__objects_1 = liboid40_minimal_la-oid40.lo \ liboid40_minimal_la-oid40_repair.lo @ENABLE_MINIMAL_TRUE@am_liboid40_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) liboid40_minimal_la_OBJECTS = $(am_liboid40_minimal_la_OBJECTS) liboid40_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(liboid40_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_liboid40_minimal_la_rpath = liboid40_static_la_LIBADD = am__objects_2 = liboid40_static_la-oid40.lo \ liboid40_static_la-oid40_repair.lo am_liboid40_static_la_OBJECTS = $(am__objects_2) liboid40_static_la_OBJECTS = $(am_liboid40_static_la_OBJECTS) liboid40_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(liboid40_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(liboid40_minimal_la_SOURCES) $(liboid40_static_la_SOURCES) DIST_SOURCES = $(am__liboid40_minimal_la_SOURCES_DIST) \ $(liboid40_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ oid40_sources = oid40.c oid40_repair.c oid40.h oid40_repair.h STATIC_LIBS = liboid40-static.la liboid40_static_la_SOURCES = $(oid40_sources) liboid40_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = liboid40-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@liboid40_minimal_la_SOURCES = $(oid40_sources) @ENABLE_MINIMAL_TRUE@liboid40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/oid/oid40/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/oid/oid40/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done liboid40-minimal.la: $(liboid40_minimal_la_OBJECTS) $(liboid40_minimal_la_DEPENDENCIES) $(liboid40_minimal_la_LINK) $(am_liboid40_minimal_la_rpath) $(liboid40_minimal_la_OBJECTS) $(liboid40_minimal_la_LIBADD) $(LIBS) liboid40-static.la: $(liboid40_static_la_OBJECTS) $(liboid40_static_la_DEPENDENCIES) $(liboid40_static_la_LINK) $(liboid40_static_la_OBJECTS) $(liboid40_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboid40_minimal_la-oid40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboid40_minimal_la-oid40_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboid40_static_la-oid40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboid40_static_la-oid40_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< liboid40_minimal_la-oid40.lo: oid40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liboid40_minimal_la_CFLAGS) $(CFLAGS) -MT liboid40_minimal_la-oid40.lo -MD -MP -MF $(DEPDIR)/liboid40_minimal_la-oid40.Tpo -c -o liboid40_minimal_la-oid40.lo `test -f 'oid40.c' || echo '$(srcdir)/'`oid40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liboid40_minimal_la-oid40.Tpo $(DEPDIR)/liboid40_minimal_la-oid40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid40.c' object='liboid40_minimal_la-oid40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liboid40_minimal_la_CFLAGS) $(CFLAGS) -c -o liboid40_minimal_la-oid40.lo `test -f 'oid40.c' || echo '$(srcdir)/'`oid40.c liboid40_minimal_la-oid40_repair.lo: oid40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liboid40_minimal_la_CFLAGS) $(CFLAGS) -MT liboid40_minimal_la-oid40_repair.lo -MD -MP -MF $(DEPDIR)/liboid40_minimal_la-oid40_repair.Tpo -c -o liboid40_minimal_la-oid40_repair.lo `test -f 'oid40_repair.c' || echo '$(srcdir)/'`oid40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liboid40_minimal_la-oid40_repair.Tpo $(DEPDIR)/liboid40_minimal_la-oid40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid40_repair.c' object='liboid40_minimal_la-oid40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liboid40_minimal_la_CFLAGS) $(CFLAGS) -c -o liboid40_minimal_la-oid40_repair.lo `test -f 'oid40_repair.c' || echo '$(srcdir)/'`oid40_repair.c liboid40_static_la-oid40.lo: oid40.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liboid40_static_la_CFLAGS) $(CFLAGS) -MT liboid40_static_la-oid40.lo -MD -MP -MF $(DEPDIR)/liboid40_static_la-oid40.Tpo -c -o liboid40_static_la-oid40.lo `test -f 'oid40.c' || echo '$(srcdir)/'`oid40.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liboid40_static_la-oid40.Tpo $(DEPDIR)/liboid40_static_la-oid40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid40.c' object='liboid40_static_la-oid40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liboid40_static_la_CFLAGS) $(CFLAGS) -c -o liboid40_static_la-oid40.lo `test -f 'oid40.c' || echo '$(srcdir)/'`oid40.c liboid40_static_la-oid40_repair.lo: oid40_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liboid40_static_la_CFLAGS) $(CFLAGS) -MT liboid40_static_la-oid40_repair.lo -MD -MP -MF $(DEPDIR)/liboid40_static_la-oid40_repair.Tpo -c -o liboid40_static_la-oid40_repair.lo `test -f 'oid40_repair.c' || echo '$(srcdir)/'`oid40_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/liboid40_static_la-oid40_repair.Tpo $(DEPDIR)/liboid40_static_la-oid40_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid40_repair.c' object='liboid40_static_la-oid40_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liboid40_static_la_CFLAGS) $(CFLAGS) -c -o liboid40_static_la-oid40_repair.lo `test -f 'oid40_repair.c' || echo '$(srcdir)/'`oid40_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/oid/oid40/oid40.h0000644000175000017500000000176211131470543017013 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. oid40.h -- reiser4 default oid allocator structures. */ #ifndef OID40_H #define OID40_H #include #define OID40_ROOT_LOCALITY 0x29 #define OID40_ROOT_OBJECTID (OID40_ROOT_LOCALITY + 1) #define OID40_SAFE_LOCALITY (OID40_ROOT_OBJECTID + 1) #define OID40_RESERVED (1 << 16) #define OID40_LOST_OBJECTID (OID40_RESERVED - 1) typedef struct oid40 { reiser4_oid_plug_t *plug; reiser4_format_ent_t *format; void *start; uint32_t len; uint64_t next; uint64_t used; uint32_t state; } oid40_t; extern reiser4_oid_plug_t oid40_plug; #define PLUG_ENT(p) ((oid40_t *)p) #define oid40_get_next(area) LE64_TO_CPU(*((d64_t *)area)) #define oid40_set_next(area, val) (*((d64_t *)area) = CPU_TO_LE64(val)) #define oid40_get_used(area) LE64_TO_CPU(*(((d64_t *)area) + 1)) #define oid40_set_used(area, val) (*(((d64_t *)area) + 1) = CPU_TO_LE64(val)) #endif reiser4progs-1.0.7.orig/plugin/oid/oid40/oid40_repair.c0000644000175000017500000000151411131470543020343 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. oid40_repair.c -- reiser4 oid allocator plugin. */ #ifndef ENABLE_MINIMAL #include "oid40.h" /* Prints oid allocator data into passed @stream */ void oid40_print(reiser4_oid_ent_t *entity, aal_stream_t *stream, uint16_t options) { aal_assert("umka-1303", entity != NULL); aal_assert("umka-1304", stream != NULL); aal_stream_format(stream, "Oid allocator:\n"); aal_stream_format(stream, "plugin:\t\t%s\n", entity->plug->p.label); aal_stream_format(stream, "next oid:\t0x%llx\n", PLUG_ENT(entity)->next); aal_stream_format(stream, "used oids:\t%llu\n", PLUG_ENT(entity)->used); } oid_t oid40_lost_objectid() { return OID40_LOST_OBJECTID; } oid_t oid40_slink_locality() { return OID40_SAFE_LOCALITY; } #endif reiser4progs-1.0.7.orig/plugin/oid/oid40/Makefile.am0000644000175000017500000000106711131470543017755 0ustar fzfzincludedir = -I$(top_srcdir)/include oid40_sources = oid40.c oid40_repair.c oid40.h oid40_repair.h STATIC_LIBS = liboid40-static.la liboid40_static_la_SOURCES = $(oid40_sources) liboid40_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = liboid40-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL liboid40_minimal_la_SOURCES = $(oid40_sources) liboid40_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/oid/oid40/oid40_repair.h0000644000175000017500000000070511131470543020351 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. oid40_repair.h -- reiser4 oid allocator plugin repair functions. */ #ifndef OID40_REPAIR_H #define OID40_REPAIR_H #ifndef ENABLE_MINIMAL #include extern void oid40_print(reiser4_oid_ent_t *entity, aal_stream_t *stream, uint16_t options); extern oid_t oid40_lost_objectid(); extern oid_t oid40_slink_locality(); #endif #endif reiser4progs-1.0.7.orig/plugin/key/0000777000175000017500000000000011134133445015017 5ustar fzfzreiser4progs-1.0.7.orig/plugin/key/Makefile.in0000644000175000017500000003435411134132275017071 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/key DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = key_common key_short key_large all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/key/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/key/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/key/key_short/0000777000175000017500000000000011134133445017026 5ustar fzfzreiser4progs-1.0.7.orig/plugin/key/key_short/key_short.h0000644000175000017500000001065311131470543021207 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key_short.h -- reiser4 short key structures. */ #ifndef KEY_SHORT_H #define KEY_SHORT_H #include #include #include #include "plugin/key/key_common/key_common.h" typedef enum { /* Major "locale", aka dirid. Sits in 1st element */ KEY_SHORT_LOCALITY_INDEX = 0, /* Minor "locale", aka item type. Sits in 1st element */ KEY_SHORT_TYPE_INDEX = 0, /* Object band. Sits in 2nd element */ KEY_SHORT_BAND_INDEX = 1, /* Object id. Sits in 2nd element */ KEY_SHORT_OBJECTID_INDEX = 1, KEY_SHORT_FOBJECTID_INDEX = 1, /* Offset. Sits in 3rd element */ KEY_SHORT_OFFSET_INDEX = 2, /* Name hash. Sits in 3rd element */ KEY_SHORT_HASH_INDEX = 2, KEY_SHORT_LAST_INDEX } key_short_field_t; typedef union key_short { d64_t el[KEY_SHORT_LAST_INDEX]; int pad; } key_short_t; typedef enum { /* Major locality occupies higher 60 bits of the first element */ KEY_SHORT_LOCALITY_MASK = 0xfffffffffffffff0ull, /* Minor locality occupies lower 4 bits of the first element */ KEY_SHORT_TYPE_MASK = 0xfull, /* Controversial band occupies higher 4 bits of the 2nd element */ KEY_SHORT_BAND_MASK = 0xf000000000000000ull, /* Objectid occupies lower 60 bits of the 2nd element */ KEY_SHORT_OBJECTID_MASK = 0x0fffffffffffffffull, KEY_SHORT_FOBJECTID_MASK = 0xffffffffffffffffull, /* Offset is just 3rd L.M.Nt itself */ KEY_SHORT_OFFSET_MASK = 0xffffffffffffffffull, /* Hash occupies 56 higher bits of 3rd element */ KEY_SHORT_HASH_MASK = 0xffffffffffffff00ull, } key_short_mask_t; #define OFFSET_CHARS (sizeof(uint64_t)) #define OBJECTID_CHARS (sizeof(uint64_t) - 1) #define HASHED_NAME_MASK 0x0100000000000000ull #define FIBRE_MASK 0xff00000000000000ull #define FIBRE_SHIFT 57 typedef enum { KEY_SHORT_LOCALITY_SHIFT = 4, KEY_SHORT_TYPE_SHIFT = 0, KEY_SHORT_BAND_SHIFT = 60, KEY_SHORT_OBJECTID_SHIFT = 0, KEY_SHORT_FOBJECTID_SHIFT = 0, KEY_SHORT_OFFSET_SHIFT = 0, KEY_SHORT_HASH_SHIFT = 8, KEY_SHORT_GEN_SHIFT = 0, } key_short_shift_t; #ifndef ENABLE_MINIMAL extern void key_short_set_offset(reiser4_key_t *key, uint64_t offset); extern uint64_t key_short_get_offset(reiser4_key_t *key); extern void key_short_set_objectid(reiser4_key_t *key, uint64_t objectid); extern uint64_t key_short_get_objectid(reiser4_key_t *key); extern key_type_t key_short_get_type(reiser4_key_t *key); extern void key_short_set_locality(reiser4_key_t *key, uint64_t locality); extern uint64_t key_short_get_locality(reiser4_key_t *key); extern void key_short_set_fobjectid(reiser4_key_t *key, uint64_t objectid); extern uint64_t key_short_get_fobjectid(reiser4_key_t *key); #endif static inline uint64_t ks_get_el(const key_short_t *key, key_short_field_t off) { return LE64_TO_CPU(get_unaligned(key->el + off)); } static inline void ks_set_el(key_short_t *key, key_short_field_t off, uint64_t value) { put_unaligned(CPU_TO_LE64(value), key->el + off); } static inline int ks_comp_el(void *k1, void *k2, int off) { uint64_t e1 = ks_get_el(k1, off); uint64_t e2 = ks_get_el(k2, off); return (e1 < e2 ? -1 : (e1 == e2 ? 0 : 1)); } /* Macro to define key_short getter and setter functions for field F with type T. It is used for minimize code. */ #define KEY_SHORT_FIELD_HANDLER(L, U, T) \ static inline T ks_get_##L (const key_short_t *key) { \ return (T) ((ks_get_el(key, KEY_SHORT_##U##_INDEX) & \ KEY_SHORT_##U##_MASK) >> KEY_SHORT_##U##_SHIFT);\ } \ \ static inline void ks_set_##L(key_short_t *key, T loc) { \ uint64_t el; \ \ el = ks_get_el(key, KEY_SHORT_##U##_INDEX); \ \ el &= ~KEY_SHORT_##U##_MASK; \ \ el |= (loc << KEY_SHORT_##U##_SHIFT); \ ks_set_el(key, KEY_SHORT_##U##_INDEX, el); \ } KEY_SHORT_FIELD_HANDLER(locality, LOCALITY, uint64_t); KEY_SHORT_FIELD_HANDLER(minor, TYPE, key_minor_t); KEY_SHORT_FIELD_HANDLER(band, BAND, uint64_t); KEY_SHORT_FIELD_HANDLER(objectid, OBJECTID, uint64_t); KEY_SHORT_FIELD_HANDLER(fobjectid, FOBJECTID, uint64_t); KEY_SHORT_FIELD_HANDLER(offset, OFFSET, uint64_t); KEY_SHORT_FIELD_HANDLER(hash, HASH, uint64_t); #endif reiser4progs-1.0.7.orig/plugin/key/key_short/Makefile.in0000644000175000017500000004734111134132275021100 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/key/key_short DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libkey_short_minimal_la_LIBADD = am__libkey_short_minimal_la_SOURCES_DIST = key_short.c key_short.h \ key_short_repair.c am__objects_1 = libkey_short_minimal_la-key_short.lo \ libkey_short_minimal_la-key_short_repair.lo @ENABLE_MINIMAL_TRUE@am_libkey_short_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libkey_short_minimal_la_OBJECTS = \ $(am_libkey_short_minimal_la_OBJECTS) libkey_short_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libkey_short_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libkey_short_minimal_la_rpath = libkey_short_static_la_LIBADD = am__objects_2 = libkey_short_static_la-key_short.lo \ libkey_short_static_la-key_short_repair.lo am_libkey_short_static_la_OBJECTS = $(am__objects_2) libkey_short_static_la_OBJECTS = $(am_libkey_short_static_la_OBJECTS) libkey_short_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libkey_short_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libkey_short_minimal_la_SOURCES) \ $(libkey_short_static_la_SOURCES) DIST_SOURCES = $(am__libkey_short_minimal_la_SOURCES_DIST) \ $(libkey_short_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ key_short_sources = key_short.c key_short.h key_short_repair.c STATIC_LIBS = libkey_short-static.la libkey_short_static_la_SOURCES = $(key_short_sources) libkey_short_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libkey_short-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libkey_short_minimal_la_SOURCES = $(key_short_sources) @ENABLE_MINIMAL_TRUE@libkey_short_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/key/key_short/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/key/key_short/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libkey_short-minimal.la: $(libkey_short_minimal_la_OBJECTS) $(libkey_short_minimal_la_DEPENDENCIES) $(libkey_short_minimal_la_LINK) $(am_libkey_short_minimal_la_rpath) $(libkey_short_minimal_la_OBJECTS) $(libkey_short_minimal_la_LIBADD) $(LIBS) libkey_short-static.la: $(libkey_short_static_la_OBJECTS) $(libkey_short_static_la_DEPENDENCIES) $(libkey_short_static_la_LINK) $(libkey_short_static_la_OBJECTS) $(libkey_short_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_short_minimal_la-key_short.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_short_minimal_la-key_short_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_short_static_la-key_short.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_short_static_la-key_short_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libkey_short_minimal_la-key_short.lo: key_short.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_short_minimal_la_CFLAGS) $(CFLAGS) -MT libkey_short_minimal_la-key_short.lo -MD -MP -MF $(DEPDIR)/libkey_short_minimal_la-key_short.Tpo -c -o libkey_short_minimal_la-key_short.lo `test -f 'key_short.c' || echo '$(srcdir)/'`key_short.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_short_minimal_la-key_short.Tpo $(DEPDIR)/libkey_short_minimal_la-key_short.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_short.c' object='libkey_short_minimal_la-key_short.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_short_minimal_la_CFLAGS) $(CFLAGS) -c -o libkey_short_minimal_la-key_short.lo `test -f 'key_short.c' || echo '$(srcdir)/'`key_short.c libkey_short_minimal_la-key_short_repair.lo: key_short_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_short_minimal_la_CFLAGS) $(CFLAGS) -MT libkey_short_minimal_la-key_short_repair.lo -MD -MP -MF $(DEPDIR)/libkey_short_minimal_la-key_short_repair.Tpo -c -o libkey_short_minimal_la-key_short_repair.lo `test -f 'key_short_repair.c' || echo '$(srcdir)/'`key_short_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_short_minimal_la-key_short_repair.Tpo $(DEPDIR)/libkey_short_minimal_la-key_short_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_short_repair.c' object='libkey_short_minimal_la-key_short_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_short_minimal_la_CFLAGS) $(CFLAGS) -c -o libkey_short_minimal_la-key_short_repair.lo `test -f 'key_short_repair.c' || echo '$(srcdir)/'`key_short_repair.c libkey_short_static_la-key_short.lo: key_short.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_short_static_la_CFLAGS) $(CFLAGS) -MT libkey_short_static_la-key_short.lo -MD -MP -MF $(DEPDIR)/libkey_short_static_la-key_short.Tpo -c -o libkey_short_static_la-key_short.lo `test -f 'key_short.c' || echo '$(srcdir)/'`key_short.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_short_static_la-key_short.Tpo $(DEPDIR)/libkey_short_static_la-key_short.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_short.c' object='libkey_short_static_la-key_short.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_short_static_la_CFLAGS) $(CFLAGS) -c -o libkey_short_static_la-key_short.lo `test -f 'key_short.c' || echo '$(srcdir)/'`key_short.c libkey_short_static_la-key_short_repair.lo: key_short_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_short_static_la_CFLAGS) $(CFLAGS) -MT libkey_short_static_la-key_short_repair.lo -MD -MP -MF $(DEPDIR)/libkey_short_static_la-key_short_repair.Tpo -c -o libkey_short_static_la-key_short_repair.lo `test -f 'key_short_repair.c' || echo '$(srcdir)/'`key_short_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_short_static_la-key_short_repair.Tpo $(DEPDIR)/libkey_short_static_la-key_short_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_short_repair.c' object='libkey_short_static_la-key_short_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_short_static_la_CFLAGS) $(CFLAGS) -c -o libkey_short_static_la-key_short_repair.lo `test -f 'key_short_repair.c' || echo '$(srcdir)/'`key_short_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/key/key_short/Makefile.am0000644000175000017500000000116111131470543021055 0ustar fzfzincludedir = -I$(top_srcdir)/include key_short_sources = key_short.c key_short.h key_short_repair.c STATIC_LIBS = libkey_short-static.la libkey_short_static_la_SOURCES = $(key_short_sources) libkey_short_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libkey_short-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libkey_short_minimal_la_SOURCES = $(key_short_sources) libkey_short_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/key/key_short/key_short.c0000644000175000017500000002314611131470543021203 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key_short.c -- reiser4 short key plugin. */ #ifdef ENABLE_SHORT_KEYS #include "key_short.h" extern reiser4_key_plug_t key_short_plug; /* Returns minimal key */ static reiser4_key_t *key_short_minimal(void) { return key_common_minimal(&key_short_plug); } /* Returns maximal key */ static reiser4_key_t *key_short_maximal(void) { return key_common_maximal(&key_short_plug); } static uint32_t key_short_bodysize(void) { return KEY_SHORT_LAST_INDEX; } #ifndef ENABLE_MINIMAL /* Sets up key type */ static void key_short_set_type(reiser4_key_t *key, key_type_t type) { aal_assert("umka-634", key != NULL); ks_set_minor((key_short_t *)key->body, key_common_type2minor(type)); } /* Returns key type */ key_type_t key_short_get_type(reiser4_key_t *key) { key_minor_t minor; aal_assert("umka-635", key != NULL); minor = ks_get_minor((key_short_t *)key->body); return key_common_minor2type(minor); } /* Sets up full key objectid */ void key_short_set_fobjectid(reiser4_key_t *key, uint64_t objectid) { aal_assert("umka-2345", key != NULL); ks_set_fobjectid((key_short_t *)key->body, objectid); } /* Returns full key objectid */ uint64_t key_short_get_fobjectid(reiser4_key_t *key) { aal_assert("umka-2346", key != NULL); return ks_get_fobjectid((key_short_t *)key->body); } /* Sets up key locality */ void key_short_set_locality(reiser4_key_t *key, uint64_t locality) { aal_assert("umka-636", key != NULL); ks_set_locality((key_short_t *)key->body, locality); } #endif /* Returns key locality */ uint64_t key_short_get_locality(reiser4_key_t *key) { aal_assert("umka-637", key != NULL); return ks_get_locality((key_short_t *)key->body); } /* Sets up key ordering (is not used in short keys ) */ void key_short_set_ordering(reiser4_key_t *key, uint64_t ordering) { aal_assert("umka-2331", key != NULL); } /* Returns key ordering (is not used in short keys) */ uint64_t key_short_get_ordering(reiser4_key_t *key) { aal_assert("umka-2332", key != NULL); return 0; } /* Sets up key objectid */ void key_short_set_objectid(reiser4_key_t *key, uint64_t objectid) { aal_assert("umka-638", key != NULL); ks_set_objectid((key_short_t *)key->body, objectid); } /* Returns key objectid */ uint64_t key_short_get_objectid(reiser4_key_t *key) { aal_assert("umka-639", key != NULL); return ks_get_objectid((key_short_t *)key->body); } /* Sets up key offset */ void key_short_set_offset(reiser4_key_t *key, uint64_t offset) { aal_assert("umka-640", key != NULL); ks_set_offset((key_short_t *)key->body, offset); } /* Returns key offset */ uint64_t key_short_get_offset(reiser4_key_t *key) { aal_assert("umka-641", key != NULL); return ks_get_offset((key_short_t *)key->body); } static int key_short_hashed(reiser4_key_t *key) { return (ks_get_fobjectid((key_short_t *)key->body) & HASHED_NAME_MASK) ? 1 : 0; } /* Extracts name from key */ static char *key_short_get_name(reiser4_key_t *key, char *name) { char *ptr; uint64_t offset; uint64_t objectid; /* Check if the key is a hashed one */ if (key_short_hashed(key)) return NULL; offset = key_short_get_offset(key); objectid = ks_get_fobjectid((key_short_t *)key->body); /* Special case, handling "." entry */ if (objectid == 0ull && offset == 0ull) { *name = '.'; *(name + 1) = '\0'; } else { objectid &= ~FIBRE_MASK; ptr = aux_unpack_string(objectid, name); aux_unpack_string(offset, ptr); } return name; } #ifndef ENABLE_MINIMAL /* Sets up key offset */ static void key_short_set_hash(reiser4_key_t *key, uint64_t hash) { aal_assert("vpf-129", key != NULL); ks_set_hash((key_short_t *)key->body, hash); } /* Returns key offset */ static uint64_t key_short_get_hash(reiser4_key_t *key) { aal_assert("vpf-130", key != NULL); return ks_get_hash((key_short_t *)key->body); } #endif /* Compares two first components of the pased keys (locality and objectid) */ static int key_short_compshort(reiser4_key_t *key1, reiser4_key_t *key2) { key_minor_t minor; int res; aal_assert("umka-2217", key1 != NULL); aal_assert("umka-2218", key2 != NULL); /* Checking locality */ if ((res = ks_comp_el((key_short_t *)key1->body, (key_short_t *)key2->body, 0))) { return res; } minor = ks_get_minor((key_short_t *)key1->body); if (key_common_minor2type(minor) == KEY_FILENAME_TYPE) return 0; /* Checking object id */ return ks_comp_el((key_short_t *)key1->body, (key_short_t *)key2->body, 1); } /* Compares two passed key bodies. */ static int key_short_compraw(void *key1, void *key2) { int res; if ((res = ks_comp_el((key_short_t *)key1, (key_short_t *)key2, 0))) { return res; } if ((res = ks_comp_el((key_short_t *)key1, (key_short_t *)key2, 1))) { return res; } return ks_comp_el((key_short_t *)key1, (key_short_t *)key2, 2); } /* Compares two passed keys. Returns -1 if key1 lesser than key2, 0 if keys are equal and 1 if key1 is bigger then key2. */ static int key_short_compfull(reiser4_key_t *key1, reiser4_key_t *key2) { aal_assert("vpf-135", key1 != NULL); aal_assert("vpf-136", key2 != NULL); return key_short_compraw(key1->body, key2->body); } /* Builds hash of the passed @name by means of using a hash plugin */ static void key_short_build_hash(reiser4_key_t *key, reiser4_hash_plug_t *hash, reiser4_fibre_plug_t *fibre, char *name) { uint16_t len; uint64_t objectid, offset; aal_assert("vpf-101", key != NULL); aal_assert("vpf-102", name != NULL); if ((len = aal_strlen(name)) == 1 && name[0] == '.') return; aal_assert("vpf-128", hash != NULL); aal_assert("vpf-1567", fibre != NULL); /* Not dot, pack the first part of the name into objectid */ objectid = aux_pack_string(name, 1); if (len <= OBJECTID_CHARS + OFFSET_CHARS) { offset = 0ull; if (len > OBJECTID_CHARS) { /* Does not fit into objectid, pack the second part of the name into offset. */ offset = aux_pack_string(name + OBJECTID_CHARS, 0); } } else { /* Build hash by means of using hash plugin */ objectid |= HASHED_NAME_MASK; offset = plugcall(hash, build, (unsigned char *)name + OBJECTID_CHARS, len - OBJECTID_CHARS); } objectid |= ((uint64_t)plugcall(fibre, build, name, len) << FIBRE_SHIFT); /* Objectid must occupie 60 bits. If it takes more, then we have broken key, or objectid allocator reached this value, that impossible in near future and apprentry denotes bug in object allocator. */ aal_assert("umka-1499", !(objectid & ~KEY_SHORT_OBJECTID_MASK)); /* Setting up objectid and offset */ ks_set_fobjectid((key_short_t *)key->body, objectid); key_short_set_offset(key, offset); } /* Builds key by passed locality, objectid, and name. It is suitable for creating entry keys. */ static void key_short_build_hashed(reiser4_key_t *key, reiser4_hash_plug_t *hash, reiser4_fibre_plug_t *fibre, uint64_t locality, uint64_t objectid, char *name) { key_type_t type; aal_assert("vpf-140", key != NULL); aal_assert("umka-667", name != NULL); aal_memset(key, 0, sizeof(*key)); type = key_common_minor2type(KEY_FILENAME_MINOR); key->plug = &key_short_plug; ks_set_locality((key_short_t *)key->body, objectid); ks_set_minor((key_short_t *)key->body, key_common_type2minor(type)); key_short_build_hash(key, hash, fibre, name); } /* Builds generic key by all its components */ static errno_t key_short_build_generic(reiser4_key_t *key, key_type_t type, uint64_t locality, uint64_t ordering, uint64_t objectid, uint64_t offset) { aal_assert("vpf-141", key != NULL); aal_memset(key, 0, sizeof(*key)); key->plug = &key_short_plug; ks_set_locality((key_short_t *)key->body, locality); if (type == KEY_FILENAME_TYPE) { ks_set_fobjectid((key_short_t *)key->body, objectid); } else { ks_set_objectid((key_short_t *)key->body, objectid); } ks_set_minor((key_short_t *)key->body, key_common_type2minor(type)); ks_set_offset((key_short_t *)key->body, offset); return 0; } #ifndef ENABLE_MINIMAL extern void key_short_print(reiser4_key_t *key, aal_stream_t *stream, uint16_t options); extern errno_t key_short_check_struct(reiser4_key_t *key); #endif reiser4_key_plug_t key_short_plug = { .p = { .id = {KEY_SHORT_ID, 0, KEY_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "key_short", .desc = "Short key plugin.", #endif }, .hashed = key_short_hashed, .minimal = key_short_minimal, .maximal = key_short_maximal, .bodysize = key_short_bodysize, .compfull = key_short_compfull, .compraw = key_short_compraw, .compshort = key_short_compshort, .build_hashed = key_short_build_hashed, .build_generic = key_short_build_generic, #ifndef ENABLE_MINIMAL .check_struct = key_short_check_struct, .print = key_short_print, .set_hash = key_short_set_hash, .get_hash = key_short_get_hash, .set_type = key_short_set_type, .get_type = key_short_get_type, .set_fobjectid = key_short_set_fobjectid, .get_fobjectid = key_short_get_fobjectid, .set_locality = key_short_set_locality, #endif .get_locality = key_short_get_locality, .set_objectid = key_short_set_objectid, .get_objectid = key_short_get_objectid, .set_ordering = key_short_set_ordering, .get_ordering = key_short_get_ordering, .set_offset = key_short_set_offset, .get_offset = key_short_get_offset, .get_name = key_short_get_name }; #endif reiser4progs-1.0.7.orig/plugin/key/key_short/key_short_repair.c0000644000175000017500000000314311131470543022540 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key_short_repair.c -- short key plugin repair methods. */ #ifndef ENABLE_MINIMAL #ifdef ENABLE_SHORT_KEYS #include "key_short.h" #include /* Checks than oid is not used in neither locality not objectid. */ errno_t key_short_check_struct(reiser4_key_t *key) { key_minor_t minor; uint64_t oid; aal_assert("vpf-1278", key != NULL); minor = ks_get_minor((key_short_t *)key->body); if (minor >= KEY_LAST_MINOR) return RE_FATAL; oid = key_short_get_locality(key); if (oid & KEY_SHORT_BAND_MASK) key_short_set_locality(key, oid & !KEY_SHORT_BAND_MASK); /* Direntries needs locality only to be checked. */ if (key_short_get_type(key) == KEY_FILENAME_TYPE) return 0; oid = key_short_get_fobjectid(key); if (oid & KEY_SHORT_BAND_MASK) key_short_set_fobjectid(key, oid & !KEY_SHORT_BAND_MASK); return 0; } #ifndef ENABLE_MINIMAL /* Prints key into passed stream */ void key_short_print(reiser4_key_t *key, aal_stream_t *stream, uint16_t options) { const char *name; aal_assert("vpf-191", key != NULL); aal_assert("umka-1548", stream != NULL); if (options == PO_INODE) { aal_stream_format(stream, "%llx:%llx\0", key_short_get_locality(key), key_short_get_objectid(key)); } else { name = key_common_minor2name(key_short_get_type(key)); aal_stream_format(stream, "%llx:%x(%s):%llx:%llx\0", key_short_get_locality(key), key_short_get_type(key), name, key_short_get_objectid(key), key_short_get_offset(key)); } } #endif #endif #endif reiser4progs-1.0.7.orig/plugin/key/key_common/0000777000175000017500000000000011134133445017157 5ustar fzfzreiser4progs-1.0.7.orig/plugin/key/key_common/key_common.c0000644000175000017500000000374611131470543021471 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key_common.c -- reiser4 common for all keys functions. */ #include "key_common.h" /* Minimal possible key */ static reiser4_key_t minimal_key = { .plug = NULL, .body = {0ull, 0ull, 0ull, 0ull}, #ifndef ENABLE_MINIMAL .adjust = 0 #endif }; /* Maximal possible key */ static reiser4_key_t maximal_key = { .plug = NULL, .body = {MAX_UINT64, MAX_UINT64, MAX_UINT64, MAX_UINT64}, #ifndef ENABLE_MINIMAL .adjust = 0 #endif }; /* Translates key type from libreiser4 type to key_common one */ key_minor_t key_common_type2minor(key_type_t type) { switch (type) { case KEY_FILENAME_TYPE: return KEY_FILENAME_MINOR; case KEY_STATDATA_TYPE: return KEY_STATDATA_MINOR; case KEY_ATTRNAME_TYPE: return KEY_ATTRNAME_MINOR; case KEY_ATTRBODY_TYPE: return KEY_ATTRBODY_MINOR; case KEY_FILEBODY_TYPE: return KEY_FILEBODY_MINOR; default: return MAX_UINT8; } } /* Translates key type from key_common to libreiser4 one */ key_type_t key_common_minor2type(key_minor_t minor) { switch (minor) { case KEY_FILENAME_MINOR: return KEY_FILENAME_TYPE; case KEY_STATDATA_MINOR: return KEY_STATDATA_TYPE; case KEY_ATTRNAME_MINOR: return KEY_ATTRNAME_TYPE; case KEY_ATTRBODY_MINOR: return KEY_ATTRBODY_TYPE; case KEY_FILEBODY_MINOR: return KEY_FILEBODY_TYPE; default: return MAX_UINT8; } } /* Key minor names. They are used key_print() function */ static const char *const minor_names[] = { "NAME", "SD", "AN", "AB", "FB", "?" }; /* Translates passed minor into corresponding name */ const char *key_common_minor2name(key_minor_t type) { if (type > KEY_LAST_MINOR) type = KEY_LAST_MINOR; return minor_names[type]; } /* Returns minimal key */ reiser4_key_t *key_common_minimal(reiser4_key_plug_t *plug) { minimal_key.plug = plug; return &minimal_key; } /* Returns maximal key */ reiser4_key_t *key_common_maximal(reiser4_key_plug_t *plug) { maximal_key.plug = plug; return &maximal_key; } reiser4progs-1.0.7.orig/plugin/key/key_common/key_common.h0000644000175000017500000000164111131470543021466 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key_common.h -- reiser4 common for all keys functions. */ #ifndef KEY_COMMON_H #define KEY_COMMON_H #include #include #include typedef enum { /* File name key type */ KEY_FILENAME_MINOR = 0, /* Stat-data key type */ KEY_STATDATA_MINOR = 1, /* File attribute name */ KEY_ATTRNAME_MINOR = 2, /* File attribute value */ KEY_ATTRBODY_MINOR = 3, /* File body (tail or extent) */ KEY_FILEBODY_MINOR = 4, KEY_LAST_MINOR } key_minor_t; extern key_minor_t key_common_type2minor(key_type_t type); extern key_type_t key_common_minor2type(key_minor_t minor); extern const char *key_common_minor2name(key_minor_t type); extern reiser4_key_t *key_common_minimal(reiser4_key_plug_t *plug); extern reiser4_key_t *key_common_maximal(reiser4_key_plug_t *plug); #endif reiser4progs-1.0.7.orig/plugin/key/key_common/Makefile.in0000644000175000017500000004215611134132275021230 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/key/key_common DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libkey_common_minimal_la_LIBADD = am__libkey_common_minimal_la_SOURCES_DIST = key_common.c key_common.h am__objects_1 = libkey_common_minimal_la-key_common.lo @ENABLE_MINIMAL_TRUE@am_libkey_common_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libkey_common_minimal_la_OBJECTS = \ $(am_libkey_common_minimal_la_OBJECTS) libkey_common_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libkey_common_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libkey_common_minimal_la_rpath = libkey_common_static_la_LIBADD = am__objects_2 = libkey_common_static_la-key_common.lo am_libkey_common_static_la_OBJECTS = $(am__objects_2) libkey_common_static_la_OBJECTS = \ $(am_libkey_common_static_la_OBJECTS) libkey_common_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libkey_common_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libkey_common_minimal_la_SOURCES) \ $(libkey_common_static_la_SOURCES) DIST_SOURCES = $(am__libkey_common_minimal_la_SOURCES_DIST) \ $(libkey_common_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ key_common_sources = key_common.c key_common.h libkey_common_static_la_SOURCES = $(key_common_sources) libkey_common_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libkey_common-minimal.la noinst_LTLIBRARIES = libkey_common-static.la $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libkey_common_minimal_la_SOURCES = $(key_common_sources) @ENABLE_MINIMAL_TRUE@libkey_common_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/key/key_common/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/key/key_common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libkey_common-minimal.la: $(libkey_common_minimal_la_OBJECTS) $(libkey_common_minimal_la_DEPENDENCIES) $(libkey_common_minimal_la_LINK) $(am_libkey_common_minimal_la_rpath) $(libkey_common_minimal_la_OBJECTS) $(libkey_common_minimal_la_LIBADD) $(LIBS) libkey_common-static.la: $(libkey_common_static_la_OBJECTS) $(libkey_common_static_la_DEPENDENCIES) $(libkey_common_static_la_LINK) $(libkey_common_static_la_OBJECTS) $(libkey_common_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_common_minimal_la-key_common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_common_static_la-key_common.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libkey_common_minimal_la-key_common.lo: key_common.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_common_minimal_la_CFLAGS) $(CFLAGS) -MT libkey_common_minimal_la-key_common.lo -MD -MP -MF $(DEPDIR)/libkey_common_minimal_la-key_common.Tpo -c -o libkey_common_minimal_la-key_common.lo `test -f 'key_common.c' || echo '$(srcdir)/'`key_common.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_common_minimal_la-key_common.Tpo $(DEPDIR)/libkey_common_minimal_la-key_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_common.c' object='libkey_common_minimal_la-key_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_common_minimal_la_CFLAGS) $(CFLAGS) -c -o libkey_common_minimal_la-key_common.lo `test -f 'key_common.c' || echo '$(srcdir)/'`key_common.c libkey_common_static_la-key_common.lo: key_common.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_common_static_la_CFLAGS) $(CFLAGS) -MT libkey_common_static_la-key_common.lo -MD -MP -MF $(DEPDIR)/libkey_common_static_la-key_common.Tpo -c -o libkey_common_static_la-key_common.lo `test -f 'key_common.c' || echo '$(srcdir)/'`key_common.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_common_static_la-key_common.Tpo $(DEPDIR)/libkey_common_static_la-key_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_common.c' object='libkey_common_static_la-key_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_common_static_la_CFLAGS) $(CFLAGS) -c -o libkey_common_static_la-key_common.lo `test -f 'key_common.c' || echo '$(srcdir)/'`key_common.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/key/key_common/Makefile.am0000644000175000017500000000110711131470543021206 0ustar fzfzincludedir = -I$(top_srcdir)/include key_common_sources = key_common.c key_common.h libkey_common_static_la_SOURCES = $(key_common_sources) libkey_common_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libkey_common-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = libkey_common-static.la $(MINIMAL_LIBS) if ENABLE_MINIMAL libkey_common_minimal_la_SOURCES = $(key_common_sources) libkey_common_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/key/key_large/0000777000175000017500000000000011134133445016761 5ustar fzfzreiser4progs-1.0.7.orig/plugin/key/key_large/key_large.c0000644000175000017500000002314511131470543021070 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key_large.c -- reiser4 large key plugin. */ #ifdef ENABLE_LARGE_KEYS #include "key_large.h" extern reiser4_key_plug_t key_large_plug; /* Returns minimal key */ static reiser4_key_t *key_large_minimal(void) { return key_common_minimal(&key_large_plug); } /* Returns maximal key */ static reiser4_key_t *key_large_maximal(void) { return key_common_maximal(&key_large_plug); } static uint32_t key_large_bodysize(void) { return KEY_LARGE_LAST_INDEX; } #ifndef ENABLE_MINIMAL /* Sets up key type */ static void key_large_set_type(reiser4_key_t *key, key_type_t type) { aal_assert("umka-634", key != NULL); kl_set_minor((key_large_t *)key->body, key_common_type2minor(type)); } /* Returns key type */ key_type_t key_large_get_type(reiser4_key_t *key) { key_minor_t minor; aal_assert("umka-635", key != NULL); minor = kl_get_minor((key_large_t *)key->body); return key_common_minor2type(minor); } /* Sets up full key objectid */ void key_large_set_fobjectid(reiser4_key_t *key, uint64_t objectid) { aal_assert("umka-2345", key != NULL); kl_set_fobjectid((key_large_t *)key->body, objectid); } /* Returns full key objectid */ uint64_t key_large_get_fobjectid(reiser4_key_t *key) { aal_assert("umka-2346", key != NULL); return kl_get_fobjectid((key_large_t *)key->body); } /* Sets up key locality */ void key_large_set_locality(reiser4_key_t *key, uint64_t locality) { aal_assert("umka-636", key != NULL); kl_set_locality((key_large_t *)key->body, locality); } #endif /* Returns key locality */ uint64_t key_large_get_locality(reiser4_key_t *key) { aal_assert("umka-637", key != NULL); return kl_get_locality((key_large_t *)key->body); } /* Sets up key ordering (is not used in short keys ) */ void key_large_set_ordering(reiser4_key_t *key, uint64_t ordering) { aal_assert("umka-2331", key != NULL); kl_set_ordering((key_large_t *)key->body, ordering); } /* Returns key ordering (is not used in short keys) */ uint64_t key_large_get_ordering(reiser4_key_t *key) { aal_assert("umka-2332", key != NULL); return kl_get_ordering((key_large_t *)key->body); } /* Sets up key objectid */ void key_large_set_objectid(reiser4_key_t *key, uint64_t objectid) { aal_assert("umka-638", key != NULL); kl_set_objectid((key_large_t *)key->body, objectid); } /* Returns key objectid */ uint64_t key_large_get_objectid(reiser4_key_t *key) { aal_assert("umka-639", key != NULL); return kl_get_objectid((key_large_t *)key->body); } /* Sets up key offset */ void key_large_set_offset(reiser4_key_t *key, uint64_t offset) { aal_assert("umka-640", key != NULL); kl_set_offset((key_large_t *)key->body, offset); } /* Returns key offset */ uint64_t key_large_get_offset(reiser4_key_t *key) { aal_assert("umka-641", key != NULL); return kl_get_offset((key_large_t *)key->body); } static int key_large_hashed(reiser4_key_t *key) { return (key_large_get_ordering(key) & HASHED_NAME_MASK) ? 1 : 0; } /* Extracts name from key */ static char *key_large_get_name(reiser4_key_t *key, char *name) { char *ptr; uint64_t offset; uint64_t objectid; uint64_t ordering; aal_assert("umka-2352", key != NULL); aal_assert("umka-2353", name != NULL); /* Check if the key is a hashed one */ if (key_large_hashed(key)) return NULL; offset = key_large_get_offset(key); ordering = key_large_get_ordering(key); objectid = kl_get_fobjectid((key_large_t *)key->body); /* Check if key is dot one */ if (objectid == 0ull && offset == 0ull && ordering == 0ull) { *name = '.'; *(name + 1) = '\0'; } else { ordering &= ~FIBRE_MASK; ptr = aux_unpack_string(ordering, name); ptr = aux_unpack_string(objectid, ptr); aux_unpack_string(offset, ptr); } return name; } #ifndef ENABLE_MINIMAL /* Sets up key offset */ static void key_large_set_hash(reiser4_key_t *key, uint64_t hash) { aal_assert("vpf-129", key != NULL); kl_set_hash((key_large_t *)key->body, hash); } /* Returns key offset */ static uint64_t key_large_get_hash(reiser4_key_t *key) { aal_assert("vpf-130", key != NULL); return kl_get_hash((key_large_t *)key->body); } #endif /* Figures out if items are of one file or not. */ static int key_large_compshort(reiser4_key_t *key1, reiser4_key_t *key2) { key_minor_t minor; int res; aal_assert("umka-2217", key1 != NULL); aal_assert("umka-2218", key2 != NULL); /* Cheking locality first */ if ((res = kl_comp_el((key_large_t *)key1->body, (key_large_t *)key2->body, 0))) { return res; } minor = kl_get_minor((key_large_t *)key1->body); /* There is nothing to check for entry keys anymore. */ if (key_common_minor2type(minor) == KEY_FILENAME_TYPE) return 0; /* Checking ordering. */ if ((res = kl_comp_el((key_large_t *)key1->body, (key_large_t *)key2->body, 1))) { return res; } /* Checking objectid */ return kl_comp_el((key_large_t *)key1->body, (key_large_t *)key2->body, 2); } static int key_large_compraw(void *key1, void *key2) { int res; if ((res = kl_comp_el((key_large_t *)key1, (key_large_t *)key2, 0))) { return res; } if ((res = kl_comp_el((key_large_t *)key1, (key_large_t *)key2, 1))) { return res; } if ((res = kl_comp_el((key_large_t *)key1, (key_large_t *)key2, 2))) { return res; } return kl_comp_el((key_large_t *)key1, (key_large_t *)key2, 3); } /* Compares two passed keys. Returns -1 if key1 lesser than key2, 0 if keys are equal and 1 if key1 is bigger then key2. */ static int key_large_compfull(reiser4_key_t *key1, reiser4_key_t *key2) { aal_assert("vpf-135", key1 != NULL); aal_assert("vpf-136", key2 != NULL); return key_large_compraw(key1->body, key2->body); } /* Builds hash of the passed @name by means of using a hash plugin */ static void key_large_build_hash(reiser4_key_t *key, reiser4_hash_plug_t *hash, reiser4_fibre_plug_t *fibre, char *name) { uint16_t len; uint64_t offset; uint64_t objectid; uint64_t ordering; if ((len = aal_strlen(name)) == 1 && name[0] == '.') return; aal_assert("vpf-128", hash != NULL); aal_assert("vpf-1568", fibre != NULL); ordering = aux_pack_string(name, 1); if (len > ORDERING_CHARS) objectid = aux_pack_string(name + ORDERING_CHARS, 0); else objectid = 0ull; if (len <= ORDERING_CHARS + OBJECTID_CHARS + OFFSET_CHARS) { if (len > INLINE_CHARS) offset = aux_pack_string(name + INLINE_CHARS, 0); else offset = 0ull; } else { ordering |= HASHED_NAME_MASK; offset = plugcall(hash, build, (unsigned char *)name + INLINE_CHARS, len - INLINE_CHARS); } ordering |= ((uint64_t)plugcall(fibre, build, name, len) << FIBRE_SHIFT); /* Setting up objectid and offset */ key_large_set_ordering(key, ordering); kl_set_objectid((key_large_t *)key->body, objectid); key_large_set_offset(key, offset); } /* Builds key by passed locality, objectid, and name. It is suitable for creating entry keys. */ static void key_large_build_hashed(reiser4_key_t *key, reiser4_hash_plug_t *hash, reiser4_fibre_plug_t *fibre, uint64_t locality, uint64_t objectid, char *name) { key_type_t type; aal_assert("vpf-140", key != NULL); aal_assert("umka-667", name != NULL); type = key_common_minor2type(KEY_FILENAME_MINOR); aal_memset(key, 0, sizeof(*key)); key->plug = &key_large_plug; kl_set_locality((key_large_t *)key->body, objectid); kl_set_minor((key_large_t *)key->body, key_common_type2minor(type)); key_large_build_hash(key, hash, fibre, name); } /* Builds generic key by all its components */ static errno_t key_large_build_generic(reiser4_key_t *key, key_type_t type, uint64_t locality, uint64_t ordering, uint64_t objectid, uint64_t offset) { aal_assert("vpf-141", key != NULL); aal_memset(key, 0, sizeof(*key)); key->plug = &key_large_plug; kl_set_locality((key_large_t *)key->body, locality); kl_set_ordering((key_large_t *)key->body, ordering); if (type == KEY_FILENAME_TYPE) { kl_set_fobjectid((key_large_t *)key->body, objectid); } else { kl_set_objectid((key_large_t *)key->body, objectid); } kl_set_minor((key_large_t *)key->body, key_common_type2minor(type)); kl_set_offset((key_large_t *)key->body, offset); return 0; } #ifndef ENABLE_MINIMAL extern void key_large_print(reiser4_key_t *key, aal_stream_t *stream, uint16_t options); extern errno_t key_large_check_struct(reiser4_key_t *key); #endif reiser4_key_plug_t key_large_plug = { .p = { .id = {KEY_LARGE_ID, 0, KEY_PLUG_TYPE}, #ifndef ENABLE_MINIMAL .label = "key_large", .desc = "Large key plugin.", #endif }, .hashed = key_large_hashed, .minimal = key_large_minimal, .maximal = key_large_maximal, .bodysize = key_large_bodysize, .compraw = key_large_compraw, .compfull = key_large_compfull, .compshort = key_large_compshort, .build_hashed = key_large_build_hashed, .build_generic = key_large_build_generic, #ifndef ENABLE_MINIMAL .check_struct = key_large_check_struct, .print = key_large_print, .set_hash = key_large_set_hash, .get_hash = key_large_get_hash, .set_type = key_large_set_type, .get_type = key_large_get_type, .set_fobjectid = key_large_set_fobjectid, .get_fobjectid = key_large_get_fobjectid, .set_locality = key_large_set_locality, #endif .get_locality = key_large_get_locality, .set_objectid = key_large_set_objectid, .get_objectid = key_large_get_objectid, .set_ordering = key_large_set_ordering, .get_ordering = key_large_get_ordering, .set_offset = key_large_set_offset, .get_offset = key_large_get_offset, .get_name = key_large_get_name }; #endif reiser4progs-1.0.7.orig/plugin/key/key_large/Makefile.in0000644000175000017500000004734111134132275021033 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugin/key/key_large DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libkey_large_minimal_la_LIBADD = am__libkey_large_minimal_la_SOURCES_DIST = key_large.c key_large.h \ key_large_repair.c am__objects_1 = libkey_large_minimal_la-key_large.lo \ libkey_large_minimal_la-key_large_repair.lo @ENABLE_MINIMAL_TRUE@am_libkey_large_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libkey_large_minimal_la_OBJECTS = \ $(am_libkey_large_minimal_la_OBJECTS) libkey_large_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libkey_large_minimal_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libkey_large_minimal_la_rpath = libkey_large_static_la_LIBADD = am__objects_2 = libkey_large_static_la-key_large.lo \ libkey_large_static_la-key_large_repair.lo am_libkey_large_static_la_OBJECTS = $(am__objects_2) libkey_large_static_la_OBJECTS = $(am_libkey_large_static_la_OBJECTS) libkey_large_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libkey_large_static_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libkey_large_minimal_la_SOURCES) \ $(libkey_large_static_la_SOURCES) DIST_SOURCES = $(am__libkey_large_minimal_la_SOURCES_DIST) \ $(libkey_large_static_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ key_large_sources = key_large.c key_large.h key_large_repair.c STATIC_LIBS = libkey_large-static.la libkey_large_static_la_SOURCES = $(key_large_sources) libkey_large_static_la_CFLAGS = @GENERIC_CFLAGS@ @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libkey_large-minimal.la noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) @ENABLE_MINIMAL_TRUE@libkey_large_minimal_la_SOURCES = $(key_large_sources) @ENABLE_MINIMAL_TRUE@libkey_large_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugin/key/key_large/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu plugin/key/key_large/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libkey_large-minimal.la: $(libkey_large_minimal_la_OBJECTS) $(libkey_large_minimal_la_DEPENDENCIES) $(libkey_large_minimal_la_LINK) $(am_libkey_large_minimal_la_rpath) $(libkey_large_minimal_la_OBJECTS) $(libkey_large_minimal_la_LIBADD) $(LIBS) libkey_large-static.la: $(libkey_large_static_la_OBJECTS) $(libkey_large_static_la_DEPENDENCIES) $(libkey_large_static_la_LINK) $(libkey_large_static_la_OBJECTS) $(libkey_large_static_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_large_minimal_la-key_large.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_large_minimal_la-key_large_repair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_large_static_la-key_large.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkey_large_static_la-key_large_repair.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libkey_large_minimal_la-key_large.lo: key_large.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_large_minimal_la_CFLAGS) $(CFLAGS) -MT libkey_large_minimal_la-key_large.lo -MD -MP -MF $(DEPDIR)/libkey_large_minimal_la-key_large.Tpo -c -o libkey_large_minimal_la-key_large.lo `test -f 'key_large.c' || echo '$(srcdir)/'`key_large.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_large_minimal_la-key_large.Tpo $(DEPDIR)/libkey_large_minimal_la-key_large.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_large.c' object='libkey_large_minimal_la-key_large.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_large_minimal_la_CFLAGS) $(CFLAGS) -c -o libkey_large_minimal_la-key_large.lo `test -f 'key_large.c' || echo '$(srcdir)/'`key_large.c libkey_large_minimal_la-key_large_repair.lo: key_large_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_large_minimal_la_CFLAGS) $(CFLAGS) -MT libkey_large_minimal_la-key_large_repair.lo -MD -MP -MF $(DEPDIR)/libkey_large_minimal_la-key_large_repair.Tpo -c -o libkey_large_minimal_la-key_large_repair.lo `test -f 'key_large_repair.c' || echo '$(srcdir)/'`key_large_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_large_minimal_la-key_large_repair.Tpo $(DEPDIR)/libkey_large_minimal_la-key_large_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_large_repair.c' object='libkey_large_minimal_la-key_large_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_large_minimal_la_CFLAGS) $(CFLAGS) -c -o libkey_large_minimal_la-key_large_repair.lo `test -f 'key_large_repair.c' || echo '$(srcdir)/'`key_large_repair.c libkey_large_static_la-key_large.lo: key_large.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_large_static_la_CFLAGS) $(CFLAGS) -MT libkey_large_static_la-key_large.lo -MD -MP -MF $(DEPDIR)/libkey_large_static_la-key_large.Tpo -c -o libkey_large_static_la-key_large.lo `test -f 'key_large.c' || echo '$(srcdir)/'`key_large.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_large_static_la-key_large.Tpo $(DEPDIR)/libkey_large_static_la-key_large.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_large.c' object='libkey_large_static_la-key_large.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_large_static_la_CFLAGS) $(CFLAGS) -c -o libkey_large_static_la-key_large.lo `test -f 'key_large.c' || echo '$(srcdir)/'`key_large.c libkey_large_static_la-key_large_repair.lo: key_large_repair.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_large_static_la_CFLAGS) $(CFLAGS) -MT libkey_large_static_la-key_large_repair.lo -MD -MP -MF $(DEPDIR)/libkey_large_static_la-key_large_repair.Tpo -c -o libkey_large_static_la-key_large_repair.lo `test -f 'key_large_repair.c' || echo '$(srcdir)/'`key_large_repair.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libkey_large_static_la-key_large_repair.Tpo $(DEPDIR)/libkey_large_static_la-key_large_repair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key_large_repair.c' object='libkey_large_static_la-key_large_repair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkey_large_static_la_CFLAGS) $(CFLAGS) -c -o libkey_large_static_la-key_large_repair.lo `test -f 'key_large_repair.c' || echo '$(srcdir)/'`key_large_repair.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/plugin/key/key_large/key_large.h0000644000175000017500000001147111131470543021074 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key_large.h -- reiser4 large key structures. */ #ifndef KEY_LARGE_H #define KEY_LARGE_H #include #include #include #include "plugin/key/key_common/key_common.h" typedef enum { /* Major "locale", aka dirid. Sits in 1st element */ KEY_LARGE_LOCALITY_INDEX = 0, /* Minor "locale", aka item type. Sits in 1st element */ KEY_LARGE_TYPE_INDEX = 0, /* Object ordering. Sits in 2nd element */ KEY_LARGE_ORDERING_INDEX = 1, /* Object band. Sits in 3nd element */ KEY_LARGE_BAND_INDEX = 2, /* Object id. Sits in 3nd element */ KEY_LARGE_OBJECTID_INDEX = 2, KEY_LARGE_FOBJECTID_INDEX = 2, /* Offset. Sits in 4rd element */ KEY_LARGE_OFFSET_INDEX = 3, /* Name hash. Sits in 4rd element */ KEY_LARGE_HASH_INDEX = 3, KEY_LARGE_LAST_INDEX } key_large_field_t; typedef union key_large { d64_t el[KEY_LARGE_LAST_INDEX]; int pad; } key_large_t; typedef enum { /* Major locality occupies higher 60 bits of the first element */ KEY_LARGE_LOCALITY_MASK = 0xfffffffffffffff0ull, /* Minor locality occupies lower 4 bits of the first element */ KEY_LARGE_TYPE_MASK = 0xfull, /* Ordering occupies the whole 2nd element. */ KEY_LARGE_ORDERING_MASK = 0xffffffffffffffffull, /* Controversial band occupies higher 4 bits of the 3rd element */ KEY_LARGE_BAND_MASK = 0xf000000000000000ull, /* Objectid occupies lower 60 bits of the 3rd element */ KEY_LARGE_OBJECTID_MASK = 0x0fffffffffffffffull, KEY_LARGE_FOBJECTID_MASK = 0xffffffffffffffffull, /* Offset is just 4th L.M.Nt itself */ KEY_LARGE_OFFSET_MASK = 0xffffffffffffffffull, /* Hash occupies 56 higher bits of 4th element */ KEY_LARGE_HASH_MASK = 0xffffffffffffff00ull } key_large_mask_t; #define OFFSET_CHARS (sizeof(uint64_t)) #define OBJECTID_CHARS (sizeof(uint64_t)) #define ORDERING_CHARS (sizeof(uint64_t) - 1) #define INLINE_CHARS (ORDERING_CHARS + OBJECTID_CHARS) #define HASHED_NAME_MASK 0x0100000000000000ull #define FIBRE_MASK 0xff00000000000000ull #define FIBRE_SHIFT 57 typedef enum { KEY_LARGE_LOCALITY_SHIFT = 4, KEY_LARGE_TYPE_SHIFT = 0, KEY_LARGE_ORDERING_SHIFT = 0, KEY_LARGE_BAND_SHIFT = 60, KEY_LARGE_OBJECTID_SHIFT = 0, KEY_LARGE_FOBJECTID_SHIFT = 0, KEY_LARGE_OFFSET_SHIFT = 0, KEY_LARGE_HASH_SHIFT = 8, KEY_LARGE_GEN_SHIFT = 0, } key_large_shift_t; #ifndef ENABLE_MINIMAL extern void key_large_set_offset(reiser4_key_t *key, uint64_t offset); extern uint64_t key_large_get_offset(reiser4_key_t *key); extern void key_large_set_objectid(reiser4_key_t *key, uint64_t objectid); extern uint64_t key_large_get_objectid(reiser4_key_t *key); extern void key_large_set_ordering(reiser4_key_t *key, uint64_t ordering); extern uint64_t key_large_get_ordering(reiser4_key_t *key); extern key_type_t key_large_get_type(reiser4_key_t *key); extern void key_large_set_locality(reiser4_key_t *key, uint64_t locality); extern uint64_t key_large_get_locality(reiser4_key_t *key); extern void key_large_set_fobjectid(reiser4_key_t *key, uint64_t objectid); extern uint64_t key_large_get_fobjectid(reiser4_key_t *key); #endif static inline uint64_t kl_get_el(const key_large_t *key, key_large_field_t off) { return LE64_TO_CPU(get_unaligned(key->el + off)); } static inline void kl_set_el(key_large_t *key, key_large_field_t off, uint64_t value) { put_unaligned(CPU_TO_LE64(value), key->el + off); } static inline int kl_comp_el(void *k1, void *k2, int off) { uint64_t e1 = kl_get_el(k1, off); uint64_t e2 = kl_get_el(k2, off); return (e1 < e2 ? -1 : (e1 == e2 ? 0 : 1)); } /* Macro to define key_large getter and setter functions for field F with type T. It is used for minimize code. */ #define KEY_LARGE_FIELD_HANDLER(L, U, T) \ static inline T kl_get_##L (const key_large_t *key) { \ return (T) ((kl_get_el(key, KEY_LARGE_##U##_INDEX) & \ KEY_LARGE_##U##_MASK) >> KEY_LARGE_##U##_SHIFT);\ } \ \ static inline void kl_set_##L(key_large_t *key, T loc) { \ uint64_t el; \ \ el = kl_get_el(key, KEY_LARGE_##U##_INDEX); \ \ el &= ~KEY_LARGE_##U##_MASK; \ \ el |= (loc << KEY_LARGE_##U##_SHIFT); \ kl_set_el(key, KEY_LARGE_##U##_INDEX, el); \ } KEY_LARGE_FIELD_HANDLER(locality, LOCALITY, uint64_t); KEY_LARGE_FIELD_HANDLER(minor, TYPE, key_minor_t); KEY_LARGE_FIELD_HANDLER(ordering, ORDERING, uint64_t); KEY_LARGE_FIELD_HANDLER(band, BAND, uint64_t); KEY_LARGE_FIELD_HANDLER(objectid, OBJECTID, uint64_t); KEY_LARGE_FIELD_HANDLER(fobjectid, FOBJECTID, uint64_t); KEY_LARGE_FIELD_HANDLER(offset, OFFSET, uint64_t); KEY_LARGE_FIELD_HANDLER(hash, HASH, uint64_t); #endif reiser4progs-1.0.7.orig/plugin/key/key_large/key_large_repair.c0000644000175000017500000000326311131470543022431 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key_large_repair.c -- large key plugin repair methods. */ #ifndef ENABLE_MINIMAL #ifdef ENABLE_LARGE_KEYS #include "key_large.h" #include /* Checks than oid is not used in neither locality not objectid. */ errno_t key_large_check_struct(reiser4_key_t *key) { key_minor_t minor; uint64_t oid; aal_assert("vpf-1278", key != NULL); minor = kl_get_minor((key_large_t *)key->body); if (minor >= KEY_LAST_MINOR) return RE_FATAL; oid = key_large_get_locality(key); if (oid & KEY_LARGE_BAND_MASK) key_large_set_locality(key, oid & !KEY_LARGE_BAND_MASK); /* Direntries needs locality only to be checked. */ if (key_large_get_type(key) == KEY_FILENAME_TYPE) return 0; oid = key_large_get_fobjectid(key); if (oid & KEY_LARGE_BAND_MASK) key_large_set_fobjectid(key, oid & !KEY_LARGE_BAND_MASK); return 0; } #ifndef ENABLE_MINIMAL /* Prints key into passed stream */ void key_large_print(reiser4_key_t *key, aal_stream_t *stream, uint16_t options) { const char *name; aal_assert("vpf-191", key != NULL); aal_assert("umka-1548", stream != NULL); if (options == PO_INODE) { aal_stream_format(stream, "%llx:%llx:%llx\0", key_large_get_locality(key), key_large_get_ordering(key), key_large_get_objectid(key)); } else { name = key_common_minor2name(key_large_get_type(key)); aal_stream_format(stream, "%llx:%x(%s):%llx:%llx:%llx\0", key_large_get_locality(key), key_large_get_type(key), name, key_large_get_ordering(key), key_large_get_fobjectid(key), key_large_get_offset(key)); } } #endif #endif #endif reiser4progs-1.0.7.orig/plugin/key/key_large/Makefile.am0000644000175000017500000000116111131470543021010 0ustar fzfzincludedir = -I$(top_srcdir)/include key_large_sources = key_large.c key_large.h key_large_repair.c STATIC_LIBS = libkey_large-static.la libkey_large_static_la_SOURCES = $(key_large_sources) libkey_large_static_la_CFLAGS = @GENERIC_CFLAGS@ if ENABLE_MINIMAL MINIMAL_LIBS = libkey_large-minimal.la else MINIMAL_LIBS = endif noinst_LTLIBRARIES = $(STATIC_LIBS) $(MINIMAL_LIBS) if ENABLE_MINIMAL libkey_large_minimal_la_SOURCES = $(key_large_sources) libkey_large_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/plugin/key/Makefile.am0000644000175000017500000000005111131470543017043 0ustar fzfzSUBDIRS = key_common key_short key_large reiser4progs-1.0.7.orig/AUTHORS0000644000175000017500000000060611131470543013777 0ustar fzfzThis file is part of reiser4progs package Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by reiser4progs/COPYING. Yury Umanets (aka Umka) developed libreiser4, userspace plugins and userspace tools (reiser4progs). Vitaly Fertman developed librepair, userspace plugins repair code, fsck and worked on developing reiser4 library and userspace plugins with Umka. reiser4progs-1.0.7.orig/INSTALL0000644000175000017500000001722711131470543013767 0ustar fzfzBasic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. reiser4progs-1.0.7.orig/aclocal.m40000644000175000017500000101332611134132262014567 0ustar fzfz# generated automatically by aclocal 1.10 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_if(m4_PACKAGE_VERSION, [2.61],, [m4_fatal([this file was generated for autoconf 2.61. You have another version of autoconf. If you want to use that, you should regenerate the build system entirely.], [63])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # serial 51 AC_PROG_LIBTOOL # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If this macro is not defined by Autoconf, define it here. m4_ifdef([AC_PROVIDE_IFELSE], [], [m4_define([AC_PROVIDE_IFELSE], [m4_ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AC_PROG_LIBTOOL # --------------- AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. AC_PROVIDE_IFELSE([AC_PROG_CXX], [AC_LIBTOOL_CXX], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX ])]) dnl And a similar setup for Fortran 77 support AC_PROVIDE_IFELSE([AC_PROG_F77], [AC_LIBTOOL_F77], [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 ])]) dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [ifdef([AC_PROG_GCJ], [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([A][M_PROG_GCJ], [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([LT_AC_PROG_GCJ], [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) ])])# AC_PROG_LIBTOOL # _AC_PROG_LIBTOOL # ---------------- AC_DEFUN([_AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ])# _AC_PROG_LIBTOOL # AC_LIBTOOL_SETUP # ---------------- AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.50)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl AC_LIBTOOL_SYS_MAX_CMD_LEN AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE AC_LIBTOOL_OBJDIR AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' [sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] # Same as above, but do not quote variable references. [double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes AC_ARG_WITH([pic], [AC_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= AC_LIBTOOL_LANG_C_CONFIG _LT_AC_TAGCONFIG ])# AC_LIBTOOL_SETUP # _LT_AC_SYS_COMPILER # ------------------- AC_DEFUN([_LT_AC_SYS_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_AC_SYS_COMPILER # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. AC_DEFUN([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. AC_DEFUN([_LT_COMPILER_BOILERPLATE], [AC_REQUIRE([LT_AC_PROG_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. AC_DEFUN([_LT_LINKER_BOILERPLATE], [AC_REQUIRE([LT_AC_PROG_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ])# _LT_LINKER_BOILERPLATE # _LT_AC_SYS_LIBPATH_AIX # ---------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_AC_SYS_LIBPATH_AIX # _LT_AC_SHELL_INIT(ARG) # ---------------------- AC_DEFUN([_LT_AC_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_AC_SHELL_INIT # _LT_AC_PROG_ECHO_BACKSLASH # -------------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [_LT_AC_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) ])])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_LOCK # ----------- AC_DEFUN([_LT_AC_LOCK], [AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; ]) esac need_locks="$enable_libtool_lock" ])# _LT_AC_LOCK # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_REQUIRE([LT_AC_PROG_SED]) AC_CACHE_CHECK([$1], [$2], [$2=no ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $rm conftest* ]) if test x"[$]$2" = xyes; then ifelse([$5], , :, [$5]) else ifelse([$6], , :, [$6]) fi ])# AC_LIBTOOL_COMPILER_OPTION # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ------------------------------------------------------------ # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then ifelse([$4], , :, [$4]) else ifelse([$5], , :, [$5]) fi ])# AC_LIBTOOL_LINKER_OPTION # AC_LIBTOOL_SYS_MAX_CMD_LEN # -------------------------- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [# find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi ])# AC_LIBTOOL_SYS_MAX_CMD_LEN # _LT_AC_CHECK_DLFCN # ------------------ AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl ])# _LT_AC_CHECK_DLFCN # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # --------------------------------------------------------------------- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ---------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi ])# AC_LIBTOOL_DLOPEN_SELF # AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) # --------------------------------- # Check to see if options -c and -o are simultaneously supported by compiler AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* ]) ])# AC_LIBTOOL_PROG_CC_C_O # AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) # ----------------------------------------- # Check to see if we can do hard links to lock some files if needed AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_REQUIRE([_LT_AC_LOCK])dnl hard_links="nottested" if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi ])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS # AC_LIBTOOL_OBJDIR # ----------------- AC_DEFUN([AC_LIBTOOL_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir ])# AC_LIBTOOL_OBJDIR # AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) # ---------------------------------------------- # Check hardcoding attributes. AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_AC_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_AC_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_AC_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi ])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH # AC_LIBTOOL_SYS_LIB_STRIP # ------------------------ AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], [striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP # AC_LIBTOOL_SYS_DYNAMIC_LINKER # ----------------------------- # PORTME Fill in your ld.so characteristics AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" m4_if($1,[],[ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`echo $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER # _LT_AC_TAGCONFIG # ---------------- AC_DEFUN([_LT_AC_TAGCONFIG], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_ARG_WITH([tags], [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], [include additional configurations @<:@automatic@:>@])], [tagnames="$withval"]) if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then AC_MSG_WARN([output file `$ofile' does not exist]) fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) else AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in "") ;; *) AC_MSG_ERROR([invalid tag name: $tagname]) ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then AC_MSG_ERROR([tag name \"$tagname\" already exists]) fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then AC_LIBTOOL_LANG_F77_CONFIG else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then AC_LIBTOOL_LANG_GCJ_CONFIG else tagname="" fi ;; RC) AC_LIBTOOL_LANG_RC_CONFIG ;; *) AC_MSG_ERROR([Unsupported tag name: $tagname]) ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" AC_MSG_ERROR([unable to update list of available tagged configurations.]) fi fi ])# _LT_AC_TAGCONFIG # AC_LIBTOOL_DLOPEN # ----------------- # enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_DLOPEN # AC_LIBTOOL_WIN32_DLL # -------------------- # declare package support for building win32 DLLs AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_WIN32_DLL # AC_ENABLE_SHARED([DEFAULT]) # --------------------------- # implement the --enable-shared flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([shared], [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]AC_ENABLE_SHARED_DEFAULT) ])# AC_ENABLE_SHARED # AC_DISABLE_SHARED # ----------------- # set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no) ])# AC_DISABLE_SHARED # AC_ENABLE_STATIC([DEFAULT]) # --------------------------- # implement the --enable-static flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([static], [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]AC_ENABLE_STATIC_DEFAULT) ])# AC_ENABLE_STATIC # AC_DISABLE_STATIC # ----------------- # set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no) ])# AC_DISABLE_STATIC # AC_ENABLE_FAST_INSTALL([DEFAULT]) # --------------------------------- # implement the --enable-fast-install flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([fast-install], [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) ])# AC_ENABLE_FAST_INSTALL # AC_DISABLE_FAST_INSTALL # ----------------------- # set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no) ])# AC_DISABLE_FAST_INSTALL # AC_LIBTOOL_PICMODE([MODE]) # -------------------------- # implement the --with-pic flag # MODE is either `yes' or `no'. If omitted, it defaults to `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default) ])# AC_LIBTOOL_PICMODE # AC_PROG_EGREP # ------------- # This is predefined starting with Autoconf 2.54, so this conditional # definition can be removed once we require Autoconf 2.54 or later. m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi]) EGREP=$ac_cv_prog_egrep AC_SUBST([EGREP]) ])]) # AC_PATH_TOOL_PREFIX # ------------------- # find a file program which can recognize shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="ifelse([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi ])# AC_PATH_TOOL_PREFIX # AC_PATH_MAGIC # ------------- # find a file program which can recognize a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# AC_PATH_MAGIC # AC_PROG_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH([gnu-ld], [AC_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no]) AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown ])# AC_DEPLIBS_CHECK_METHOD # AC_PROG_NM # ---------- # find the pathname to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" ])# AC_PROG_NM # AC_CHECK_LIBM # ------------- # check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac ])# AC_CHECK_LIBM # AC_LIBLTDL_CONVENIENCE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, # it is assumed to be `libltdl'. LIBLTDL will be prefixed with # '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' # (note the single quotes!). If your package is not flat and you're not # using automake, define top_builddir and top_srcdir appropriately in # the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_CONVENIENCE # AC_LIBLTDL_INSTALLABLE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl installable library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, # and an installed libltdl is not found, it is assumed to be `libltdl'. # LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and top_srcdir # appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, lt_dlinit, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_INSTALLABLE # AC_LIBTOOL_CXX # -------------- # enable support for C++ libraries AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_LT_AC_LANG_CXX]) ])# AC_LIBTOOL_CXX # _LT_AC_LANG_CXX # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX # _LT_AC_PROG_CXXCPP # ------------------ AC_DEFUN([_LT_AC_PROG_CXXCPP], [ AC_REQUIRE([AC_PROG_CXX]) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP fi ])# _LT_AC_PROG_CXXCPP # AC_LIBTOOL_F77 # -------------- # enable support for Fortran 77 libraries AC_DEFUN([AC_LIBTOOL_F77], [AC_REQUIRE([_LT_AC_LANG_F77]) ])# AC_LIBTOOL_F77 # _LT_AC_LANG_F77 # --------------- AC_DEFUN([_LT_AC_LANG_F77], [AC_REQUIRE([AC_PROG_F77]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) ])# _LT_AC_LANG_F77 # AC_LIBTOOL_GCJ # -------------- # enable support for GCJ libraries AC_DEFUN([AC_LIBTOOL_GCJ], [AC_REQUIRE([_LT_AC_LANG_GCJ]) ])# AC_LIBTOOL_GCJ # _LT_AC_LANG_GCJ # --------------- AC_DEFUN([_LT_AC_LANG_GCJ], [AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) ])# _LT_AC_LANG_GCJ # AC_LIBTOOL_RC # ------------- # enable support for Windows resource files AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) ])# AC_LIBTOOL_RC # AC_LIBTOOL_LANG_C_CONFIG # ------------------------ # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) AC_DEFUN([_LT_AC_LANG_C_CONFIG], [lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_C_CONFIG # AC_LIBTOOL_LANG_CXX_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Dependencies to place before and after the object being linked: _LT_AC_TAGVAR(predep_objects, $1)= _LT_AC_TAGVAR(postdep_objects, $1)= _LT_AC_TAGVAR(predeps, $1)= _LT_AC_TAGVAR(postdeps, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration AC_PROG_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_AC_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before switch to ELF _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_AC_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_AC_TAGVAR(GCC, $1)="$GXX" _LT_AC_TAGVAR(LD, $1)="$LD" AC_LIBTOOL_POSTDEP_PREDEP($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ])# AC_LIBTOOL_LANG_CXX_CONFIG # AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) # ------------------------------------ # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_AC_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac ])# AC_LIBTOOL_POSTDEP_PREDEP # AC_LIBTOOL_LANG_F77_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) AC_DEFUN([_LT_AC_LANG_F77_CONFIG], [AC_REQUIRE([AC_PROG_F77]) AC_LANG_PUSH(Fortran 77) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_AC_TAGVAR(GCC, $1)="$G77" _LT_AC_TAGVAR(LD, $1)="$LD" AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_F77_CONFIG # AC_LIBTOOL_LANG_GCJ_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], [AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_CONFIG($1) AC_LANG_RESTORE CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_GCJ_CONFIG # AC_LIBTOOL_LANG_RC_CONFIG # ------------------------- # Ensure that the configuration vars for the Windows resource compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) AC_DEFUN([_LT_AC_LANG_RC_CONFIG], [AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes AC_LIBTOOL_CONFIG($1) AC_LANG_RESTORE CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_RC_CONFIG # AC_LIBTOOL_CONFIG([TAGNAME]) # ---------------------------- # If TAGNAME is not passed, then create an initial libtool script # with a default configuration from the untagged config vars. Otherwise # add code to config.status for appending the configuration named by # TAGNAME from the matching tagged config vars. AC_DEFUN([AC_LIBTOOL_CONFIG], [# The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ _LT_AC_TAGVAR(compiler, $1) \ _LT_AC_TAGVAR(CC, $1) \ _LT_AC_TAGVAR(LD, $1) \ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ _LT_AC_TAGVAR(old_archive_cmds, $1) \ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ _LT_AC_TAGVAR(predep_objects, $1) \ _LT_AC_TAGVAR(postdep_objects, $1) \ _LT_AC_TAGVAR(predeps, $1) \ _LT_AC_TAGVAR(postdeps, $1) \ _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ _LT_AC_TAGVAR(archive_cmds, $1) \ _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ _LT_AC_TAGVAR(postinstall_cmds, $1) \ _LT_AC_TAGVAR(postuninstall_cmds, $1) \ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ _LT_AC_TAGVAR(allow_undefined_flag, $1) \ _LT_AC_TAGVAR(no_undefined_flag, $1) \ _LT_AC_TAGVAR(export_symbols_cmds, $1) \ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ _LT_AC_TAGVAR(hardcode_automatic, $1) \ _LT_AC_TAGVAR(module_cmds, $1) \ _LT_AC_TAGVAR(module_expsym_cmds, $1) \ _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ _LT_AC_TAGVAR(fix_srcfile_path, $1) \ _LT_AC_TAGVAR(exclude_expsyms, $1) \ _LT_AC_TAGVAR(include_expsyms, $1); do case $var in _LT_AC_TAGVAR(old_archive_cmds, $1) | \ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ _LT_AC_TAGVAR(archive_cmds, $1) | \ _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ _LT_AC_TAGVAR(module_cmds, $1) | \ _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\[$]0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` ;; esac ifelse([$1], [], [cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" AC_MSG_NOTICE([creating $ofile])], [cfgfile="$ofile"]) cat <<__EOF__ >> "$cfgfile" ifelse([$1], [], [#! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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 of the License, 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; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG], [# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_[]_LT_AC_TAGVAR(LD, $1) # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) # Commands used to build and install a shared archive. archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) # Flag that forces no undefined symbols. no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) # The commands to list exported symbols. export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) # Symbols that must always be exported. include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) ifelse([$1],[], [# ### END LIBTOOL CONFIG], [# ### END LIBTOOL TAG CONFIG: $tagname]) __EOF__ ifelse([$1],[], [ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ]) else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ])# AC_LIBTOOL_CONFIG # AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi ])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([LT_AC_PROG_SED]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux* | k*bsd*-gnu) if test "$host_cpu" = ia64; then symcode='[[ABCDGIRSTW]]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[[]] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) # --------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], [_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) ifelse([$1],[CXX],[ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; icpc* | ecpc*) # Intel C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC*) # Portland Group C++ compiler. _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; vxworks*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; newsos6) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ;; esac # # Check to make sure the static flag actually works. # wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) ]) # AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) # ------------------------------------ # See if the linker supports building shared libraries. AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ifelse([$1],[CXX],[ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw*) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ;; *) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ],[ runpath_var= _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)= _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_AC_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. _LT_CC_BASENAME([$compiler]) case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_AC_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=yes _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # see comment about different semantics on the GNU ld section _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; bsdi[[45]]*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ;; dgux*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' if test "$GCC" = yes; then wlarc='${wl}' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_AC_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_AC_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_AC_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) _LT_AC_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac ])# AC_LIBTOOL_PROG_LD_SHLIBS # _LT_AC_FILE_LTDLL_C # ------------------- # Be careful that the start marker always follows a newline. AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ ])# _LT_AC_FILE_LTDLL_C # _LT_AC_TAGVAR(VARNAME, [TAGNAME]) # --------------------------------- AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) AC_DEFUN([LT_AC_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj, no) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS) ]) AC_DEFUN([LT_AC_PROG_RC], [AC_CHECK_TOOL(RC, windres, no) ]) # Cheap backport of AS_EXECUTABLE_P and required macros # from Autoconf 2.59; we should not use $as_executable_p directly. # _AS_TEST_PREPARE # ---------------- m4_ifndef([_AS_TEST_PREPARE], [m4_defun([_AS_TEST_PREPARE], [if test -x / >/dev/null 2>&1; then as_executable_p='test -x' else as_executable_p='test -f' fi ])])# _AS_TEST_PREPARE # AS_EXECUTABLE_P # --------------- # Check whether a file is executable. m4_ifndef([AS_EXECUTABLE_P], [m4_defun([AS_EXECUTABLE_P], [AS_REQUIRE([_AS_TEST_PREPARE])dnl $as_executable_p $1[]dnl ])])# AS_EXECUTABLE_P # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ]) # Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.10' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.10], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.10])dnl _AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.60])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer], USE_MAINTAINER_MODE=$enableval, USE_MAINTAINER_MODE=no) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST(MAINT)dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR reiser4progs-1.0.7.orig/depcomp0000755000175000017500000003554511131470543014316 0ustar fzfz#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2004-05-31.23 # Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # This program 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 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; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit 0 ;; -v | --v*) echo "depcomp $scriptversion" exit 0 ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # Dependencies are output in .lo.d with libtool 1.4. # With libtool 1.5 they are output both in $dir.libs/$base.o.d # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the # latter, because the former will be cleaned when $dir.libs is # erased. tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir$base.o.d" tmpdepfile3="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" tmpdepfile3="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" elif test -f "$tmpdepfile2"; then tmpdepfile="$tmpdepfile2" else tmpdepfile="$tmpdepfile3" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: reiser4progs-1.0.7.orig/reiser4progs.spec0000644000175000017500000000344611134132434016235 0ustar fzfz%define enable_debug 1 Name: reiser4progs Version: 1.0.7 Release: 1 Summary: Utilities for reiser4 filesystems License: GPL Group: System Environment/Base URL: http://www.namesys.com/ Source: reiser4progs-%{version}.tar.gz BuildRequires: libaal-devel BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description Utilities for manipulating reiser4 filesystems. %package devel Summary: Development libraries and headers for developing reiser4 tools. Group: Development/Libraries %description devel Development libraries and headers for developing reiser4 tools. %prep %setup -q %build %configure \ %if %{enable_debug} --enable-debug \ %else --disable-debug \ %endif --enable-libminimal \ --disable-plugins-check \ --disable-fnv1-hash \ --disable-rupasov-hash \ --disable-tea-hash \ --disable-deg-hash make %install rm -rf $RPM_BUILD_ROOT %makeinstall %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root) %doc AUTHORS BUGS COPYING CREDITS INSTALL NEWS README THANKS TODO %{_libdir}/libreiser4-1.0.so.* %{_libdir}/libreiser4-minimal-1.0.so.* %{_libdir}/librepair-1.0.so.* %{_sbindir}/debugfs.reiser4 %{_sbindir}/fsck.reiser4 %{_sbindir}/make_reiser4 %{_sbindir}/measurefs.reiser4 %{_sbindir}/mkfs.reiser4 %{_mandir}/man8/*.gz %files devel %dir %{_includedir}/reiser4 %{_includedir}/reiser4/*.h %{_includedir}/repair/*.h %{_datadir}/aclocal/libreiser4.m4 %{_libdir}/libreiser4.*a %{_libdir}/libreiser4-minimal.*a %{_libdir}/librepair.*a %changelog * Sat Aug 14 2004 neeo - Small update for 1.0 * Fri Aug 29 2003 Yuey V Umanets - Some cleanups and improvements inf this spec file * Wed Aug 27 2003 David T Hollis - RPM package created reiser4progs-1.0.7.orig/config.h.in0000644000175000017500000001224511134132266014754 0ustar fzfz/* config.h.in. Generated from configure.in by autoheader. */ /* Define for enable debug info. */ #undef ENABLE_DEBUG /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `getmntent' function. */ #undef HAVE_GETMNTENT /* Define to 1 if you have the `hasmntopt' function. */ #undef HAVE_HASMNTOPT /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `aal' library (-laal). */ #undef HAVE_LIBAAL /* Define to 1 if you have the `aal-minimal' library (-laal-minimal). */ #undef HAVE_LIBAAL_MINIMAL /* Define to 1 if you have the `readline' library (-lreadline). */ #undef HAVE_LIBREADLINE /* Define to 1 if you have the `uuid' library (-luuid). */ #undef HAVE_LIBUUID /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the header file. */ #undef HAVE_MNTENT_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_PRINTF_H /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_HISTORY_H /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_READLINE_H /* Define to 1 if you have the `register_printf_function' function. */ #undef HAVE_REGISTER_PRINTF_FUNCTION /* Define to 1 if you have the `rl_completion_matches' function. */ #undef HAVE_RL_COMPLETION_MATCHES /* Define to 1 if you have the `statfs' function. */ #undef HAVE_STATFS /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL /* Define to 1 if `st_rdev' is member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_RDEV /* Define to 1 if you have the `sysconf' function. */ #undef HAVE_SYSCONF /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MOUNT_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_VFS_H /* Define to 1 if you have the `time' function. */ #undef HAVE_TIME /* Define to 1 if you have the `uname' function. */ #undef HAVE_UNAME /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_UUID_UUID_H /* Define to the max interface version. */ #undef LIBREISER4_MAX_INTERFACE_VERSION /* Define to the min interface version. */ #undef LIBREISER4_MIN_INTERFACE_VERSION /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* The size of `off_t', as computed by sizeof. */ #undef SIZEOF_OFF_T /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ #undef WORDS_BIGENDIAN /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to `unsigned int' if does not define. */ #undef size_t reiser4progs-1.0.7.orig/Makefile.am0000644000175000017500000000120711131470543014761 0ustar fzfzSUBDIRS = libaux plugin libreiser4 librepair libmisc progs include doc demos EXTRA_DIST = AUTHORS COPYING TODO NEWS BUGS README CREDITS THANKS \ reiser4progs.spec.in reiser4progs.spec libreiser4.m4 \ one_touch_install INSTALL_README CUSTOM_INSTALL_README \ depcomp run-ldconfig aclocaldir = $(datadir)/aclocal aclocal_DATA = libreiser4.m4 define all-sources ( find ./ -name '*.[ch]' | grep -v SCCS | grep -v "Attic" | grep -v "reiser4progs" ) endef TAGS: $(all-sources) | etags - tags: $(all-sources) | xargs -- ctags -w -o TAGS install-exec-hook: ./run-ldconfig $(libdir) uninstall-hook: ./run-ldconfig $(libdir) reiser4progs-1.0.7.orig/ChangeLog0000644000175000017500000001154511134124646014510 0ustar fzfzThis file is part of reiser4progs package Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by reiser4progs/COPYING. This file may be modified and/or distributed without restriction. This is not an invitation to misrepresent the history of reiser4progs. 2008-01-09 1.0.7 version. 2008-01-09 Alias -p "preen" to -a "auto" for fsck. Bugfixes: - fixed bugs in CryptoCompression object plugin (incorrect handling of corrupted compressed bodies). - suppress messages about wrong bytes for CryptoCompression objects as in most cases it is because kernel doesn't support i_blocks and i_bytes for such objects because of performance issues. If wrong bytes is the result of fatal corruption, then fsck will detect and report it. 2006-02-22 1.0.6 version. 2006-01-13 Version control data is added into format40 disk format plugin. Version control data is added into backup blocks. Recover filesystems of both old and new formats - temporary. UPDATE_BACKUP_IS_NEEDED is added -- handle correctly cases when disk format is updated and backup blocks are not; fsck correctly. 2005-12-09 Heir plugin SET (HSET) is added. 2005-11-21 Bugfixes: - a lot of fixes in compression tail item plugin; - a lot of fixes in CryptoCompression object plugin; - a lot of fixes in common object plugin repair code; - in spec file. 2005-11-08 A lot of speedups. A lot of bugfixes. Demos/busy program update: crypto compression test is added. 2005-10-31 Bugfixes in truncate, clubber and check_struct methods of all object plugins. 2005-10-28 Compression plugin is added. CryptoCompression plugin is adjusted to handle compressed files. 2005-10-14 Bugfixes: - check the path given on a symlink creation; - check the possible file position overflow; - handle the cluster size of ctail items correctly. 2005-09-31 Crypto-Compression Object plugins is added. Fix the object creation: inherit always from the parent. Fix the pset storage policy. 2005-08-31 Compression tail item (ctail) plugin is added. 2005-08-16 The full support for Crypto-Compression plugins is added into PluginSet and libreiser4 profile. Crypto SD extention is edded. 2005-08-12 1.0.5 version. 2005-08-10 Installation fix. Return value fixes. Backup block handling fixes. 2005-06-28 Ability to link against libaal placed at arbitrary location is fixed. Unlink dir fix. Stat40 check_struct fix. Man pages for not ready utils are removed. Handle new (crc related) fields in plugin set correctly. Flush fs metadata fix (interrupt related). Do not flush dirty nodes if fsck fails. Recalculate bitmap checksums at the end of fsck if they are wrong. Do not update bitmaps after every fsck pass if no metadata found. 2005-03-23 nomkid option to fsck -- ability to recover reiser4 w/out mkid check. 2005-03-21 Large file handling fixes. 2005-03-16 Some casting fixes. 2005-02-21 Reg40 file body convertion fixes. 2005-02-20 The 1.0.4 version. 2005-02-19 A bugfix in file body convertion code. 2005-02-17 Enable libminimal by default. Do not configure empty utils(resizer, cpfs). 2005-01-30 Some bug fixes in tree balancing, fs check, syncing code. 2005-01-25 Some bug fixes in tree balancing code. 2005-01-20 Bug fixes: - in backup layout traverse code; - in insert extent item-by-item code; 2005-01-17 A way to recover fs metadata independently of the mkfs id is added. Bug fixes: - in repair code then a node has a pointer to itself; - in not aligned access to different object on-disk data. 2004-12-23 Bug fixes: - in initializing object id fields in SB; - in free blocks accounting; - in journal unpack code. 2004-12-12 Some bugfixes: - in object/extent truncate code are fixed. - in backup handling code is fixed. - sware about libaal version correctly. 2004-12-04 The version is 1.0.3 2004-12-01 The Pack/unpack journal code is written. Cleanups in program options. 2004-11-25 Build either all or none progs statically. The recover from unused space code is added. Could be used as undelete. 2004-11-24 The backup code is written. 2004-10-29 A bunch of bugs is fixed. 2004-10-21 Object detach/unlink methods are fixed. Fix the handling of special entries ('.', '..') in directory objects. The version is 1.0.2. 2004-10-15 File body write code (namely extent40 write) is rewritten and does work now. 2004-10-12 Make allocator CRC endian safe 2004-10-07 A bunch of bugs is fixed in the balancing code 2004-09-22 Change "stand alone" to "minimal footprint" 2004-09-21 Get rid of key collision problem is tree_scan 2004-09-16 sd_bytes fix for files larger then 4G. 2004-09-14 Make ldconfig to run automatically on 'make install'. 2004-09-13 Make r5 hash working correctly with extended ASCII characters. 2004-08-24 Some bugs are fixed: - in tree_scan method; - in reading extent items; - in man pages. Some optimisations for stand-alone are added. Version is 1.0.1. 2004-08-09 1.0.0 version is released. reiser4progs-1.0.7.orig/ltmain.sh0000644000175000017500000054603611131470543014563 0ustar fzfz# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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 of the License, 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; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.8 TIMESTAMP=" (1.1220.2.118 2004/08/07 12:24:38)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` if test "X$win32_nmres" = "Ximport" ; then win32_libid_type="x86 archive import" else win32_libid_type="x86 archive static" fi fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" status=$? if test "$status" -ne 0 && test ! -d "$my_xdir"; then exit $status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename $darwin_archive` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" # Remove the table of contents from the thin files. $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" $AR -xo "${darwin_base_archive}" rm "${darwin_base_archive}" cd "$darwin_curdir" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist rm -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir (cd $my_xdir && $AR x $my_xabs) || exit $? fi # $darwin_arches fi # $run ;; *) # We will extract separately just the conflicting names and we will # no longer touch any unique names. It is faster to leave these # extract automatically by $AR in one run. $show "(cd $my_xdir && $AR x $my_xabs)" $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $? if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 $AR t "$my_xabs" | sort | uniq -cd | while read -r count name do i=1 while test "$i" -le "$count" do # Put our $i before any first dot (extension) # Never overwrite any file name_to="$name" while test "X$name_to" = "X$name" || test -f "$my_xdir/$name_to" do name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` done $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$name' '$name_to')" $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $mv '$name' '$name_to')" || exit $? i=`expr $i + 1` done done fi ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2003 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $EXIT_SUCCESS ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $EXIT_SUCCESS ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $EXIT_SUCCESS ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case "$arg_mode" in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo $srcfile > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi fi build_libtool_libs=no build_old_libs=yes prefer_static_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit $EXIT_FAILURE fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-mingw* | *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # gcc -m* arguments should be passed to the linker via $compiler_flags # in order to pass architecture information to the linker # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo # but this is not reliable with gcc because gcc may use -mfoo to # select a different linker, different libraries, etc, while # -Wl,-mfoo simply passes -mfoo to the linker. -m*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" if test "$with_gcc" = "yes" ; then compiler_flags="$compiler_flags $arg" fi continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir status=$? if test "$status" -ne 0 && test ! -d "$output_objdir"; then exit $status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5* ) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else convenience="$convenience $dir/$old_library" old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$deplibs $path" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name="`expr $a_deplib : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$save_output-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$save_output-${k}.$objext k=`expr $k + 1` output=$output_objdir/$save_output-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadale object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$output.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' else $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) cwrappersource=`$echo ${objdir}/lt-${output}.c` cwrapper=`$echo ${output}.exe` $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR #define DIR_SEPARATOR '/' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) #define HAVE_DOS_BASED_FILE_SYSTEM #ifndef DIR_SEPARATOR_2 #define DIR_SEPARATOR_2 '\\' #endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); char * basename (const char *name); char * fnqualify(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup ((char *) basename (argv[0])); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = fnqualify(argv[0]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } char * basename (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha (name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return (char *) base; } char * fnqualify(const char *path) { size_t size; char *p; char tmp[LT_PATHMAX + 1]; assert(path != NULL); /* Is it qualified already? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha (path[0]) && path[1] == ':') return xstrdup (path); #endif if (IS_DIR_SEPARATOR (path[0])) return xstrdup (path); /* prepend the current directory */ /* doesn't handle '~' */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ p = XMALLOC(char, size); sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); return p; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \$progdir\\\\\$program \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \$progdir/\$program \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # GNU ar 2.10+ was changed to match POSIX; thus no paths are # encoded into archives. This makes 'ar r' malfunction in # this piecewise linking case whenever conflicting object # names appear in distinct ar calls; check, warn and compensate. if (for obj in $save_oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 AR_FLAGS=cq fi # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg="$nonopt" fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest="$arg" continue fi case $arg in -d) isdir=yes ;; -f) prev="-f" ;; -g) prev="-g" ;; -m) prev="-m" ;; -o) prev="-o" ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest="$arg" continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # To insure that "foo" is sourced, and not "foo.exe", # finese the cygwin/MSYS system by explicitly sourcing "foo." # which disallows the automatic-append-.exe behavior. case $build in *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; *) wrapperdot=${wrapper} ;; esac # If there is no directory component, then add one. case $file in */* | *\\*) . ${wrapperdot} ;; *) . ./${wrapperdot} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # To insure that "foo" is sourced, and not "foo.exe", # finese the cygwin/MSYS system by explicitly sourcing "foo." # which disallows the automatic-append-.exe behavior. case $build in *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; *) wrapperdot=${wrapper} ;; esac # If there is no directory component, then add one. case $file in */* | *\\*) . ${wrapperdot} ;; *) . ./${wrapperdot} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" save_umask=`umask` umask 0077 if $mkdir "$tmpdir"; then umask $save_umask else umask $save_umask $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyways case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "----------------------------------------------------------------------" $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "----------------------------------------------------------------------" exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\"\$cmd\"$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi eval \$echo \"\$cmd\"$args exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" if test "$mode" = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. fi fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $EXIT_SUCCESS # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: reiser4progs-1.0.7.orig/CREDITS0000644000175000017500000000656211131470543013756 0ustar fzfzThis file is part of reiser4progs package Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by reiser4progs/COPYING. Hans Reiser was the primary architect of Reiser4, but a whole team chipped their ideas in. He invested everything he had into Namesys for 5.5 dark years of no money before Reiser3 finally started to work well enough to bring in money. He owns the copyright. DARPA was the primary sponsor of Reiser4. DARPA does not endorse Reiser4, it merely sponsors it. DARPA is, in solely Hans's personal opinion, unique in its willingness to invest into things more theoretical than the VC community can readily understand, and more longterm than allows them to be sure that they will be the ones to extract the economic benefits from. DARPA also integrated us into a security community that transformed our security worldview. Vladimir Saveliev is our lead programmer, with us from the beginning, and he worked long hours writing the cleanest code. This is why he is now the lead programmer after years of commitment to our work. He always made the effort to be the best he could be, and to make his code the best that it could be. What resulted was quite remarkable. I don't think that money can ever motivate someone to work the way he did, he is one of the most selfless men I know. Alexander Lyamin was our sysadmin, and helped to educate us in security issues. Moscow State University and IMT were very generous in the internet access they provided us, and in lots of other little ways that a generous institution can be. Alexander Zarochentcev (sometimes known as zam, or sasha), wrote the locking code, the block allocator, and finished the flushing code. His code is always crystal clean and well structured. Nikita Danilov wrote the core of the balancing code, the core of the plugins code, and the directory code. He worked a steady pace of long hours that produced a whole lot of well abstracted code. He is our senior computer scientist. Vladimir Demidov wrote the parser. Writing an in kernel parser is something very few persons have the skills for, and it is thanks to him that we can say that the parser is really not so big compared to various bits of our other code, and making a parser work in the kernel was not so complicated as everyone would imagine mainly because it was him doing it... Joshua McDonald wrote the transaction manager, and the flush code. The flush code unexpectedly turned out be extremely hairy for reasons you can read about on our web page, and he did a great job on an extremely difficult task. Nina Reiser handled our accounting, government relations, and much more. Ramon Reiser developed our website. Beverly Palmer drew our graphics. Vitaly Fertman developed librepair, userspace plugins repair code, fsck and worked on developing libreiser4 and userspace plugins with Umka. Yury Umanets (aka Umka) developed libreiser4, userspace plugins and userspace tools (reiser4progs). Oleg Drokin (aka Green) is the release manager who fixes everything. It is so nice to have someone like that on the team. He (plus Chris and Jeff) make it possible for the entire rest of the Namesys team to focus on Reiser4, and he fixed a whole lot of Reiser4 bugs also. It is just amazing to watch his talent for spotting bugs in action. Edward Shishkin wrote cryptcompress file plugin and other plugins related to transparent crypto and compression support. reiser4progs-1.0.7.orig/INSTALL_README0000644000175000017500000000051611131470543014775 0ustar fzfzIn order to build the library, type the following command: ./one_touch_install This will check if configure script is in place and then runs it. After configuring is finished, package will be built and installed. Or if you want to have full control on build process and/or specify some options, read CUSTOM_INSTALL_README please. reiser4progs-1.0.7.orig/libreiser4/0000777000175000017500000000000011134133447014777 5ustar fzfzreiser4progs-1.0.7.orig/libreiser4/pset.c0000644000175000017500000002136211131470543016114 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. pset.c -- reiser4 plugin set (& heir set) functions. */ #include extern reiser4_profile_t defprof; rid_t pset_prof[PSET_LAST] = { [PSET_OBJ] = PROF_OBJ, [PSET_DIR] = PROF_DIR, [PSET_PERM] = PROF_PERM, [PSET_POLICY] = PROF_POLICY, [PSET_HASH] = PROF_HASH, [PSET_FIBRE] = PROF_FIBRE, [PSET_STAT] = PROF_STAT, [PSET_DIRITEM] = PROF_DIRITEM, [PSET_CRYPTO] = PROF_CRYPTO, [PSET_DIGEST] = PROF_DIGEST, [PSET_COMPRESS] = PROF_COMPRESS, [PSET_CMODE] = PROF_CMODE, [PSET_CLUSTER] = PROF_CLUSTER, [PSET_CREATE] = PROF_CREATE, #ifndef ENABLE_MINIMAL [PSET_TAIL] = PROF_TAIL, [PSET_EXTENT] = PROF_EXTENT, [PSET_CTAIL] = PROF_CTAIL, #endif }; #ifndef ENABLE_MINIMAL rid_t hset_prof[PSET_STORE_LAST] = { [PSET_OBJ] = PROF_LAST, [PSET_DIR] = PROF_LAST, [PSET_PERM] = PROF_LAST, [PSET_POLICY] = PROF_LAST, [PSET_HASH] = PROF_HEIR_HASH, [PSET_FIBRE] = PROF_HEIR_FIBRE, [PSET_STAT] = PROF_LAST, [PSET_DIRITEM] = PROF_HEIR_DIRITEM, [PSET_CRYPTO] = PROF_LAST, [PSET_DIGEST] = PROF_LAST, [PSET_COMPRESS] = PROF_LAST, [PSET_CMODE] = PROF_LAST, [PSET_CLUSTER] = PROF_LAST, [PSET_CREATE] = PROF_LAST, }; #endif #define PSET_UNUSED 0 #define HSET_UNUSED 0 #define pset_plugin_unused(id) ((1 << id) & PSET_UNUSED) #define hset_plugin_unused(id) ((1 << id) & HSET_UNUSED) #ifndef ENABLE_MINIMAL static int pset_tree_isready(reiser4_tree_t *tree) { return tree->ent.pset[PSET_HASH] != NULL; } #endif void reiser4_pset_complete(reiser4_tree_t *tree, object_info_t *info) { int i; #ifndef ENABLE_MINIMAL /* This is needed for root recovery. Tree is not initialized by that time yet. See repair_semantic_dir_open -> repair_object_obtain -> object.recognize. */ if (!pset_tree_isready(tree)) return reiser4_pset_root(info); #endif /* Only pset needs to be completed. */ for (i = 0; i < PSET_LAST; i++) { if (info->pset.plug_mask & (1 << i)) continue; info->pset.plug[i] = tree->ent.pset[i]; } } /* Returns NULL if @member is valid but there is no written plugins in the library for it yet (only @id == 0 are allowed). INVAL_PTR if plugin @id should present for @member in the library but nothing is found. Otherwise, returns the plugin pointer. */ static reiser4_plug_t *reiser4_pset_plug(rid_t member, rid_t id) { reiser4_plug_t *plug; aal_assert("vpf-1613", member < PSET_STORE_LAST); if (pset_plugin_unused(member)) return INVAL_PTR; if (defprof.pid[pset_prof[member]].id.type == PARAM_PLUG_TYPE) { #ifndef ENABLE_MINIMAL return id < defprof.pid[pset_prof[member]].max ? NULL : INVAL_PTR; #else return NULL; #endif } plug = reiser4_factory_ifind( defprof.pid[pset_prof[member]].id.type, id); return plug ? plug : INVAL_PTR; } #ifndef ENABLE_MINIMAL static reiser4_plug_t *reiser4_hset_plug(rid_t member, rid_t id) { aal_assert("vpf-1613", member < PSET_STORE_LAST); if (hset_plugin_unused(member)) return INVAL_PTR; return reiser4_factory_ifind( defprof.pid[hset_prof[member]].id.type, id) ? : INVAL_PTR; } #endif reiser4_plug_t *reiser4_pset_find(rid_t member, rid_t id, int is_pset) { return is_pset ? reiser4_pset_plug(member, id) : #ifndef ENABLE_MINIMAL reiser4_hset_plug(member, id); #else NULL; #endif } #ifndef ENABLE_MINIMAL /* Fill up missed pset slots in the root object. */ void reiser4_pset_root(object_info_t *info) { uint8_t i; aal_assert("vpf-1639", info != NULL); /* All plugins must present in the root. Get them from the profile. */ for (i = 0; i < PSET_LAST; i++) { if (info->pset.plug_mask & (1 << i)) continue; if (pset_plugin_unused(i)) continue; if (i == PSET_OBJ) { /* Special case: root file plug. */ info->pset.plug[i] = reiser4_profile_plug(PROF_DIRFILE); } else if (defprof.pid[pset_prof[i]].id.type == PARAM_PLUG_TYPE) { info->pset.plug[i] = (void *)defprof.pid[pset_prof[i]].id.id; } else { info->pset.plug[i] = reiser4_profile_plug(pset_prof[i]); } } for (i = 0; i < PSET_STORE_LAST; i++) { /* Set a hset plugin only if the plugin was overwritten in the profile. */ if (!aal_test_bit(&defprof.mask, hset_prof[i])) continue; if (hset_plugin_unused(i)) continue; info->hset.plug[i] = reiser4_profile_plug(hset_prof[i]); info->hset.plug_mask |= (1 << i); } } /* Builds & returns the difference between tree pset & the current @pset. */ uint64_t reiser4_pset_build_mask(reiser4_tree_t *tree, reiser4_pset_t *pset) { uint64_t mask; uint8_t i; aal_assert("vpf-1644", tree != NULL); aal_assert("vpf-1646", pset != NULL); mask = 0; if (!pset_tree_isready(tree)) { /* If HASH plugin is not initialized, no object exists. The special case for the root directory. All pset members must be stored. */ mask = (1 << PSET_STORE_LAST) - 1; /* Exception: There is no Dir plugins in progs. */ mask &= ~((1 << PSET_DIR) | PSET_UNUSED); return mask; } for (i = 0; i < PSET_STORE_LAST; i++) { if (pset_plugin_unused(i)) continue; /* Store if does not match the fs-default plugin. */ if (tree->ent.pset[i] != pset->plug[i]) mask |= (1 << i); /* Do not store if matches the fs-default plugin. */ if (tree->ent.pset[i] == pset->plug[i]) mask &= ~(1 << i); } /* Object plugin is always stored. */ mask |= (1 << PSET_OBJ); return mask; } #endif errno_t reiser4_tset_init(reiser4_tree_t *tree) { reiser4_plug_t *plug; rid_t pid; int i; aal_assert("vpf-1608", tree != NULL); aal_assert("vpf-1609", tree->fs != NULL); aal_assert("vpf-1610", tree->fs->format != NULL); /* Init the key plugin. */ pid = reiser4call(tree->fs->format, key_pid); if (!(plug = reiser4_factory_ifind(KEY_PLUG_TYPE, pid))) { aal_error("Can't find a key plugin by its id %d.", pid); return -EINVAL; } tree->ent.tset[TSET_KEY] = plug; tree->ent.tset[TSET_REGFILE] = reiser4_profile_plug(PROF_REGFILE); tree->ent.tset[TSET_DIRFILE] = reiser4_profile_plug(PROF_DIRFILE); tree->ent.tset[TSET_SYMFILE] = reiser4_profile_plug(PROF_SYMFILE); tree->ent.tset[TSET_SPLFILE] = reiser4_profile_plug(PROF_SPLFILE); /* Init other tset plugins. */ #ifndef ENABLE_MINIMAL tree->ent.tset[TSET_NODE] = reiser4_profile_plug(PROF_NODE); tree->ent.tset[TSET_NODEPTR] = reiser4_profile_plug(PROF_NODEPTR); #endif /* These plugins should be initialized at the tree init. Later they can be reinitialized with the root directory pset or anything else. */ /* Build the param pset mask, keep it in the tree instance. */ for (i = 0; i < PSET_LAST; i++) { if (defprof.pid[pset_prof[i]].id.type == PARAM_PLUG_TYPE) tree->ent.param_mask |= (1 << i); } return 0; } #ifndef ENABLE_MINIMAL errno_t reiser4_pset_tree(reiser4_tree_t *tree, int check) { uint64_t mask; int i; #else errno_t reiser4_pset_tree(reiser4_tree_t *tree) { #endif reiser4_object_t *object; aal_assert("vpf-1624", tree != NULL); if (!(object = reiser4_object_obtain(tree, NULL, &tree->key))) { aal_error("Failed to initialize the fs-global object " "plugin set: failed to open the root directory."); return -EINVAL; } aal_memcpy(tree->ent.pset, object->info.pset.plug, sizeof(reiser4_plug_t *) * PSET_LAST); #ifndef ENABLE_MINIMAL mask = object->info.pset.plug_mask; #endif reiser4_object_close(object); #ifndef ENABLE_MINIMAL /* Check that all 'on-disk' plugins are obtained. */ for (i = PSET_DIR + 1; i < PSET_STORE_LAST; i++) { /* If root should not be checked (debugfs), skip the loop. */ if (!check) break; if (pset_plugin_unused(i)) continue; if (mask & (1 << i)) { /* Set in mask & initialized. */ if (tree->ent.pset[i]) continue; /* Set in mask & PARAMETER. */ if (defprof.pid[pset_prof[i]].id.type == PARAM_PLUG_TYPE) { continue; } } /* Other cases are errors. */ aal_error("The slot %u in the fs-global object " "plugin set is not initialized.", i); return -EINVAL; } /* Set others from the profile. */ for (i = PSET_STORE_LAST; i < PSET_LAST; i++) { if (tree->ent.pset[i]) continue; tree->ent.pset[i] = reiser4_profile_plug(pset_prof[i]); } #endif return 0; } #ifndef ENABLE_MINIMAL errno_t reiser4_pset_backup(reiser4_tree_t *tree, backup_hint_t *hint) { struct reiser4_pset_backup *pset; char *p; int i; aal_assert("vpf-1908", hint != NULL); p = hint->block.data + hint->off[BK_PSET]; aal_strncpy(p, PSET_MAGIC, aal_strlen(PSET_MAGIC)); pset = (struct reiser4_pset_backup *)(p + aal_strlen(PSET_MAGIC)); if (!tree) return 0; for (i = 0; i < PSET_STORE_LAST; i++) { if (tree->ent.param_mask & (1 << i)) aal_set_le32(pset, id[i], (rid_t)tree->ent.pset[i]); else aal_set_le32(pset, id[i], tree->ent.pset[i]->id.id); } hint->off[BK_PSET + 1] += sizeof(rid_t) * (PSET_STORE_LAST + 5); return 0; } #endif reiser4progs-1.0.7.orig/libreiser4/oid.c0000644000175000017500000001300511131470543015707 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. oid.c -- oid allocator common code. */ #ifndef ENABLE_MINIMAL #include bool_t reiser4_oid_isdirty(reiser4_oid_t *oid) { uint32_t state; aal_assert("umka-2660", oid != NULL); state = reiser4call(oid, get_state); return (state & (1 << ENTITY_DIRTY)); } void reiser4_oid_mkdirty(reiser4_oid_t *oid) { uint32_t state; aal_assert("umka-2659", oid != NULL); state = reiser4call(oid, get_state); state |= (1 << ENTITY_DIRTY); reiser4call(oid, set_state, state); } void reiser4_oid_mkclean(reiser4_oid_t *oid) { uint32_t state; aal_assert("umka-2658", oid != NULL); state = reiser4call(oid, get_state); state &= ~(1 << ENTITY_DIRTY); reiser4call(oid, set_state, state); } /* Opens object allocator using start and end pointers */ reiser4_oid_t *reiser4_oid_open( reiser4_fs_t *fs) /* fs oid will be opened on */ { rid_t pid; reiser4_oid_t *oid; reiser4_plug_t *plug; aal_assert("umka-1698", fs != NULL); aal_assert("umka-519", fs->format != NULL); /* Allocating memory needed for instance */ if (!(oid = aal_calloc(sizeof(*oid), 0))) return NULL; oid->fs = fs; if ((pid = reiser4_format_oid_pid(fs->format)) == INVAL_PID) { aal_error("Invalid oid allocator plugin id " "has been detected."); goto error_free_oid; } /* Getting oid allocator plugin */ if (!(plug = reiser4_factory_ifind(OID_PLUG_TYPE, pid))) { aal_error("Can't find oid allocator plugin by " "its id 0x%x.", pid); goto error_free_oid; } /* Initializing oid allocator entity. */ if (!(oid->ent = plugcall((reiser4_oid_plug_t *)plug, open, fs->format->ent))) { aal_error("Can't open oid allocator %s.", plug->label); goto error_free_oid; } return oid; error_free_oid: aal_free(oid); return NULL; } /* Closes oid allocator */ void reiser4_oid_close( reiser4_oid_t *oid) /* oid allocator instance to be closed */ { aal_assert("umka-1507", oid != NULL); oid->fs->oid = NULL; reiser4call(oid, close); aal_free(oid); } /* Creates oid allocator in specified area */ reiser4_oid_t *reiser4_oid_create( reiser4_fs_t *fs) /* fs oid allocator will be oned on */ { rid_t pid; reiser4_oid_t *oid; reiser4_plug_t *plug; aal_assert("umka-729", fs != NULL); aal_assert("umka-1699", fs->format != NULL); /* Initializing instance */ if (!(oid = aal_calloc(sizeof(*oid), 0))) return NULL; oid->fs = fs; if ((pid = reiser4_format_oid_pid(fs->format)) == INVAL_PID) { aal_error("Invalid oid allocator plugin id " "has been detected."); goto error_free_oid; } /* Getting plugin from plugin id */ if (!(plug = reiser4_factory_ifind(OID_PLUG_TYPE, pid))) { aal_error("Can't find oid allocator plugin " "by its id 0x%x.", pid); goto error_free_oid; } /* Initializing oid allocator entity. */ if (!(oid->ent = plugcall((reiser4_oid_plug_t *)plug, create, fs->format->ent))) { aal_error("Can't create oid allocator %s.", plug->label); goto error_free_oid; } return oid; error_free_oid: aal_free(oid); return NULL; } /* Oid allocator enumerator */ errno_t reiser4_oid_layout(reiser4_oid_t *oid, region_func_t region_func, void *data) { aal_assert("umka-2198", oid != NULL); if (!oid->ent->plug->layout) return 0; return reiser4call(oid, layout, region_func, data); } /* Returns next object id from specified oid allocator */ oid_t reiser4_oid_lost_objectid(reiser4_oid_t *oid) { aal_assert("umka-1108", oid != NULL); return reiser4call(oid, lost_objectid); } /* Returns free object id from specified oid allocator */ oid_t reiser4_oid_allocate(reiser4_oid_t *oid) { aal_assert("umka-522", oid != NULL); return reiser4call(oid, allocate); } /* Releases passed objectid */ void reiser4_oid_release( reiser4_oid_t *oid, /* oid allocator to be used */ oid_t id) /* object id to be released */ { aal_assert("umka-525", oid != NULL); reiser4call(oid, release, id); } /* Synchronizes specified oid allocator */ errno_t reiser4_oid_sync(reiser4_oid_t *oid) { aal_assert("umka-735", oid != NULL); if (!reiser4_oid_isdirty(oid)) return 0; return reiser4call(oid, sync); } /* Returns number of used oids from passed oid allocator */ uint64_t reiser4_oid_get_used(reiser4_oid_t *oid) { aal_assert("umka-527", oid != NULL); return reiser4call(oid, get_used); } /* Returns number of used oids from passed oid allocator */ void reiser4_oid_set_used(reiser4_oid_t *oid, uint64_t used) { aal_assert("vpf-1798", oid != NULL); reiser4call(oid, set_used, used); } /* Returns number of free oids from passed oid allocator */ uint64_t reiser4_oid_free(reiser4_oid_t *oid) { aal_assert("umka-527", oid != NULL); return reiser4call(oid, free); } /* Returns the first not used oid from passed oid allocator */ uint64_t reiser4_oid_next(reiser4_oid_t *oid) { aal_assert("umka-527", oid != NULL); return reiser4call(oid, get_next); } /* Checks specified oid allocator for validness */ errno_t reiser4_oid_valid(reiser4_oid_t *oid) { aal_assert("umka-962", oid != NULL); return reiser4call(oid, valid); } /* Returns root parent objectid from specified oid allocator */ oid_t reiser4_oid_root_locality(reiser4_oid_t *oid) { aal_assert("umka-746", oid != NULL); return reiser4call(oid, root_locality); } /* Returns root objectid from specified oid allocator */ oid_t reiser4_oid_root_objectid(reiser4_oid_t *oid) { aal_assert("umka-747", oid != NULL); return reiser4call(oid, root_objectid, oid->ent); } #endif reiser4progs-1.0.7.orig/libreiser4/Makefile.in0000644000175000017500000027544711134132271017055 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libreiser4 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) @ENABLE_MINIMAL_TRUE@libreiser4_minimal_la_DEPENDENCIES = \ @ENABLE_MINIMAL_TRUE@ $(top_builddir)/libaux/libaux-minimal.la \ @ENABLE_MINIMAL_TRUE@ $(top_builddir)/plugin/libreiser4-plugin-minimal.la am__libreiser4_minimal_la_SOURCES_DIST = bitmap.c libreiser4.c \ filesystem.c format.c journal.c alloc.c oid.c factory.c node.c \ tree.c key.c object.c place.c master.c status.c backup.c \ item.c profile.c pset.c fake.c print.c semantic.c flow.c am__objects_1 = libreiser4_minimal_la-bitmap.lo \ libreiser4_minimal_la-libreiser4.lo \ libreiser4_minimal_la-filesystem.lo \ libreiser4_minimal_la-format.lo \ libreiser4_minimal_la-journal.lo \ libreiser4_minimal_la-alloc.lo libreiser4_minimal_la-oid.lo \ libreiser4_minimal_la-factory.lo libreiser4_minimal_la-node.lo \ libreiser4_minimal_la-tree.lo libreiser4_minimal_la-key.lo \ libreiser4_minimal_la-object.lo libreiser4_minimal_la-place.lo \ libreiser4_minimal_la-master.lo \ libreiser4_minimal_la-status.lo \ libreiser4_minimal_la-backup.lo libreiser4_minimal_la-item.lo \ libreiser4_minimal_la-profile.lo libreiser4_minimal_la-pset.lo \ libreiser4_minimal_la-fake.lo libreiser4_minimal_la-print.lo \ libreiser4_minimal_la-semantic.lo \ libreiser4_minimal_la-flow.lo @ENABLE_MINIMAL_TRUE@am_libreiser4_minimal_la_OBJECTS = \ @ENABLE_MINIMAL_TRUE@ $(am__objects_1) libreiser4_minimal_la_OBJECTS = $(am_libreiser4_minimal_la_OBJECTS) libreiser4_minimal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) \ $(libreiser4_minimal_la_LDFLAGS) $(LDFLAGS) -o $@ @ENABLE_MINIMAL_TRUE@am_libreiser4_minimal_la_rpath = -rpath $(libdir) libreiser4_static_la_DEPENDENCIES = \ $(top_builddir)/libaux/libaux-static.la \ $(top_builddir)/plugin/libreiser4-plugin.la am__objects_2 = libreiser4_static_la-bitmap.lo \ libreiser4_static_la-libreiser4.lo \ libreiser4_static_la-filesystem.lo \ libreiser4_static_la-format.lo libreiser4_static_la-journal.lo \ libreiser4_static_la-alloc.lo libreiser4_static_la-oid.lo \ libreiser4_static_la-factory.lo libreiser4_static_la-node.lo \ libreiser4_static_la-tree.lo libreiser4_static_la-key.lo \ libreiser4_static_la-object.lo libreiser4_static_la-place.lo \ libreiser4_static_la-master.lo libreiser4_static_la-status.lo \ libreiser4_static_la-backup.lo libreiser4_static_la-item.lo \ libreiser4_static_la-profile.lo libreiser4_static_la-pset.lo \ libreiser4_static_la-fake.lo libreiser4_static_la-print.lo \ libreiser4_static_la-semantic.lo libreiser4_static_la-flow.lo am_libreiser4_static_la_OBJECTS = $(am__objects_2) libreiser4_static_la_OBJECTS = $(am_libreiser4_static_la_OBJECTS) libreiser4_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libreiser4_static_la_CFLAGS) $(CFLAGS) \ $(libreiser4_static_la_LDFLAGS) $(LDFLAGS) -o $@ libreiser4_la_DEPENDENCIES = $(top_builddir)/libaux/libaux-static.la \ $(top_builddir)/plugin/libreiser4-plugin.la am__objects_3 = libreiser4_la-bitmap.lo libreiser4_la-libreiser4.lo \ libreiser4_la-filesystem.lo libreiser4_la-format.lo \ libreiser4_la-journal.lo libreiser4_la-alloc.lo \ libreiser4_la-oid.lo libreiser4_la-factory.lo \ libreiser4_la-node.lo libreiser4_la-tree.lo \ libreiser4_la-key.lo libreiser4_la-object.lo \ libreiser4_la-place.lo libreiser4_la-master.lo \ libreiser4_la-status.lo libreiser4_la-backup.lo \ libreiser4_la-item.lo libreiser4_la-profile.lo \ libreiser4_la-pset.lo libreiser4_la-fake.lo \ libreiser4_la-print.lo libreiser4_la-semantic.lo \ libreiser4_la-flow.lo am_libreiser4_la_OBJECTS = $(am__objects_3) libreiser4_la_OBJECTS = $(am_libreiser4_la_OBJECTS) libreiser4_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libreiser4_la_CFLAGS) \ $(CFLAGS) $(libreiser4_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libreiser4_minimal_la_SOURCES) \ $(libreiser4_static_la_SOURCES) $(libreiser4_la_SOURCES) DIST_SOURCES = $(am__libreiser4_minimal_la_SOURCES_DIST) \ $(libreiser4_static_la_SOURCES) $(libreiser4_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = -I$(top_srcdir)/include infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ libreiser4_sources = bitmap.c libreiser4.c filesystem.c format.c journal.c \ alloc.c oid.c factory.c node.c tree.c key.c object.c \ place.c master.c status.c backup.c item.c profile.c \ pset.c fake.c print.c semantic.c flow.c @ENABLE_MINIMAL_FALSE@MINIMAL_LIBS = @ENABLE_MINIMAL_TRUE@MINIMAL_LIBS = libreiser4-minimal.la lib_LTLIBRARIES = libreiser4.la $(MINIMAL_LIBS) noinst_LTLIBRARIES = libreiser4-static.la libreiser4_la_LIBADD = $(top_builddir)/libaux/libaux-static.la \ $(top_builddir)/plugin/libreiser4-plugin.la \ @AAL_LIBS@ libreiser4_la_SOURCES = $(libreiser4_sources) libreiser4_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ -release $(LT_RELEASE) libreiser4_la_CFLAGS = @GENERIC_CFLAGS@ libreiser4_static_la_LIBADD = $(top_builddir)/libaux/libaux-static.la \ $(top_builddir)/plugin/libreiser4-plugin.la \ @AAL_LIBS@ libreiser4_static_la_SOURCES = $(libreiser4_sources) libreiser4_static_la_CFLAGS = @GENERIC_CFLAGS@ libreiser4_static_la_LDFLAGS = -static @ENABLE_MINIMAL_TRUE@libreiser4_minimal_la_LIBADD = $(top_builddir)/libaux/libaux-minimal.la \ @ENABLE_MINIMAL_TRUE@ $(top_builddir)/plugin/libreiser4-plugin-minimal.la \ @ENABLE_MINIMAL_TRUE@ @AAL_MINIMAL_LIBS@ @ENABLE_MINIMAL_TRUE@libreiser4_minimal_la_SOURCES = $(libreiser4_sources) @ENABLE_MINIMAL_TRUE@libreiser4_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ @ENABLE_MINIMAL_TRUE@libreiser4_minimal_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ @ENABLE_MINIMAL_TRUE@ -release $(LT_RELEASE) INCLUDES = $(includedir) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libreiser4/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu libreiser4/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libreiser4-minimal.la: $(libreiser4_minimal_la_OBJECTS) $(libreiser4_minimal_la_DEPENDENCIES) $(libreiser4_minimal_la_LINK) $(am_libreiser4_minimal_la_rpath) $(libreiser4_minimal_la_OBJECTS) $(libreiser4_minimal_la_LIBADD) $(LIBS) libreiser4-static.la: $(libreiser4_static_la_OBJECTS) $(libreiser4_static_la_DEPENDENCIES) $(libreiser4_static_la_LINK) $(libreiser4_static_la_OBJECTS) $(libreiser4_static_la_LIBADD) $(LIBS) libreiser4.la: $(libreiser4_la_OBJECTS) $(libreiser4_la_DEPENDENCIES) $(libreiser4_la_LINK) -rpath $(libdir) $(libreiser4_la_OBJECTS) $(libreiser4_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-backup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-bitmap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-fake.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-filesystem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-flow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-format.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-journal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-key.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-libreiser4.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-master.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-node.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-oid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-place.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-print.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-pset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-semantic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-status.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_la-tree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-backup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-bitmap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-fake.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-filesystem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-flow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-format.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-journal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-key.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-libreiser4.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-master.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-node.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-oid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-place.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-print.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-pset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-semantic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-status.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_minimal_la-tree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-backup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-bitmap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-fake.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-filesystem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-flow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-format.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-journal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-key.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-libreiser4.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-master.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-node.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-oid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-place.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-print.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-pset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-semantic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-status.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreiser4_static_la-tree.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libreiser4_minimal_la-bitmap.lo: bitmap.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-bitmap.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-bitmap.Tpo -c -o libreiser4_minimal_la-bitmap.lo `test -f 'bitmap.c' || echo '$(srcdir)/'`bitmap.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-bitmap.Tpo $(DEPDIR)/libreiser4_minimal_la-bitmap.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bitmap.c' object='libreiser4_minimal_la-bitmap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-bitmap.lo `test -f 'bitmap.c' || echo '$(srcdir)/'`bitmap.c libreiser4_minimal_la-libreiser4.lo: libreiser4.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-libreiser4.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-libreiser4.Tpo -c -o libreiser4_minimal_la-libreiser4.lo `test -f 'libreiser4.c' || echo '$(srcdir)/'`libreiser4.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-libreiser4.Tpo $(DEPDIR)/libreiser4_minimal_la-libreiser4.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libreiser4.c' object='libreiser4_minimal_la-libreiser4.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-libreiser4.lo `test -f 'libreiser4.c' || echo '$(srcdir)/'`libreiser4.c libreiser4_minimal_la-filesystem.lo: filesystem.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-filesystem.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-filesystem.Tpo -c -o libreiser4_minimal_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-filesystem.Tpo $(DEPDIR)/libreiser4_minimal_la-filesystem.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filesystem.c' object='libreiser4_minimal_la-filesystem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c libreiser4_minimal_la-format.lo: format.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-format.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-format.Tpo -c -o libreiser4_minimal_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-format.Tpo $(DEPDIR)/libreiser4_minimal_la-format.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format.c' object='libreiser4_minimal_la-format.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c libreiser4_minimal_la-journal.lo: journal.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-journal.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-journal.Tpo -c -o libreiser4_minimal_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-journal.Tpo $(DEPDIR)/libreiser4_minimal_la-journal.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal.c' object='libreiser4_minimal_la-journal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c libreiser4_minimal_la-alloc.lo: alloc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-alloc.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-alloc.Tpo -c -o libreiser4_minimal_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-alloc.Tpo $(DEPDIR)/libreiser4_minimal_la-alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc.c' object='libreiser4_minimal_la-alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c libreiser4_minimal_la-oid.lo: oid.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-oid.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-oid.Tpo -c -o libreiser4_minimal_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-oid.Tpo $(DEPDIR)/libreiser4_minimal_la-oid.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid.c' object='libreiser4_minimal_la-oid.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c libreiser4_minimal_la-factory.lo: factory.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-factory.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-factory.Tpo -c -o libreiser4_minimal_la-factory.lo `test -f 'factory.c' || echo '$(srcdir)/'`factory.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-factory.Tpo $(DEPDIR)/libreiser4_minimal_la-factory.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='factory.c' object='libreiser4_minimal_la-factory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-factory.lo `test -f 'factory.c' || echo '$(srcdir)/'`factory.c libreiser4_minimal_la-node.lo: node.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-node.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-node.Tpo -c -o libreiser4_minimal_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-node.Tpo $(DEPDIR)/libreiser4_minimal_la-node.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node.c' object='libreiser4_minimal_la-node.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c libreiser4_minimal_la-tree.lo: tree.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-tree.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-tree.Tpo -c -o libreiser4_minimal_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-tree.Tpo $(DEPDIR)/libreiser4_minimal_la-tree.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tree.c' object='libreiser4_minimal_la-tree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c libreiser4_minimal_la-key.lo: key.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-key.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-key.Tpo -c -o libreiser4_minimal_la-key.lo `test -f 'key.c' || echo '$(srcdir)/'`key.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-key.Tpo $(DEPDIR)/libreiser4_minimal_la-key.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key.c' object='libreiser4_minimal_la-key.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-key.lo `test -f 'key.c' || echo '$(srcdir)/'`key.c libreiser4_minimal_la-object.lo: object.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-object.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-object.Tpo -c -o libreiser4_minimal_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-object.Tpo $(DEPDIR)/libreiser4_minimal_la-object.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='object.c' object='libreiser4_minimal_la-object.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c libreiser4_minimal_la-place.lo: place.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-place.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-place.Tpo -c -o libreiser4_minimal_la-place.lo `test -f 'place.c' || echo '$(srcdir)/'`place.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-place.Tpo $(DEPDIR)/libreiser4_minimal_la-place.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='place.c' object='libreiser4_minimal_la-place.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-place.lo `test -f 'place.c' || echo '$(srcdir)/'`place.c libreiser4_minimal_la-master.lo: master.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-master.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-master.Tpo -c -o libreiser4_minimal_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-master.Tpo $(DEPDIR)/libreiser4_minimal_la-master.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='master.c' object='libreiser4_minimal_la-master.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c libreiser4_minimal_la-status.lo: status.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-status.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-status.Tpo -c -o libreiser4_minimal_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-status.Tpo $(DEPDIR)/libreiser4_minimal_la-status.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='status.c' object='libreiser4_minimal_la-status.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c libreiser4_minimal_la-backup.lo: backup.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-backup.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-backup.Tpo -c -o libreiser4_minimal_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-backup.Tpo $(DEPDIR)/libreiser4_minimal_la-backup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='backup.c' object='libreiser4_minimal_la-backup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c libreiser4_minimal_la-item.lo: item.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-item.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-item.Tpo -c -o libreiser4_minimal_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-item.Tpo $(DEPDIR)/libreiser4_minimal_la-item.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='item.c' object='libreiser4_minimal_la-item.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c libreiser4_minimal_la-profile.lo: profile.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-profile.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-profile.Tpo -c -o libreiser4_minimal_la-profile.lo `test -f 'profile.c' || echo '$(srcdir)/'`profile.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-profile.Tpo $(DEPDIR)/libreiser4_minimal_la-profile.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='profile.c' object='libreiser4_minimal_la-profile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-profile.lo `test -f 'profile.c' || echo '$(srcdir)/'`profile.c libreiser4_minimal_la-pset.lo: pset.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-pset.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-pset.Tpo -c -o libreiser4_minimal_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-pset.Tpo $(DEPDIR)/libreiser4_minimal_la-pset.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pset.c' object='libreiser4_minimal_la-pset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c libreiser4_minimal_la-fake.lo: fake.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-fake.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-fake.Tpo -c -o libreiser4_minimal_la-fake.lo `test -f 'fake.c' || echo '$(srcdir)/'`fake.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-fake.Tpo $(DEPDIR)/libreiser4_minimal_la-fake.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fake.c' object='libreiser4_minimal_la-fake.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-fake.lo `test -f 'fake.c' || echo '$(srcdir)/'`fake.c libreiser4_minimal_la-print.lo: print.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-print.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-print.Tpo -c -o libreiser4_minimal_la-print.lo `test -f 'print.c' || echo '$(srcdir)/'`print.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-print.Tpo $(DEPDIR)/libreiser4_minimal_la-print.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='print.c' object='libreiser4_minimal_la-print.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-print.lo `test -f 'print.c' || echo '$(srcdir)/'`print.c libreiser4_minimal_la-semantic.lo: semantic.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-semantic.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-semantic.Tpo -c -o libreiser4_minimal_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-semantic.Tpo $(DEPDIR)/libreiser4_minimal_la-semantic.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='semantic.c' object='libreiser4_minimal_la-semantic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c libreiser4_minimal_la-flow.lo: flow.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -MT libreiser4_minimal_la-flow.lo -MD -MP -MF $(DEPDIR)/libreiser4_minimal_la-flow.Tpo -c -o libreiser4_minimal_la-flow.lo `test -f 'flow.c' || echo '$(srcdir)/'`flow.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_minimal_la-flow.Tpo $(DEPDIR)/libreiser4_minimal_la-flow.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flow.c' object='libreiser4_minimal_la-flow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_minimal_la_CFLAGS) $(CFLAGS) -c -o libreiser4_minimal_la-flow.lo `test -f 'flow.c' || echo '$(srcdir)/'`flow.c libreiser4_static_la-bitmap.lo: bitmap.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-bitmap.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-bitmap.Tpo -c -o libreiser4_static_la-bitmap.lo `test -f 'bitmap.c' || echo '$(srcdir)/'`bitmap.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-bitmap.Tpo $(DEPDIR)/libreiser4_static_la-bitmap.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bitmap.c' object='libreiser4_static_la-bitmap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-bitmap.lo `test -f 'bitmap.c' || echo '$(srcdir)/'`bitmap.c libreiser4_static_la-libreiser4.lo: libreiser4.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-libreiser4.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-libreiser4.Tpo -c -o libreiser4_static_la-libreiser4.lo `test -f 'libreiser4.c' || echo '$(srcdir)/'`libreiser4.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-libreiser4.Tpo $(DEPDIR)/libreiser4_static_la-libreiser4.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libreiser4.c' object='libreiser4_static_la-libreiser4.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-libreiser4.lo `test -f 'libreiser4.c' || echo '$(srcdir)/'`libreiser4.c libreiser4_static_la-filesystem.lo: filesystem.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-filesystem.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-filesystem.Tpo -c -o libreiser4_static_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-filesystem.Tpo $(DEPDIR)/libreiser4_static_la-filesystem.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filesystem.c' object='libreiser4_static_la-filesystem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c libreiser4_static_la-format.lo: format.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-format.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-format.Tpo -c -o libreiser4_static_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-format.Tpo $(DEPDIR)/libreiser4_static_la-format.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format.c' object='libreiser4_static_la-format.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c libreiser4_static_la-journal.lo: journal.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-journal.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-journal.Tpo -c -o libreiser4_static_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-journal.Tpo $(DEPDIR)/libreiser4_static_la-journal.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal.c' object='libreiser4_static_la-journal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c libreiser4_static_la-alloc.lo: alloc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-alloc.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-alloc.Tpo -c -o libreiser4_static_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-alloc.Tpo $(DEPDIR)/libreiser4_static_la-alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc.c' object='libreiser4_static_la-alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c libreiser4_static_la-oid.lo: oid.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-oid.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-oid.Tpo -c -o libreiser4_static_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-oid.Tpo $(DEPDIR)/libreiser4_static_la-oid.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid.c' object='libreiser4_static_la-oid.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c libreiser4_static_la-factory.lo: factory.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-factory.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-factory.Tpo -c -o libreiser4_static_la-factory.lo `test -f 'factory.c' || echo '$(srcdir)/'`factory.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-factory.Tpo $(DEPDIR)/libreiser4_static_la-factory.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='factory.c' object='libreiser4_static_la-factory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-factory.lo `test -f 'factory.c' || echo '$(srcdir)/'`factory.c libreiser4_static_la-node.lo: node.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-node.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-node.Tpo -c -o libreiser4_static_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-node.Tpo $(DEPDIR)/libreiser4_static_la-node.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node.c' object='libreiser4_static_la-node.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c libreiser4_static_la-tree.lo: tree.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-tree.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-tree.Tpo -c -o libreiser4_static_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-tree.Tpo $(DEPDIR)/libreiser4_static_la-tree.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tree.c' object='libreiser4_static_la-tree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c libreiser4_static_la-key.lo: key.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-key.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-key.Tpo -c -o libreiser4_static_la-key.lo `test -f 'key.c' || echo '$(srcdir)/'`key.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-key.Tpo $(DEPDIR)/libreiser4_static_la-key.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key.c' object='libreiser4_static_la-key.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-key.lo `test -f 'key.c' || echo '$(srcdir)/'`key.c libreiser4_static_la-object.lo: object.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-object.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-object.Tpo -c -o libreiser4_static_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-object.Tpo $(DEPDIR)/libreiser4_static_la-object.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='object.c' object='libreiser4_static_la-object.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c libreiser4_static_la-place.lo: place.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-place.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-place.Tpo -c -o libreiser4_static_la-place.lo `test -f 'place.c' || echo '$(srcdir)/'`place.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-place.Tpo $(DEPDIR)/libreiser4_static_la-place.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='place.c' object='libreiser4_static_la-place.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-place.lo `test -f 'place.c' || echo '$(srcdir)/'`place.c libreiser4_static_la-master.lo: master.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-master.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-master.Tpo -c -o libreiser4_static_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-master.Tpo $(DEPDIR)/libreiser4_static_la-master.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='master.c' object='libreiser4_static_la-master.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c libreiser4_static_la-status.lo: status.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-status.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-status.Tpo -c -o libreiser4_static_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-status.Tpo $(DEPDIR)/libreiser4_static_la-status.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='status.c' object='libreiser4_static_la-status.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c libreiser4_static_la-backup.lo: backup.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-backup.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-backup.Tpo -c -o libreiser4_static_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-backup.Tpo $(DEPDIR)/libreiser4_static_la-backup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='backup.c' object='libreiser4_static_la-backup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c libreiser4_static_la-item.lo: item.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-item.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-item.Tpo -c -o libreiser4_static_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-item.Tpo $(DEPDIR)/libreiser4_static_la-item.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='item.c' object='libreiser4_static_la-item.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c libreiser4_static_la-profile.lo: profile.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-profile.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-profile.Tpo -c -o libreiser4_static_la-profile.lo `test -f 'profile.c' || echo '$(srcdir)/'`profile.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-profile.Tpo $(DEPDIR)/libreiser4_static_la-profile.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='profile.c' object='libreiser4_static_la-profile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-profile.lo `test -f 'profile.c' || echo '$(srcdir)/'`profile.c libreiser4_static_la-pset.lo: pset.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-pset.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-pset.Tpo -c -o libreiser4_static_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-pset.Tpo $(DEPDIR)/libreiser4_static_la-pset.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pset.c' object='libreiser4_static_la-pset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c libreiser4_static_la-fake.lo: fake.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-fake.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-fake.Tpo -c -o libreiser4_static_la-fake.lo `test -f 'fake.c' || echo '$(srcdir)/'`fake.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-fake.Tpo $(DEPDIR)/libreiser4_static_la-fake.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fake.c' object='libreiser4_static_la-fake.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-fake.lo `test -f 'fake.c' || echo '$(srcdir)/'`fake.c libreiser4_static_la-print.lo: print.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-print.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-print.Tpo -c -o libreiser4_static_la-print.lo `test -f 'print.c' || echo '$(srcdir)/'`print.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-print.Tpo $(DEPDIR)/libreiser4_static_la-print.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='print.c' object='libreiser4_static_la-print.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-print.lo `test -f 'print.c' || echo '$(srcdir)/'`print.c libreiser4_static_la-semantic.lo: semantic.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-semantic.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-semantic.Tpo -c -o libreiser4_static_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-semantic.Tpo $(DEPDIR)/libreiser4_static_la-semantic.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='semantic.c' object='libreiser4_static_la-semantic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c libreiser4_static_la-flow.lo: flow.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -MT libreiser4_static_la-flow.lo -MD -MP -MF $(DEPDIR)/libreiser4_static_la-flow.Tpo -c -o libreiser4_static_la-flow.lo `test -f 'flow.c' || echo '$(srcdir)/'`flow.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_static_la-flow.Tpo $(DEPDIR)/libreiser4_static_la-flow.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flow.c' object='libreiser4_static_la-flow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_static_la_CFLAGS) $(CFLAGS) -c -o libreiser4_static_la-flow.lo `test -f 'flow.c' || echo '$(srcdir)/'`flow.c libreiser4_la-bitmap.lo: bitmap.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-bitmap.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-bitmap.Tpo -c -o libreiser4_la-bitmap.lo `test -f 'bitmap.c' || echo '$(srcdir)/'`bitmap.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-bitmap.Tpo $(DEPDIR)/libreiser4_la-bitmap.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bitmap.c' object='libreiser4_la-bitmap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-bitmap.lo `test -f 'bitmap.c' || echo '$(srcdir)/'`bitmap.c libreiser4_la-libreiser4.lo: libreiser4.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-libreiser4.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-libreiser4.Tpo -c -o libreiser4_la-libreiser4.lo `test -f 'libreiser4.c' || echo '$(srcdir)/'`libreiser4.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-libreiser4.Tpo $(DEPDIR)/libreiser4_la-libreiser4.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libreiser4.c' object='libreiser4_la-libreiser4.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-libreiser4.lo `test -f 'libreiser4.c' || echo '$(srcdir)/'`libreiser4.c libreiser4_la-filesystem.lo: filesystem.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-filesystem.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-filesystem.Tpo -c -o libreiser4_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-filesystem.Tpo $(DEPDIR)/libreiser4_la-filesystem.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filesystem.c' object='libreiser4_la-filesystem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-filesystem.lo `test -f 'filesystem.c' || echo '$(srcdir)/'`filesystem.c libreiser4_la-format.lo: format.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-format.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-format.Tpo -c -o libreiser4_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-format.Tpo $(DEPDIR)/libreiser4_la-format.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format.c' object='libreiser4_la-format.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c libreiser4_la-journal.lo: journal.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-journal.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-journal.Tpo -c -o libreiser4_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-journal.Tpo $(DEPDIR)/libreiser4_la-journal.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='journal.c' object='libreiser4_la-journal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-journal.lo `test -f 'journal.c' || echo '$(srcdir)/'`journal.c libreiser4_la-alloc.lo: alloc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-alloc.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-alloc.Tpo -c -o libreiser4_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-alloc.Tpo $(DEPDIR)/libreiser4_la-alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc.c' object='libreiser4_la-alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c libreiser4_la-oid.lo: oid.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-oid.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-oid.Tpo -c -o libreiser4_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-oid.Tpo $(DEPDIR)/libreiser4_la-oid.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oid.c' object='libreiser4_la-oid.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-oid.lo `test -f 'oid.c' || echo '$(srcdir)/'`oid.c libreiser4_la-factory.lo: factory.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-factory.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-factory.Tpo -c -o libreiser4_la-factory.lo `test -f 'factory.c' || echo '$(srcdir)/'`factory.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-factory.Tpo $(DEPDIR)/libreiser4_la-factory.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='factory.c' object='libreiser4_la-factory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-factory.lo `test -f 'factory.c' || echo '$(srcdir)/'`factory.c libreiser4_la-node.lo: node.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-node.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-node.Tpo -c -o libreiser4_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-node.Tpo $(DEPDIR)/libreiser4_la-node.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='node.c' object='libreiser4_la-node.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-node.lo `test -f 'node.c' || echo '$(srcdir)/'`node.c libreiser4_la-tree.lo: tree.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-tree.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-tree.Tpo -c -o libreiser4_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-tree.Tpo $(DEPDIR)/libreiser4_la-tree.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tree.c' object='libreiser4_la-tree.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-tree.lo `test -f 'tree.c' || echo '$(srcdir)/'`tree.c libreiser4_la-key.lo: key.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-key.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-key.Tpo -c -o libreiser4_la-key.lo `test -f 'key.c' || echo '$(srcdir)/'`key.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-key.Tpo $(DEPDIR)/libreiser4_la-key.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key.c' object='libreiser4_la-key.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-key.lo `test -f 'key.c' || echo '$(srcdir)/'`key.c libreiser4_la-object.lo: object.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-object.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-object.Tpo -c -o libreiser4_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-object.Tpo $(DEPDIR)/libreiser4_la-object.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='object.c' object='libreiser4_la-object.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-object.lo `test -f 'object.c' || echo '$(srcdir)/'`object.c libreiser4_la-place.lo: place.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-place.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-place.Tpo -c -o libreiser4_la-place.lo `test -f 'place.c' || echo '$(srcdir)/'`place.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-place.Tpo $(DEPDIR)/libreiser4_la-place.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='place.c' object='libreiser4_la-place.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-place.lo `test -f 'place.c' || echo '$(srcdir)/'`place.c libreiser4_la-master.lo: master.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-master.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-master.Tpo -c -o libreiser4_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-master.Tpo $(DEPDIR)/libreiser4_la-master.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='master.c' object='libreiser4_la-master.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-master.lo `test -f 'master.c' || echo '$(srcdir)/'`master.c libreiser4_la-status.lo: status.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-status.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-status.Tpo -c -o libreiser4_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-status.Tpo $(DEPDIR)/libreiser4_la-status.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='status.c' object='libreiser4_la-status.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-status.lo `test -f 'status.c' || echo '$(srcdir)/'`status.c libreiser4_la-backup.lo: backup.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-backup.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-backup.Tpo -c -o libreiser4_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-backup.Tpo $(DEPDIR)/libreiser4_la-backup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='backup.c' object='libreiser4_la-backup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-backup.lo `test -f 'backup.c' || echo '$(srcdir)/'`backup.c libreiser4_la-item.lo: item.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-item.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-item.Tpo -c -o libreiser4_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-item.Tpo $(DEPDIR)/libreiser4_la-item.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='item.c' object='libreiser4_la-item.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-item.lo `test -f 'item.c' || echo '$(srcdir)/'`item.c libreiser4_la-profile.lo: profile.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-profile.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-profile.Tpo -c -o libreiser4_la-profile.lo `test -f 'profile.c' || echo '$(srcdir)/'`profile.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-profile.Tpo $(DEPDIR)/libreiser4_la-profile.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='profile.c' object='libreiser4_la-profile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-profile.lo `test -f 'profile.c' || echo '$(srcdir)/'`profile.c libreiser4_la-pset.lo: pset.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-pset.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-pset.Tpo -c -o libreiser4_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-pset.Tpo $(DEPDIR)/libreiser4_la-pset.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pset.c' object='libreiser4_la-pset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-pset.lo `test -f 'pset.c' || echo '$(srcdir)/'`pset.c libreiser4_la-fake.lo: fake.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-fake.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-fake.Tpo -c -o libreiser4_la-fake.lo `test -f 'fake.c' || echo '$(srcdir)/'`fake.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-fake.Tpo $(DEPDIR)/libreiser4_la-fake.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fake.c' object='libreiser4_la-fake.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-fake.lo `test -f 'fake.c' || echo '$(srcdir)/'`fake.c libreiser4_la-print.lo: print.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-print.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-print.Tpo -c -o libreiser4_la-print.lo `test -f 'print.c' || echo '$(srcdir)/'`print.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-print.Tpo $(DEPDIR)/libreiser4_la-print.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='print.c' object='libreiser4_la-print.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-print.lo `test -f 'print.c' || echo '$(srcdir)/'`print.c libreiser4_la-semantic.lo: semantic.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-semantic.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-semantic.Tpo -c -o libreiser4_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-semantic.Tpo $(DEPDIR)/libreiser4_la-semantic.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='semantic.c' object='libreiser4_la-semantic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-semantic.lo `test -f 'semantic.c' || echo '$(srcdir)/'`semantic.c libreiser4_la-flow.lo: flow.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -MT libreiser4_la-flow.lo -MD -MP -MF $(DEPDIR)/libreiser4_la-flow.Tpo -c -o libreiser4_la-flow.lo `test -f 'flow.c' || echo '$(srcdir)/'`flow.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libreiser4_la-flow.Tpo $(DEPDIR)/libreiser4_la-flow.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flow.c' object='libreiser4_la-flow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreiser4_la_CFLAGS) $(CFLAGS) -c -o libreiser4_la-flow.lo `test -f 'flow.c' || echo '$(srcdir)/'`flow.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/libreiser4/master.c0000644000175000017500000001702211131470543016432 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. master.c -- master super block functions. */ #include #include #ifndef ENABLE_MINIMAL #include bool_t reiser4_master_isdirty(reiser4_master_t *master) { aal_assert("umka-2109", master != NULL); return master->dirty; } void reiser4_master_mkdirty(reiser4_master_t *master) { aal_assert("umka-2110", master != NULL); master->dirty = 1; } void reiser4_master_mkclean(reiser4_master_t *master) { aal_assert("umka-2111", master != NULL); master->dirty = 0; } /* This function checks master super block for validness */ errno_t reiser4_master_valid(reiser4_master_t *master) { aal_assert("umka-898", master != NULL); if (!aal_pow2(get_ms_blksize(SUPER(master)))) return -EINVAL; return 0; } /* Forms master super block disk structure */ reiser4_master_t *reiser4_master_create(aal_device_t *device, fs_hint_t *hint) { reiser4_master_t *master; aal_assert("umka-981", device != NULL); /* Allocating the memory for master super block struct */ if (!(master = aal_calloc(sizeof(*master), 0))) return NULL; /* Setting up magic. */ aal_strncpy(SUPER(master)->ms_magic, REISER4_MASTER_MAGIC, sizeof(REISER4_MASTER_MAGIC)); /* Setting up block filesystem used */ set_ms_blksize(SUPER(master), hint->blksize); reiser4_master_set_uuid(master, hint->uuid); reiser4_master_set_label(master, hint->label); master->dirty = 1; master->device = device; return master; } errno_t reiser4_master_backup(reiser4_master_t *master, backup_hint_t *hint) { aal_assert("vpf-1388", master != NULL); aal_assert("vpf-1389", hint != NULL); aal_memcpy(hint->block.data + hint->off[BK_MASTER], &master->ent, sizeof(master->ent)); hint->off[BK_MASTER + 1] = hint->off[BK_MASTER] + sizeof(master->ent); /* Reserve 8 bytes. */ aal_memset(hint->block.data + hint->off[BK_MASTER + 1], 0, 8); hint->off[BK_MASTER + 1] += 8; return 0; } errno_t reiser4_master_layout(reiser4_master_t *master, region_func_t region_func, void *data) { uint32_t blk; uint32_t blksize; aal_assert("vpf-1317", master != NULL); aal_assert("vpf-1317", region_func != NULL); blksize = get_ms_blksize(SUPER(master)); blk = REISER4_MASTER_BLOCKNR(blksize); return region_func(blk, 1, data); } /* Callback function for comparing plugins */ static errno_t cb_guess_format( reiser4_plug_t *plug, /* plugin to be checked */ void *data) /* needed plugin type */ { if (plug->id.type == FORMAT_PLUG_TYPE) { reiser4_format_ent_t *entity; aal_device_t *device; uint32_t blksize; device = (aal_device_t *)data; blksize = sysconf(_SC_PAGESIZE); if ((entity = plugcall((reiser4_format_plug_t *)plug, open, device, blksize))) { plugcall((reiser4_format_plug_t *)plug, close, entity); return 1; } } return 0; } reiser4_plug_t *reiser4_master_guess(aal_device_t *device) { /* Calls factory_cfind() (custom find) method in order to find convenient plugin with guess_format() callback function. */ return reiser4_factory_cfind(cb_guess_format, device); } #endif /* Reads master super block from disk */ reiser4_master_t *reiser4_master_open(aal_device_t *device) { aal_block_t *block; reiser4_master_t *master; aal_assert("umka-143", device != NULL); if (!(master = aal_calloc(sizeof(*master), 0))) return NULL; master->dirty = 0; master->device = device; /* Reading the block where master super block lies */ if (!(block = aal_block_load(device, device->blksize, REISER4_MASTER_BLOCKNR(device->blksize)))) { aal_fatal("Can't read master super block."); goto error_free_master; } /* Copying master super block */ aal_memcpy(SUPER(master), block->data, sizeof(*SUPER(master))); aal_block_free(block); /* Reiser4 master super block is not found on the device. */ if (aal_strncmp(SUPER(master)->ms_magic, REISER4_MASTER_MAGIC, sizeof(REISER4_MASTER_MAGIC)) != 0) { aal_fatal("Wrong magic found in the master " "super block."); goto error_free_master; } return master; error_free_master: aal_free(master); return NULL; } #ifndef ENABLE_MINIMAL /* Rereads master super block from the device */ errno_t reiser4_master_reopen(reiser4_master_t *master) { blk_t offset; uint32_t blksize; aal_block_t *block; aal_assert("umka-1576", master != NULL); blksize = master->device->blksize; offset = (blk_t)(REISER4_MASTER_BLOCKNR(blksize)); /* Reading the block where master super block lies */ if (!(block = aal_block_load(master->device, blksize, offset))) { aal_fatal("Can't read master super block " "at %llu.", offset); return -EIO; } /* Copying master super block */ aal_memcpy(SUPER(master), block->data, sizeof(*SUPER(master))); aal_block_free(block); return 0; } /* Saves master super block to device. */ errno_t reiser4_master_sync(reiser4_master_t *master) { errno_t res; blk_t offset; uint32_t blksize; aal_block_t *block; aal_assert("umka-145", master != NULL); if (!master->dirty) return 0; blksize = get_ms_blksize(SUPER(master)); offset = REISER4_MASTER_BLOCKNR(blksize); if (!(block = aal_block_alloc(master->device, blksize, offset))) { return -ENOMEM; } aal_block_fill(block, 0); aal_memcpy(block->data, SUPER(master), sizeof(*SUPER(master))); /* Writing master super block to its device */ if ((res = aal_block_write(block))) { aal_error("Can't write master super block " "at %llu. %s.", block->nr, block->device->error); goto error_free_block; } master->dirty = 0; error_free_block: aal_block_free(block); return res; } #endif /* Frees master super block occupied memory */ void reiser4_master_close(reiser4_master_t *master) { aal_assert("umka-1506", master != NULL); aal_free(master); } rid_t reiser4_master_get_format(reiser4_master_t *master) { aal_assert("umka-982", master != NULL); return get_ms_format(SUPER(master)); } uint32_t reiser4_master_get_blksize(reiser4_master_t *master) { aal_assert("umka-983", master != NULL); return get_ms_blksize(SUPER(master)); } #ifndef ENABLE_MINIMAL char *reiser4_master_get_magic(reiser4_master_t *master) { aal_assert("umka-982", master != NULL); return SUPER(master)->ms_magic; } char *reiser4_master_get_uuid(reiser4_master_t *master) { aal_assert("umka-984", master != NULL); return SUPER(master)->ms_uuid; } char *reiser4_master_get_label(reiser4_master_t *master) { aal_assert("umka-985", master != NULL); return SUPER(master)->ms_label; } void reiser4_master_set_format(reiser4_master_t *master, rid_t format) { aal_assert("umka-2496", master != NULL); set_ms_format(SUPER(master), format); master->dirty = 1; } void reiser4_master_set_blksize(reiser4_master_t *master, uint32_t blksize) { aal_assert("umka-2497", master != NULL); set_ms_blksize(SUPER(master), blksize); master->dirty = 1; } void reiser4_master_set_uuid(reiser4_master_t *master, char *uuid) { aal_assert("umka-2498", master != NULL); aal_memset(SUPER(master)->ms_uuid, 0, sizeof(SUPER(master)->ms_uuid)); if (uuid) { aal_strncpy(SUPER(master)->ms_uuid, uuid, sizeof(SUPER(master)->ms_uuid)); } master->dirty = 1; } void reiser4_master_set_label(reiser4_master_t *master, char *label) { aal_assert("umka-2500", master != NULL); aal_memset(SUPER(master)->ms_label, 0, sizeof(SUPER(master)->ms_label)); if (label) { aal_strncpy(SUPER(master)->ms_label, label, sizeof(SUPER(master)->ms_label)); } master->dirty = 1; } #endif reiser4progs-1.0.7.orig/libreiser4/journal.c0000644000175000017500000001426711131470543016621 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. journal.c -- reiser4 filesystem common journal code. */ #ifndef ENABLE_MINIMAL #include bool_t reiser4_journal_isdirty(reiser4_journal_t *journal) { uint32_t state; aal_assert("umka-2652", journal != NULL); state = reiser4call(journal, get_state); return (state & (1 << ENTITY_DIRTY)); } void reiser4_journal_mkdirty(reiser4_journal_t *journal) { uint32_t state; aal_assert("umka-2653", journal != NULL); state = reiser4call(journal, get_state); state |= (1 << ENTITY_DIRTY); reiser4call(journal, set_state, state); } void reiser4_journal_mkclean(reiser4_journal_t *journal) { uint32_t state; aal_assert("umka-2654", journal != NULL); state = reiser4call(journal, get_state); state &= ~(1 << ENTITY_DIRTY); reiser4call(journal, set_state, state); } /* This function opens journal on specified device and returns instance of opened journal. */ reiser4_journal_t *reiser4_journal_open( reiser4_fs_t *fs, /* fs journal will be opened on */ aal_device_t *device) /* device journal will be opened on */ { rid_t pid; blk_t start; count_t blocks; uint32_t blksize; reiser4_plug_t *plug; reiser4_journal_t *journal; aal_assert("umka-095", fs != NULL); aal_assert("umka-1695", fs->format != NULL); /* Allocating memory for journal instance and initialize its fields. */ if (!(journal = aal_calloc(sizeof(*journal), 0))) return NULL; journal->fs = fs; journal->device = device; journal->fs->journal = journal; if ((pid = reiser4_format_journal_pid(fs->format)) == INVAL_PID) { aal_error("Invalid journal plugin id has been found."); goto error_free_journal; } /* Getting plugin by its id from plugin factory */ if (!(plug = reiser4_factory_ifind(JOURNAL_PLUG_TYPE, pid))) { aal_error("Can't find journal plugin by its " "id 0x%x.", pid); goto error_free_journal; } start = reiser4_format_start(fs->format); blocks = reiser4_format_get_len(fs->format); blksize = reiser4_master_get_blksize(fs->master); /* Initializing journal entity by means of calling "open" method from found journal plugin. */ if (!(journal->ent = plugcall((reiser4_journal_plug_t *)plug, open, journal->device, blksize, fs->format->ent, fs->oid->ent, start, blocks))) { aal_error("Can't open journal %s on %s.", plug->label, device->name); goto error_free_journal; } return journal; error_free_journal: aal_free(journal); return NULL; } errno_t reiser4_journal_layout(reiser4_journal_t *journal, region_func_t region_func, void *data) { aal_assert("umka-1078", journal != NULL); aal_assert("umka-1079", region_func != NULL); return reiser4call(journal, layout, region_func, data); } static errno_t cb_action_mark(blk_t start, count_t width, void *data) { reiser4_fs_t *fs = (reiser4_fs_t *)data; errno_t res; if ((res = reiser4_format_dec_free(fs->format, width))) return res; return reiser4_alloc_occupy(fs->alloc, start, width); } /* Marks journal area as used */ errno_t reiser4_journal_mark(reiser4_journal_t *journal) { aal_assert("umka-1855", journal != NULL); aal_assert("umka-1856", journal->fs != NULL); aal_assert("umka-1856", journal->fs->alloc != NULL); return reiser4_journal_layout(journal, cb_action_mark, journal->fs); } /* Creates journal on specified jopurnal. Returns initialized instance */ reiser4_journal_t *reiser4_journal_create( reiser4_fs_t *fs, /* fs journal will be opened on */ aal_device_t *device) /* device journal will be created on */ { rid_t pid; blk_t start; count_t blocks; uint32_t blksize; reiser4_plug_t *plug; reiser4_journal_t *journal; aal_assert("umka-1697", fs != NULL); aal_assert("umka-1696", fs->format != NULL); /* Allocating memory and finding plugin */ if (!(journal = aal_calloc(sizeof(*journal), 0))) return NULL; journal->fs = fs; journal->device = device; /* Getting journal plugin to be used. */ if ((pid = reiser4_format_journal_pid(fs->format)) == INVAL_PID) { aal_error("Invalid journal plugin id has been found."); goto error_free_journal; } if (!(plug = reiser4_factory_ifind(JOURNAL_PLUG_TYPE, pid))) { aal_error("Can't find journal plugin by its id 0x%x.", pid); goto error_free_journal; } start = reiser4_format_start(fs->format); blocks = reiser4_format_get_len(fs->format); blksize = reiser4_master_get_blksize(fs->master); /* Creating journal entity. */ if (!(journal->ent = plugcall((reiser4_journal_plug_t *)plug, create, journal->device, blksize, fs->format->ent, fs->oid->ent, start, blocks))) { aal_error("Can't create journal %s on %s.", plug->label, journal->device->name); goto error_free_journal; } if (reiser4_journal_mark(journal)) { aal_error("Can't mark journal blocks used in " "block allocator."); goto error_free_entity; } return journal; error_free_entity: reiser4call(journal, close); error_free_journal: aal_free(journal); return NULL; } /* Replays specified @journal and returns error code as a result. As super block may fit into one of replayed transactions, it should be reopened after replay is finished. */ errno_t reiser4_journal_replay( reiser4_journal_t *journal) /* journal to be replayed */ { aal_assert("umka-727", journal != NULL); /* Calling plugin for actual replaying */ return reiser4call(journal, replay); } /* Saves journal structures on journal device */ errno_t reiser4_journal_sync( reiser4_journal_t *journal) /* journal to be saved */ { aal_assert("umka-100", journal != NULL); if (!reiser4_journal_isdirty(journal)) return 0; return reiser4call(journal, sync); } /* Checks journal structure for validness */ errno_t reiser4_journal_valid( reiser4_journal_t *journal) /* journal to be checked */ { aal_assert("umka-830", journal != NULL); return reiser4call(journal, valid); } /* Closes journal by means of freeing all assosiated memory */ void reiser4_journal_close( reiser4_journal_t *journal) /* jouranl to be closed */ { aal_assert("umka-102", journal != NULL); reiser4_journal_sync(journal); reiser4call(journal, close); aal_free(journal); } #endif reiser4progs-1.0.7.orig/libreiser4/item.c0000644000175000017500000001426311131470543016101 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. item.c -- common reiser4 item functions. */ #include /* Returns count of units in item. If count method is not implemented, it returns 1. */ uint32_t reiser4_item_units(reiser4_place_t *place) { aal_assert("umka-1030", place != NULL); aal_assert("umka-1448", place->plug != NULL); if (place->plug->balance->units) { return objcall(place, balance->units); } return 1; } #ifndef ENABLE_MINIMAL bool_t reiser4_item_statdata(reiser4_place_t *place) { aal_assert("umka-1831", place != NULL); aal_assert("umka-2382", place->plug != NULL); return place->plug->p.id.group == STAT_ITEM; } /* Returns item type from its plugin */ rid_t reiser4_item_type(reiser4_place_t *place) { aal_assert("vpf-424", place != NULL); aal_assert("vpf-425", place->plug != NULL); if (place->plug->p.id.type != ITEM_PLUG_TYPE) return LAST_ITEM; return (place->plug->p.id.group < LAST_ITEM ? place->plug->p.id.group : LAST_ITEM); } int reiser4_item_mergeable(reiser4_place_t *place1, reiser4_place_t *place2) { aal_assert("vpf-1428", place1 != NULL); aal_assert("vpf-1428", place2 != NULL); /* Check if plugins are equal */ if (!plug_equal(place1->plug, place2->plug)) return 0; /* Check if mergeable is implemented and calling it if it is. */ return place1->plug->balance->mergeable && place1->plug->balance->mergeable(place1, place2); } #endif /* Returns 1 if @place points to an nodeptr item. */ bool_t reiser4_item_branch(reiser4_item_plug_t *plug) { aal_assert("umka-1829", plug != NULL); return (plug->p.id.group == PTR_ITEM); } /* Returns maximal possible key may exist in item at @place. */ errno_t reiser4_item_maxposs_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("umka-1270", key != NULL); aal_assert("umka-1269", place != NULL); aal_assert("umka-1456", place->plug != NULL); aal_memcpy(key, &place->key, sizeof(*key)); if (!place->plug->balance->maxposs_key) return 0; return objcall(place, balance->maxposs_key, key); } #ifndef ENABLE_MINIMAL /* Returns real maximal item key */ errno_t reiser4_item_maxreal_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("vpf-352", key != NULL); aal_assert("vpf-351", place != NULL); aal_assert("umka-1457", place->plug != NULL); aal_memcpy(key, &place->key, sizeof(*key)); if (!place->plug->balance->maxreal_key) return 0; return objcall(place, balance->maxreal_key, key); } errno_t reiser4_item_update_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("vpf-1205", key != NULL); aal_assert("vpf-1205", place != NULL); aal_memcpy(&place->key, key, sizeof(*key)); return reiser4_node_update_key(place->node, &place->pos, &place->key); } #endif errno_t reiser4_item_get_key(reiser4_place_t *place, reiser4_key_t *key) { aal_assert("vpf-1290", place != NULL); aal_assert("vpf-1291", key != NULL); /* Getting key from item or node and updating it in passed @place. */ key->plug = place->key.plug; if (place->plug->balance->fetch_key && (place->pos.unit && place->pos.unit != MAX_UINT32)) { objcall(place, balance->fetch_key, key); } else { objcall(place->node, get_key, &place->pos, key); } return 0; } #ifndef ENABLE_MINIMAL errno_t reiser4_item_update_link(reiser4_place_t *place, blk_t blk) { trans_hint_t hint; ptr_hint_t ptr; aal_assert("umka-2668", place != NULL); /* Prepare @hint. */ hint.count = 1; hint.specific = &ptr; ptr.start = blk; ptr.width = 1; if (objcall(place, object->update_units, &hint) != 1) return -EIO; return 0; } uint16_t reiser4_item_overhead(reiser4_item_plug_t *plug) { aal_assert("vpf-1514", plug != NULL); aal_assert("vpf-1515", plug->p.id.type == ITEM_PLUG_TYPE); if (!plug->balance->overhead) return 0; return plugcall(plug->balance, overhead); } void reiser4_item_set_flag(reiser4_place_t *place, uint16_t flag) { uint16_t old; aal_assert("vpf-1041", place != NULL); aal_assert("vpf-1111", place->node != NULL); aal_assert("vpf-1530", flag < sizeof(flag) * 8 - 1); old = objcall(place->node, get_flags, place->pos.item); if (old & (1 << flag)) return; objcall(place->node, set_flags, place->pos.item, old | (1 << flag)); } void reiser4_item_clear_flag(reiser4_place_t *place, uint16_t flag) { uint16_t old; aal_assert("vpf-1531", place != NULL); aal_assert("vpf-1532", place->node != NULL); aal_assert("vpf-1533", flag < sizeof(flag) * 8 - 1); old = objcall(place->node, get_flags, place->pos.item); if (~old & (1 << flag)) return; objcall(place->node, set_flags, place->pos.item, old & ~(1 << flag)); } void reiser4_item_clear_flags(reiser4_place_t *place) { uint16_t old; aal_assert("vpf-1042", place != NULL); aal_assert("vpf-1112", place->node != NULL); old = objcall(place->node, get_flags, place->pos.item); if (!old) return; objcall(place->node, set_flags, place->pos.item, 0); } bool_t reiser4_item_test_flag(reiser4_place_t *place, uint16_t flag) { uint16_t old; aal_assert("vpf-1043", place != NULL); aal_assert("vpf-1113", place->node != NULL); aal_assert("vpf-1534", flag < sizeof(flag) * 8 - 1); old = objcall(place->node, get_flags, place->pos.item); return old & (1 << flag); } void reiser4_item_dup_flags(reiser4_place_t *place, uint16_t flags) { aal_assert("vpf-1540", place != NULL); objcall(place->node, set_flags, place->pos.item, flags); } uint16_t reiser4_item_get_flags(reiser4_place_t *place) { aal_assert("vpf-1541", place != NULL); return objcall(place->node, get_flags, place->pos.item); } lookup_t reiser4_item_collision(reiser4_place_t *place, coll_hint_t *hint) { aal_assert("vpf-1550", place != NULL); aal_assert("vpf-1551", place->plug != NULL); if (!place->plug->balance->collision) return PRESENT; return place->plug->balance->collision(place, hint); } #endif /* Return block number nodeptr item contains. */ blk_t reiser4_item_down_link(reiser4_place_t *place) { trans_hint_t hint; ptr_hint_t ptr; aal_assert("umka-2666", place != NULL); /* Prepare @hint. */ hint.count = 1; hint.specific = &ptr; if (objcall(place, object->fetch_units, &hint) != 1) return MAX_UINT64; return ptr.start; } reiser4progs-1.0.7.orig/libreiser4/object.c0000644000175000017500000005733611131470543016421 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. object.c -- common code for all reiser4 objects (regular files, directories, symlinks, etc). */ #include #include /* Init object pset by its SD. */ static errno_t reiser4_object_init(reiser4_object_t *object) { reiser4_place_t *start; sdhint_plug_t plugh; sdhint_plug_t heirh; trans_hint_t trans; stat_hint_t stat; errno_t res; aal_assert("umka-2380", object != NULL); aal_memset(&stat, 0, sizeof(stat)); aal_memset(&plugh, 0, sizeof(plugh)); aal_memset(&heirh, 0, sizeof(heirh)); /* Preparing hint and mask */ trans.specific = &stat; trans.place_func = NULL; trans.region_func = NULL; trans.shift_flags = SF_DEFAULT; stat.ext[SDEXT_PSET_ID] = &plugh; stat.ext[SDEXT_HSET_ID] = &heirh; start = &object->info.start; if (reiser4_place_valid(start)) { if ((res = reiser4_place_fetch(start))) return res; /* Init is allowed on a SD item only. */ if (start->plug->p.id.group != STAT_ITEM) return -EINVAL; } else { /* Init is allowed on a SD item only. */ return -EINVAL; } /* Getting object plugin by first item coord. */ if ((res = objcall(start, object->fetch_units, &trans)) != 1) return res; aal_memcpy(&object->info.pset, &plugh, sizeof(plugh)); aal_memcpy(&object->info.hset, &heirh, sizeof(heirh)); reiser4_pset_complete((reiser4_tree_t *)object->info.tree, &object->info); /* Object plugin must be detected. */ return reiser4_psobj(object) ? 0 : -EINVAL; } /* Tries to open object at @place. Uses @init_func for initializing object entity. It is needed, because libreiser4 itself uses one style of object entity initializing and librepair another one, but both they use some amount of common code, which was moved to this function and used by both in such a manner. */ reiser4_object_t *reiser4_object_prep(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_key_t *okey, reiser4_place_t *place) { reiser4_object_t *object; aal_assert("umka-1508", tree != NULL); aal_assert("umka-1509", place != NULL); aal_assert("vpf-1409", okey != NULL); if (!(object = aal_calloc(sizeof(*object), 0))) return NULL; /* Initializing object info. */ object->info.tree = (tree_entity_t *)tree; /* Putting object key to info struct. We may want to open and fix the object even if @place->key does not match @okey. */ aal_memcpy(&object->info.object, okey, sizeof(*okey)); /* Copying item coord. */ aal_memcpy(&object->info.start, place, sizeof(*place)); /* Parent is not passed. Using object's key as parent's one. */ if (parent) { aal_memcpy(&object->info.parent, &parent->info.object, sizeof(object->info.parent)); } /* Try to init on the StatData. */ if (reiser4_object_init(object)) { aal_free(object); return NULL; } return object; } /* This function opens object by its @place. */ reiser4_object_t *reiser4_object_open(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_place_t *place) { reiser4_object_t *object; aal_assert("vpf-1223", place != NULL); if (!(object = reiser4_object_prep(tree, parent, &place->key, place))) { return NULL; } if (plugcall(reiser4_psobj(object), open, object)) { aal_free(object); return NULL; } return object; } /* Try to open the object on the base of the given key. Lookup by @key + object_form. */ reiser4_object_t *reiser4_object_obtain(reiser4_tree_t *tree, reiser4_object_t *parent, reiser4_key_t *key) { lookup_hint_t hint; reiser4_place_t place; aal_assert("vpf-1136", tree != NULL); aal_assert("vpf-1185", key != NULL); hint.key = key; hint.level = LEAF_LEVEL; #ifndef ENABLE_MINIMAL hint.collision = NULL; #endif if (reiser4_tree_lookup(tree, &hint, FIND_EXACT, &place) != PRESENT) return NULL; /* The key must point to the start of the object. */ if (place.pos.unit != 0 && place.pos.unit != MAX_UINT32) return NULL; /* If the pointed item was found, object must be openable. @parent probably should be passed here. */ return reiser4_object_open(tree, parent, &place); } /* Returns object size. That is stat data field st_size. Actually it might be got by means of using object_stat() function, but, we implemented this function as helper, because using object_stat() is rather complicated due to somplex initializing stat data extensions to be loaded by it. */ uint64_t reiser4_object_size(reiser4_object_t *object) { stat_hint_t hint; sdhint_lw_t lwh; aal_assert("umka-1961", object != NULL); /* Initializing stat data hint. And namely extension mask of extension slot we are interested in. Size lies in light weight extension. */ aal_memset(&hint, 0, sizeof(hint)); /* FIXME-UMKA: Why object (on API abstraction level) knows, that size lies in LW extension? What if someone will move it to another one? */ hint.extmask = 1 << SDEXT_LW_ID; hint.ext[SDEXT_LW_ID] = &lwh; /* Calling objects stat() method. */ if (plugcall(reiser4_psobj(object), stat, object, &hint)) return 0; return lwh.size; } /* Closes specified object */ void reiser4_object_close(reiser4_object_t *object) { aal_assert("umka-680", object != NULL); if (reiser4_psobj(object)->close) reiser4_psobj(object)->close(object); aal_free(object); } #ifndef ENABLE_MINIMAL /* Adds @entry to @object */ errno_t reiser4_object_add_entry( reiser4_object_t *object, /* object for adding entry */ entry_hint_t *entry) /* entry hint to be added */ { aal_assert("umka-1975", object != NULL); if (!reiser4_psobj(object)->add_entry) return -EINVAL; return plugcall(reiser4_psobj(object), add_entry, object, entry); } /* Removes @entry to @object */ errno_t reiser4_object_rem_entry( reiser4_object_t *object, /* object for removing */ entry_hint_t *entry) /* entry hint to be added */ { aal_assert("umka-1977", object != NULL); if (!reiser4_psobj(object)->rem_entry) return -EINVAL; return plugcall(reiser4_psobj(object), rem_entry, object, entry); } errno_t reiser4_object_truncate( reiser4_object_t *object, /* object for truncating */ uint64_t n) /* the number of entries */ { aal_assert("umka-1154", object != NULL); return plugcall(reiser4_psobj(object), truncate, object, n); } /* Adds speficied entry into passed opened dir */ int64_t reiser4_object_write( reiser4_object_t *object, /* object for writing */ void *buff, /* new entries buffer */ uint64_t n) /* the number of entries to be created */ { aal_assert("umka-862", object != NULL); if (!reiser4_psobj(object)->write) return -EINVAL; return plugcall(reiser4_psobj(object), write, object, buff, n); } /* Updates object stat data coord by means of using tree_lookup(). */ errno_t reiser4_object_refresh(reiser4_object_t *object) { reiser4_tree_t *tree; lookup_hint_t hint; hint.level = LEAF_LEVEL; hint.key = &object->info.object; hint.collision = NULL; tree = (reiser4_tree_t *)object->info.tree; switch (reiser4_tree_lookup(tree, &hint, FIND_EXACT, object_start(object))) { case PRESENT: return 0; default: return -EINVAL; } } errno_t reiser4_object_entry_prep(reiser4_tree_t *tree, reiser4_object_t *parent, entry_hint_t *entry, const char *name) { aal_assert("vpf-1717", tree != NULL); aal_assert("vpf-1718", entry != NULL); aal_memset(entry, 0, sizeof(*entry)); if (name) { aal_strncpy(entry->name, name, sizeof(entry->name)); } /* Preparing @entry to be used for object creating and linking to parent object. This is name and offset key. */ if (parent) { if (!reiser4_psobj(parent)->build_entry) { aal_error("Object %s has not build_entry() method " "implemented. Is it dir object at all?", reiser4_print_inode(&parent->info.object)); return -EINVAL; } plugcall(reiser4_psobj(parent), build_entry, parent, entry); } else { aal_memcpy(&entry->offset, &tree->key, sizeof(tree->key)); } return 0; } /* Helper function for prepare object key to be used for creating new object. */ static void reiser4_object_maintain(reiser4_object_t *object, entry_hint_t *entry) { reiser4_tree_t *tree; oid_t locality; oid_t ordering; oid_t objectid; aal_assert("vpf-1715", entry != NULL); aal_assert("vpf-1714", object != NULL); aal_assert("vpf-1822", object->info.tree != NULL); /* Initializing fields and preparing the keys */ tree = (reiser4_tree_t *)object->info.tree; if (object->info.parent.plug) { /* Parent if defined, getting locality from it. */ objectid = reiser4_oid_allocate(tree->fs->oid); locality = reiser4_key_get_objectid(&object->info.parent); } else { /* Parent is not defined, root key is used. */ aal_memcpy(&object->info.parent, &tree->key, sizeof(tree->key)); locality = reiser4_key_get_locality(&tree->key); objectid = reiser4_key_get_objectid(&tree->key); reiser4_oid_set_used(tree->fs->oid, reiser4_oid_get_used(tree->fs->oid) + 1); } /* New object is identified by its locality and objectid. Set them to the @object->info.object key and plugin create method will build the whole key there. */ object->info.object.plug = tree->key.plug; /* Ordering component of key to be used for object. */ ordering = reiser4_key_get_ordering(&entry->offset); /* Building object stat data key. */ reiser4_key_build_generic(&object->info.object, KEY_STATDATA_TYPE, locality, ordering, objectid, 0); } errno_t reiser4_object_attach(reiser4_object_t *object, reiser4_object_t *parent) { errno_t res; aal_assert("vpf-1720", object != NULL); if (!reiser4_psobj(object)->attach) return 0; if ((res = plugcall(reiser4_psobj(object), attach, object, parent ? parent : NULL))) { aal_error("Can't attach %s to %s.", reiser4_print_inode(&object->info.object), parent == NULL ? "itself" : reiser4_print_inode(&parent->info.object)); } return res; } /* Detach the object from the parent. If parent is NULL, there is no checks it detaching is allowed or not. */ errno_t reiser4_object_detach(reiser4_object_t *object, reiser4_object_t *parent) { errno_t res; aal_assert("vpf-1721", object != NULL); if (!reiser4_psobj(object)->detach) return 0; if ((res = plugcall(reiser4_psobj(object), detach, object, parent ? parent : NULL))) { aal_error("Can't detach %s from %s.", reiser4_print_inode(&object->info.object), parent == NULL ? "itself" : reiser4_print_inode(&parent->info.object)); } return res; } /* Creates new object on specified filesystem */ reiser4_object_t *reiser4_object_create( entry_hint_t *entry, /* entry hint object to be used */ object_info_t *info, /* object init info */ object_hint_t *hint) /* object hint */ { reiser4_object_t *object; aal_assert("umka-1917", info != NULL); /* Allocating the memory for object instance */ if (!(object = aal_calloc(sizeof(*object), 0))) return NULL; aal_memcpy(&object->info, info, sizeof (*info)); /* Preparing object info. */ reiser4_object_maintain(object, entry); aal_assert("vpf-1823", reiser4_psobj(object) != NULL); /* Calling object plugin to create its body in the tree */ if (plugcall(reiser4_psobj(object), create, object, hint)) { aal_free(object); return NULL; } return object; } /* Removes object body and stat data */ errno_t reiser4_object_clobber(reiser4_object_t *object) { aal_assert("umka-2297", object != NULL); return plugcall(reiser4_psobj(object), clobber, object); } /* Links @child to @object if it is a directory */ errno_t reiser4_object_link(reiser4_object_t *object, reiser4_object_t *child, entry_hint_t *entry) { errno_t res; aal_assert("umka-1945", child != NULL); /* Check if we need to add entry in parent @object */ if (entry && object) { aal_memcpy(&entry->object, &child->info.object, sizeof(entry->offset)); if ((res = reiser4_object_add_entry(object, entry))) { aal_error("Can't add entry %s to %s.", entry->name, reiser4_print_inode(&object->info.object)); return res; } } /* Add one hard link to @child. */ if (reiser4_psobj(child)->link) { res = plugcall(reiser4_psobj(child), link, child); if (res) { aal_error("Can't link the object %s. ", reiser4_print_inode(&child->info.object)); goto error_rem_entry; } } /* Attach @child to @parent. */ if ((res = reiser4_object_attach(child, object))) goto error_unlink_child; return 0; error_unlink_child: if (reiser4_psobj(child)->unlink) { if (plugcall(reiser4_psobj(child), unlink, child)) { aal_error("Can't unlink the object %s.", reiser4_print_inode(&child->info.object)); } } error_rem_entry: if (reiser4_object_rem_entry(object, entry)) { aal_error("Can't remove entry %s in %s.", entry->name, reiser4_print_inode(&object->info.object)); } return res; } /* Removes entry from the @object if it is a directory */ errno_t reiser4_object_unlink(reiser4_object_t *object, char *name) { reiser4_object_t *child; reiser4_place_t place; reiser4_tree_t *tree; lookup_hint_t hint; entry_hint_t entry; errno_t res = 0; aal_assert("umka-1910", object != NULL); /* Getting entry poining to the child. */ if (reiser4_object_lookup(object, name, &entry) != PRESENT) { aal_error("Can't find entry %s in %s.", name, reiser4_print_inode(&object->info.object)); return -EINVAL; } if (entry.type == ET_SPCL) { aal_error("Can't unlink the special link '%s'.", name); return -EINVAL; } hint.level = LEAF_LEVEL; hint.key = &entry.object; hint.collision = NULL; tree = (reiser4_tree_t *)object->info.tree; /* Looking up for the victim's statdata place */ if (reiser4_tree_lookup(tree, &hint, FIND_EXACT, &place) != PRESENT) { char *key = reiser4_print_key(&entry.object); aal_error("Can't find an item pointed by %s. " "Entry %s/%s points to nowere.", key, reiser4_print_inode(&object->info.object), name); return -EINVAL; } /* Opening victim object by found place */ if (!(child = reiser4_object_open(tree, object, &place))) { aal_error("Can't open %s/%s. Object is corrupted?", reiser4_print_inode(&object->info.object), name); return -EINVAL; } /* Detach @child from parent. */ if ((res = reiser4_object_detach(child, object))) return res; /* Remove one hard link from child. */ if (reiser4_psobj(child)->unlink) { if ((res = plugcall(reiser4_psobj(child), unlink, child))) goto error_attach_child; } /* Removing entry from @object. */ if ((res = reiser4_object_rem_entry(object, &entry))) { aal_error("Can't remove entry %s in %s.", name, reiser4_print_inode(&object->info.object)); goto error_link_child; } reiser4_object_close(child); return 0; error_link_child: if (reiser4_psobj(child)->link) { if (plugcall(reiser4_psobj(child), link, child)) { aal_error("Can't link the object %s.", reiser4_print_inode(&child->info.object)); } } error_attach_child: reiser4_object_attach(child, object); reiser4_object_close(child); return res; } /* Enumerates all blocks passed @object occupies */ errno_t reiser4_object_layout( reiser4_object_t *object, /* object we working with */ region_func_t region_func, /* layout callback function */ void *data) /* user-specified data */ { aal_assert("umka-1469", object != NULL); aal_assert("umka-1470", region_func != NULL); if (!reiser4_psobj(object)->layout) return 0; return plugcall(reiser4_psobj(object), layout, object, region_func, data); } /* Enumerates all items object consists of */ errno_t reiser4_object_metadata( reiser4_object_t *object, /* object we working with */ place_func_t place_func, /* metadata layout callback */ void *data) /* user-spaecified data */ { aal_assert("umka-1714", object != NULL); aal_assert("umka-1715", place_func != NULL); if (!reiser4_psobj(object)->metadata) return 0; return plugcall(reiser4_psobj(object), metadata, object, place_func, data); } /* Makes lookup inside the @object */ lookup_t reiser4_object_lookup(reiser4_object_t *object, const char *name, entry_hint_t *entry) { aal_assert("umka-1919", object != NULL); aal_assert("umka-1920", name != NULL); if (!reiser4_psobj(object)->lookup) return -EINVAL; return plugcall(reiser4_psobj(object), lookup, object, (char *)name, (void *)entry); } /* Loads object stat data to @hint. */ errno_t reiser4_object_stat(reiser4_object_t *object, stat_hint_t *hint) { aal_assert("umka-2570", object != NULL); return plugcall(reiser4_psobj(object), stat, object, hint); } /* Resets directory position */ errno_t reiser4_object_reset( reiser4_object_t *object) /* dir to be reset */ { aal_assert("umka-842", object != NULL); aal_assert("umka-843", object != NULL); return plugcall(reiser4_psobj(object), reset, object); } /* Sets directory current position to passed pos */ errno_t reiser4_object_seek( reiser4_object_t *object, /* object position to be changed in */ uint32_t offset) /* offset for seeking */ { aal_assert("umka-1129", object != NULL); if (!reiser4_psobj(object)->seek) return -EINVAL; return plugcall(reiser4_psobj(object), seek, object, offset); } /* Change current position in passed @object if it is a directory */ errno_t reiser4_object_seekdir(reiser4_object_t *object, reiser4_key_t *offset) { aal_assert("umka-1979", object != NULL); aal_assert("umka-1980", offset != NULL); if (!reiser4_psobj(object)->seekdir) return -EINVAL; return plugcall(reiser4_psobj(object), seekdir, object, offset); } /* Returns current position in directory */ uint32_t reiser4_object_offset( reiser4_object_t *object) /* dir position will be obtained from */ { aal_assert("umka-875", object != NULL); return plugcall(reiser4_psobj(object), offset, object); } /* Return current position in passed @object if it is a directory */ errno_t reiser4_object_telldir(reiser4_object_t *object, reiser4_key_t *offset) { aal_assert("umka-1981", object != NULL); aal_assert("umka-1982", offset != NULL); if (!reiser4_psobj(object)->telldir) return -EINVAL; return plugcall(reiser4_psobj(object), telldir, object, offset); } /* Reads @n bytes of data at the current offset of @object to passed @buff. Returns numbers bytes read. */ int64_t reiser4_object_read( reiser4_object_t *object, /* object entry will be read from */ void *buff, /* buffer result will be stored in */ uint64_t n) /* buffer size */ { aal_assert("umka-860", object != NULL); if (!reiser4_psobj(object)->read) return -EINVAL; return plugcall(reiser4_psobj(object), read, object, buff, n); } /* Reads entry at current @object offset to passed @entry hint */ errno_t reiser4_object_readdir(reiser4_object_t *object, entry_hint_t *entry) { aal_assert("umka-1973", object != NULL); aal_assert("umka-1974", entry != NULL); if (!reiser4_psobj(object)->readdir) return -EINVAL; return plugcall(reiser4_psobj(object), readdir, object, entry); } /* Enumerates all enries in @object. Calls @open_func for each of them. Used in semanthic path in librepair. */ errno_t reiser4_object_traverse(reiser4_object_t *object, object_open_func_t open_func, void *data) { errno_t res; entry_hint_t entry; aal_assert("vpf-1090", object != NULL); aal_assert("vpf-1103", open_func != NULL); /* Check if object has readdir() method implemented. */ if (!reiser4_psobj(object)->readdir) return 0; /* Main loop until all entries enumerated. */ while ((res = reiser4_object_readdir(object, &entry)) > 0) { reiser4_object_t *child = NULL; /* Opening child object by @entry. */ if ((child = open_func(object, &entry, data)) == INVAL_PTR) return -EINVAL; if (child == NULL) continue; /* Making recursive call to object_traverse() in order to traverse new opened child object. */ res = reiser4_object_traverse(child, open_func, data); reiser4_object_close(child); if (res != 0) return res; } return res; } /* Completes object creating. */ static reiser4_object_t *reiser4_obj_create(reiser4_object_t *parent, object_info_t *info, object_hint_t *hint, const char *name) { reiser4_object_t *object; entry_hint_t entry; aal_assert("vpf-1849", parent != NULL); aal_assert("vpf-1849", info != NULL); aal_assert("vpf-1849", info->pset.plug[PSET_OBJ] != NULL); /* Preparing object hint */ /* Inherit from the parent. */ if (plugcall((reiser4_object_plug_t *)info->pset.plug[PSET_OBJ], inherit, info, &parent->info)) { return NULL; } aal_memcpy(&info->parent, &parent->info.object, sizeof(info->parent)); info->tree = parent->info.tree; if (reiser4_object_entry_prep((reiser4_tree_t *)info->tree, parent, &entry, name)) { return NULL; } entry.place_func = NULL; /* Creating object by passed parameters. */ if (!(object = reiser4_object_create(&entry, info, hint))) return NULL; if (parent) { if (reiser4_object_link(parent, object, &entry)) { reiser4_object_clobber(object); reiser4_object_close(object); return NULL; } } return object; } /* Creates directory. Uses params preset for all plugin. */ reiser4_object_t *reiser4_dir_create(reiser4_object_t *parent, const char *name) { object_info_t info; aal_assert("vpf-1053", parent != NULL); aal_memset(&info, 0, sizeof(info)); info.pset.plug[PSET_OBJ] = parent->info.tree->tset[TSET_DIRFILE]; info.pset.plug_mask |= (1 << PSET_OBJ); return reiser4_obj_create(parent, &info, NULL, name); } /* Creates regular file, using all plugins it need from profile. Links new created file to @parent with @name. */ reiser4_object_t *reiser4_reg_create(reiser4_object_t *parent, const char *name) { object_info_t info; aal_assert("vpf-1054", parent != NULL); aal_memset(&info, 0, sizeof(info)); info.pset.plug_mask |= (1 << PSET_OBJ); info.pset.plug[PSET_OBJ] = parent->info.tree->tset[TSET_REGFILE]; return reiser4_obj_create(parent, &info, NULL, name); } /* Creates symlink. Uses params preset for all plugin. */ reiser4_object_t *reiser4_sym_create(reiser4_object_t *parent, const char *name, const char *target) { object_hint_t hint; object_info_t info; aal_assert("vpf-1186", parent != NULL); aal_assert("vpf-1057", target != NULL); aal_memset(&hint, 0, sizeof(hint)); hint.str = (char *)target; aal_memset(&info, 0, sizeof(info)); info.pset.plug[PSET_OBJ] = parent->info.tree->tset[TSET_SYMFILE]; info.pset.plug_mask |= (1 << PSET_OBJ); return reiser4_obj_create(parent, &info, &hint, name); } /* Creates special file. Uses params preset for all plugin. */ reiser4_object_t *reiser4_spl_create(reiser4_object_t *parent, const char *name, uint32_t mode, uint64_t rdev) { object_hint_t hint; object_info_t info; aal_assert("umka-2534", parent != NULL); aal_assert("umka-2535", rdev != 0); aal_memset(&hint, 0, sizeof(hint)); hint.mode = mode; hint.rdev = rdev; aal_memset(&info, 0, sizeof(info)); info.pset.plug[PSET_OBJ] = parent->info.tree->tset[TSET_SPLFILE]; info.pset.plug_mask |= (1 << PSET_OBJ); return reiser4_obj_create(parent, &info, &hint, name); } /* Creates special file. Uses params preset for all plugin. */ reiser4_object_t *reiser4_ccreg_create(reiser4_object_t *parent, const char *name, const char *key) { object_hint_t hint; object_info_t info; aal_assert("umka-2534", parent != NULL); aal_memset(&hint, 0, sizeof(hint)); hint.str = (char *)key; aal_memset(&info, 0, sizeof(info)); info.pset.plug_mask |= (1 << PSET_OBJ); if (!(info.pset.plug[PSET_OBJ] = reiser4_factory_ifind(OBJECT_PLUG_TYPE, OBJECT_CCREG40_ID))) { aal_error("Can't find the CRC object plugin\n."); return NULL; } return reiser4_obj_create(parent, &info, &hint, name); } #endif reiser4progs-1.0.7.orig/libreiser4/alloc.c0000644000175000017500000001643211131470543016235 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. alloc.c -- reiser4 block allocator common code. */ #ifndef ENABLE_MINIMAL #include typedef enum alloc_init { ALLOC_OPEN, ALLOC_CREATE } alloc_init_t; bool_t reiser4_alloc_isdirty(reiser4_alloc_t *alloc) { uint32_t state; aal_assert("umka-2655", alloc != NULL); state = reiser4call(alloc, get_state); return (state & (1 << ENTITY_DIRTY)); } void reiser4_alloc_mkdirty(reiser4_alloc_t *alloc) { uint32_t state; aal_assert("umka-2656", alloc != NULL); state = reiser4call(alloc, get_state); state |= (1 << ENTITY_DIRTY); reiser4call(alloc, set_state, state); } void reiser4_alloc_mkclean(reiser4_alloc_t *alloc) { uint32_t state; aal_assert("umka-2657", alloc != NULL); state = reiser4call(alloc, get_state); state &= ~(1 << ENTITY_DIRTY); reiser4call(alloc, set_state, state); } /* Common block allocator init function. It is used for open, create and unpack block allocator instance. */ static reiser4_alloc_t *reiser4_alloc_init(reiser4_fs_t *fs, count_t blocks, alloc_init_t init) { rid_t pid; uint32_t blksize; reiser4_plug_t *plug; reiser4_alloc_t *alloc; /* Initializing instance of block allocator */ if (!(alloc = aal_calloc(sizeof(*alloc), 0))) return NULL; alloc->fs = fs; if ((pid = reiser4_format_alloc_pid(fs->format)) == INVAL_PID) { aal_error("Invalid block allocator plugin id has " "been found."); goto error_free_alloc; } /* Finding block allocator plugin */ if (!(plug = reiser4_factory_ifind(ALLOC_PLUG_TYPE, pid))) { aal_error("Can't find block allocator plugin by " "its id 0x%x.", pid); goto error_free_alloc; } blksize = reiser4_master_get_blksize(fs->master); /* Initializing block allocator entity. */ switch (init) { case ALLOC_OPEN: alloc->ent = plugcall((reiser4_alloc_plug_t *)plug, open, fs->device, blksize, blocks); break; case ALLOC_CREATE: alloc->ent = plugcall((reiser4_alloc_plug_t *)plug, create, fs->device, blksize, blocks); break; } if (!alloc->ent) { aal_error("Can't initialize block allocator."); goto error_free_alloc; } return alloc; error_free_alloc: aal_free(alloc); return NULL; } /* Initializes block allocator structures and make request to block allocator plugin for opening. Returns initialized instance, which may be used in all further operations. */ reiser4_alloc_t *reiser4_alloc_open( reiser4_fs_t *fs, /* fs allocator is going to be opened on */ count_t blocks) /* filesystem size in blocks */ { aal_assert("umka-135", fs != NULL); aal_assert("umka-135", fs->format != NULL); return reiser4_alloc_init(fs, blocks, ALLOC_OPEN); } /* Creates block allocator instance. Initializes all structures, calles block allocator plugin in order to initialize allocator instance and returns instance to caller. */ reiser4_alloc_t *reiser4_alloc_create( reiser4_fs_t *fs, /* fs block allocator is going to be created on */ count_t blocks) /* filesystem size in blocks */ { aal_assert("umka-726", fs != NULL); aal_assert("umka-1694", fs->format != NULL); return reiser4_alloc_init(fs, blocks, ALLOC_CREATE); } errno_t reiser4_alloc_assign(reiser4_alloc_t *alloc, reiser4_bitmap_t *bitmap) { aal_assert("vpf-582", alloc != NULL); aal_assert("umka-1848", bitmap != NULL); return reiser4call(alloc, assign, bitmap); } errno_t reiser4_alloc_extract(reiser4_alloc_t *alloc, reiser4_bitmap_t *bitmap) { aal_assert("umka-2191", alloc != NULL); aal_assert("umka-2192", bitmap != NULL); return reiser4call(alloc, extract, bitmap); } /* Make request to allocator plugin in order to save its data to device */ errno_t reiser4_alloc_sync( reiser4_alloc_t *alloc) /* allocator to be synced */ { aal_assert("umka-139", alloc != NULL); if (!reiser4_alloc_isdirty(alloc)) return 0; return reiser4call(alloc, sync); } /* Close passed allocator instance */ void reiser4_alloc_close( reiser4_alloc_t *alloc) /* allocator to be closed */ { aal_assert("umka-1504", alloc != NULL); alloc->fs->alloc = NULL; /* Calling the plugin for close its internal instance properly */ reiser4call(alloc, close); aal_free(alloc); } /* Returns the number of free blocks in allocator */ count_t reiser4_alloc_free( reiser4_alloc_t *alloc) /* allocator to be realeased */ { aal_assert("umka-362", alloc != NULL); return reiser4call(alloc, free); } /* Returns the number of used blocks in allocator */ count_t reiser4_alloc_used( reiser4_alloc_t *alloc) /* allocator used blocks will be obtained from */ { aal_assert("umka-499", alloc != NULL); return reiser4call(alloc, used); } /* Marks specified blocks as used */ errno_t reiser4_alloc_occupy( reiser4_alloc_t *alloc, /* allocator for working with */ blk_t start, /* start block to be marked */ count_t count) /* count to be marked */ { aal_assert("umka-501", alloc != NULL); reiser4call(alloc, occupy, start, count); if (alloc->hook.alloc) alloc->hook.alloc(alloc, start, count, alloc->hook.data); return 0; } /* Deallocs specified blocks */ errno_t reiser4_alloc_release( reiser4_alloc_t *alloc, /* allocator for wiorking with */ blk_t start, /* start block to be deallocated */ count_t count) /* count of blocks to be deallocated */ { errno_t res; aal_assert("umka-503", alloc != NULL); if ((res = reiser4call(alloc, release, start, count))) return res; if (alloc->hook.release) { alloc->hook.release(alloc, start, count, alloc->hook.data); } return 0; } /* Makes request to plugin for allocating block */ count_t reiser4_alloc_allocate( reiser4_alloc_t *alloc, /* allocator for working with */ blk_t *start, /* start block */ count_t count) /* requested block count */ { count_t blocks; aal_assert("umka-505", alloc != NULL); *start = 0; blocks = reiser4call(alloc, allocate, start, count); if (blocks && alloc->hook.alloc) alloc->hook.alloc(alloc, *start, blocks, alloc->hook.data); return blocks; } errno_t reiser4_alloc_valid( reiser4_alloc_t *alloc) /* allocator to be checked */ { aal_assert("umka-833", alloc != NULL); return reiser4call(alloc, valid); } /* Returns TRUE if specified blocks are used. */ bool_t reiser4_alloc_occupied( reiser4_alloc_t *alloc, /* allocator for working with */ blk_t start, /* start block to be tested (used or not) */ count_t count) /* count of blocks to be tested */ { aal_assert("umka-662", alloc != NULL); return reiser4call(alloc, occupied, start, count); } /* Returns TRUE if specified blocks are unused. */ bool_t reiser4_alloc_available( reiser4_alloc_t *alloc, /* allocator for working with */ blk_t start, /* start block to be tested (used or not) */ count_t count) /* count of blocks to be tested */ { aal_assert("umka-662", alloc != NULL); return reiser4call(alloc, available, start, count); } errno_t reiser4_alloc_layout(reiser4_alloc_t *alloc, region_func_t region_func, void *data) { aal_assert("umka-1080", alloc != NULL); aal_assert("umka-1081", region_func != NULL); return reiser4call(alloc, layout, region_func, data); } errno_t reiser4_alloc_region(reiser4_alloc_t *alloc, blk_t blk, region_func_t func, void *data) { aal_assert("vpf-557", alloc != NULL); return reiser4call(alloc, region, blk, func, data); } #endif reiser4progs-1.0.7.orig/libreiser4/bitmap.c0000644000175000017500000002644011131470543016417 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. bitmap.c -- bitmap functions. Bitmap is used by bitmap-based block allocator plugin. */ #ifndef ENABLE_MINIMAL #include /* This macros is used for checking whether given block is inside of allowed range or not. It is used in all bitmap functions. */ #define reiser4_bitmap_bound_check(bitmap, bit, action) \ do { \ if (bit >= bitmap->total) { \ action; \ } \ } while (0) /* Checks whether passed block is inside of bitmap and marks it. This function also increases marked block counter. */ void reiser4_bitmap_mark( reiser4_bitmap_t *bitmap, /* bitmap, bit will be marked in */ uint64_t bit) /* bit to be marked */ { aal_assert("umka-336", bitmap != NULL); reiser4_bitmap_bound_check(bitmap, bit, return); if (aal_test_bit(bitmap->map, bit)) return; aal_set_bit(bitmap->map, bit); bitmap->marked++; } /* Checks whether passed block is inside of bitmap and clears it. This function also descreases marked block counter. */ void reiser4_bitmap_clear( reiser4_bitmap_t *bitmap, /* bitmap, passed blk will be marked in */ uint64_t bit) /* bit to be cleared */ { aal_assert("umka-337", bitmap != NULL); reiser4_bitmap_bound_check(bitmap, bit, return); if (!aal_test_bit(bitmap->map, bit)) return; aal_clear_bit(bitmap->map, bit); bitmap->marked--; } /* Checks whether passed block is inside of bitmap and test it. Returns TRUE if block is marked, FALSE otherwise. */ int reiser4_bitmap_test( reiser4_bitmap_t *bitmap, /* bitmap, passed blk will be tested */ uint64_t bit) /* bit to be tested */ { aal_assert("umka-338", bitmap != NULL); reiser4_bitmap_bound_check(bitmap, bit, return 0); return aal_test_bit(bitmap->map, bit); } /* Makes loop through bitmap and calculates the number of marked/cleared blocks in it. This function is used for checking the bitmap on validness. Also it is used for calculating marked blocks of bitmap in reiser4_bitmap_open function. See bellow for details. */ static uint64_t reiser4_bitmap_calc( reiser4_bitmap_t *bitmap, /* bitmap will be used for calculating bits */ uint64_t start, /* start bit, calculating should be performed from */ uint64_t count, /* end bit, calculating should be stoped on */ int marked) /* flag for kind of calculating (marked or cleared) */ { uint64_t i, bits = 0; for (i = start; i < start + count; i++) bits += reiser4_bitmap_test(bitmap, i) ? marked : !marked; return bits; } /* Checks whether passed range of blocks is inside of bitmap and marks blocks. This function also increseas marked block counter. */ void reiser4_bitmap_mark_region( reiser4_bitmap_t *bitmap, /* bitmap for working with */ uint64_t start, /* start bit of the region */ uint64_t count) /* bit count to be marked */ { uint64_t num; aal_assert("vpf-472", bitmap != NULL); reiser4_bitmap_bound_check(bitmap, start, return); reiser4_bitmap_bound_check(bitmap, start + count - 1, return); num = reiser4_bitmap_calc(bitmap, start, count, 0); aal_set_bits(bitmap->map, start, count); bitmap->marked += num; } /* Checks whether passed range of blocks is inside of bitmap and clears blocks. This function also descreases marked block counter. */ void reiser4_bitmap_clear_region( reiser4_bitmap_t *bitmap, /* bitmap range of blocks will be cleared in */ uint64_t start, /* start bit of the range */ uint64_t count) /* bit count to be clean */ { uint64_t num; aal_assert("vpf-473", bitmap != NULL); reiser4_bitmap_bound_check(bitmap, start, return); reiser4_bitmap_bound_check(bitmap, start + count - 1, return); num = reiser4_bitmap_calc(bitmap, start, count, 1); aal_clear_bits(bitmap->map, start, count); bitmap->marked -= num; } /* Finds first cleared bit in bitmap, starting from passed "start" */ uint64_t reiser4_bitmap_find_cleared( reiser4_bitmap_t *bitmap, /* bitmap, clear bit will be searched in */ uint64_t start) /* start bit, search should be performed from */ { uint64_t bit; aal_assert("umka-339", bitmap != NULL); reiser4_bitmap_bound_check(bitmap, start, return INVAL_BLK); bit = aal_find_next_zero_bit(bitmap->map, bitmap->total, start); if (bit >= bitmap->total) return INVAL_BLK; return bit; } /* Finds first marked in bitmap block, starting from passed "start" */ uint64_t reiser4_bitmap_find_marked( reiser4_bitmap_t *bitmap, /* bitmap, marked bit to be searched in */ uint64_t start) /* start bit, search should be started at */ { uint64_t bit; aal_assert("vpf-457", bitmap != NULL); reiser4_bitmap_bound_check(bitmap, start, return INVAL_BLK); bit = aal_find_next_set_bit(bitmap->map, bitmap->total, start); if (bit >= bitmap->total) return INVAL_BLK; return bit; } /* Tests if all bits of the interval [start, count] are cleared in the bitmap. */ bool_t reiser4_bitmap_test_region( reiser4_bitmap_t *bitmap, /* bitmap for working with */ uint64_t start, /* start bit of the range */ uint64_t count, /* bit count to be clean */ int marked) { blk_t next; aal_assert("vpf-471", bitmap != NULL); aal_assert("vpf-728", count > 0); reiser4_bitmap_bound_check(bitmap, start, return 0); reiser4_bitmap_bound_check(bitmap, start + count - 1, return 0); if (marked) next = reiser4_bitmap_find_cleared(bitmap, start); else next = reiser4_bitmap_find_marked(bitmap, start); if (next >= start && next < start + count) return 0; return 1; } uint64_t reiser4_bitmap_find_region( reiser4_bitmap_t *bitmap, /* bitmap, clear bit will be searched in */ uint64_t *start, /* start of clean region will be stored */ uint64_t count, /* blocks requested */ int marked) /* find marked region or clean */ { aal_assert("umka-1773", bitmap != NULL); if (marked) { return aal_find_set_bits(bitmap->map, bitmap->total, start, count); } else { return aal_find_zero_bits(bitmap->map, bitmap->total, start, count); } } /* Public wrapper for previous function */ uint64_t reiser4_bitmap_calc_marked( reiser4_bitmap_t *bitmap) /* bitmap, calculating will be performed in */ { aal_assert("umka-340", bitmap != NULL); bitmap->marked = reiser4_bitmap_calc(bitmap, 0, bitmap->total, 1); return bitmap->marked; } /* The same as previous one */ uint64_t reiser4_bitmap_calc_cleared( reiser4_bitmap_t *bitmap) /* bitmap, calculating will be performed in */ { aal_assert("vpf-1320", bitmap != NULL); return reiser4_bitmap_calc(bitmap, 0, bitmap->total, 0); } /* Retuns stored value of marked blocks from specified bitmap */ uint64_t reiser4_bitmap_marked( reiser4_bitmap_t *bitmap) /* bitmap marked block number will be obtained from */ { aal_assert("umka-343", bitmap != NULL); return bitmap->marked; } /* Retuns stored value of clear blocks from specified bitmap */ uint64_t reiser4_bitmap_cleared( reiser4_bitmap_t *bitmap) /* bitmap unsuded blocks will be obtained from */ { aal_assert("umka-344", bitmap != NULL); return bitmap->total - bitmap->marked; } /* Creates instance of bitmap */ reiser4_bitmap_t *reiser4_bitmap_create(uint64_t len) { reiser4_bitmap_t *bitmap; if (!(bitmap = aal_calloc(sizeof(*bitmap), 0))) return NULL; bitmap->marked = 0; bitmap->total = len; bitmap->size = (len + 7) / 8; if (!(bitmap->map = aal_calloc(bitmap->size, 0))) { aal_free(bitmap); return NULL; } return bitmap; } /* Makes clone of specified bitmap. Returns it to caller */ reiser4_bitmap_t *reiser4_bitmap_clone( reiser4_bitmap_t *bitmap) /* bitmap clone of which will be created */ { reiser4_bitmap_t *clone; aal_assert("umka-358", bitmap != NULL); if (!(clone = reiser4_bitmap_create(bitmap->total))) return NULL; clone->marked = bitmap->marked; aal_memcpy(clone->map, bitmap->map, clone->size); return clone; } /* Resizes the @bitmap to the given @len. */ void reiser4_bitmap_resize(reiser4_bitmap_t *bitmap, uint64_t len) { void *map; uint32_t size; bool_t enlarge; uint64_t i, total; size = (len + 7) / 8; enlarge = size > bitmap->size ? 1 : 0; if (!(map = aal_calloc(size, 0))) return; aal_memcpy(map, bitmap->map, enlarge ? bitmap->size : size); if (enlarge) { /* Fix bits that were out of bounds. */ total = bitmap->size * 8; for (i = bitmap->total; i < total; i++) aal_clear_bit(map, i); } aal_free(bitmap->map); bitmap->map = map; bitmap->total = len; bitmap->size = size; if (!enlarge) { reiser4_bitmap_calc_marked(bitmap); } } /* Frees all memory assigned to bitmap */ void reiser4_bitmap_close( reiser4_bitmap_t *bitmap) /* bitmap to be closed */ { aal_assert("umka-354", bitmap != NULL); aal_assert("umka-1082", bitmap->map != NULL); aal_free(bitmap->map); aal_free(bitmap); } /* Inverts the bitmap data. */ void reiser4_bitmap_invert(reiser4_bitmap_t *bitmap) { uint64_t i, total; aal_assert("vpf-1421", bitmap != NULL); for (i = 0; i < bitmap->size; i++) bitmap->map[i] = ~bitmap->map[i]; /* Fix bits that are out of bounds. */ total = bitmap->size * 8; for (i = bitmap->total; i < total; i++) aal_clear_bit(bitmap->map, i); bitmap->marked = bitmap->total - bitmap->marked; } /* Packs the bitmap. */ errno_t reiser4_bitmap_pack(reiser4_bitmap_t *bitmap, aal_stream_t *stream) { uint64_t i, count; int set; aal_assert("vpf-1431", bitmap != NULL); aal_assert("vpf-1432", stream != NULL); aal_stream_write(stream, AUX_BITMAP_MAGIC, sizeof(AUX_BITMAP_MAGIC)); aal_stream_write(stream, &bitmap->total, sizeof(bitmap->total)); i = count = 0; set = 1; while (1) { if (set) i = reiser4_bitmap_find_cleared(bitmap, count); else i = reiser4_bitmap_find_marked(bitmap, count); if (i == INVAL_BLK) break; i -= count; /* Write the @count. */ aal_stream_write(stream, &i, sizeof(i)); count += i; set = !set; } i = bitmap->total - count; /* Write the last @count and @extents. */ aal_stream_write(stream, &i, sizeof(i)); return 0; } /* Creates bitmap by passed @stream. */ reiser4_bitmap_t *reiser4_bitmap_unpack(aal_stream_t *stream) { int32_t size, set; uint64_t total, count, bit; reiser4_bitmap_t *bitmap = NULL; char *buf[sizeof(AUX_BITMAP_MAGIC)]; aal_assert("vpf-1434", stream != NULL); size = sizeof(AUX_BITMAP_MAGIC); /* Read and check the magic. */ if (aal_stream_read(stream, buf, size) != size) goto error_eostream; if (aal_memcmp(buf, AUX_BITMAP_MAGIC, size)) { aal_error("Can't unpack the bitmap. " "Wrong magic found."); return NULL; } /* Read the bitmap size. */ if (aal_stream_read(stream, &total, sizeof(total)) != sizeof(total)) { goto error_eostream; } if (!(bitmap = reiser4_bitmap_create(total))) return NULL; for (bit = 0, set = 1; 1; set = !set, bit += count) { uint32_t read; read = aal_stream_read(stream, &count, sizeof(count)); if (read != sizeof(count)) break; if (bit + count > total) { aal_error("Stream with the bitmap looks corrupted."); goto error_free_bitmap; } if (set) reiser4_bitmap_mark_region(bitmap, bit, count); } if (bit != total) goto error_eostream; return bitmap; error_eostream: aal_error("Can't unpack the bitmap. Stream is over?"); error_free_bitmap: if (bitmap) { reiser4_bitmap_close(bitmap); } return NULL; } #endif reiser4progs-1.0.7.orig/libreiser4/tree.c0000644000175000017500000026222311131470543016103 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. tree.c -- reiser4 tree code. */ #include /* Return current fs blksize, which may be used in tree. */ uint32_t reiser4_tree_get_blksize(reiser4_tree_t *tree) { aal_assert("umka-2579", tree != NULL); aal_assert("umka-2580", tree->fs != NULL); aal_assert("umka-2581", tree->fs->master != NULL); return reiser4_master_get_blksize(tree->fs->master); } /* Returns TRUE if passed @node is tree root node. */ static bool_t reiser4_tree_root_node(reiser4_tree_t *tree, reiser4_node_t *node) { aal_assert("umka-2482", tree != NULL); aal_assert("umka-2483", node != NULL); return reiser4_tree_get_root(tree) == node->block->nr; } #ifndef ENABLE_MINIMAL /* Updates root block number in format by passed @blk. Takes care about correct block number in loaded root node if any. */ void reiser4_tree_set_root(reiser4_tree_t *tree, blk_t blk) { aal_assert("umka-2409", tree != NULL); aal_assert("umka-2412", tree->fs != NULL); aal_assert("umka-2413", tree->fs->format != NULL); reiser4_format_set_root(tree->fs->format, blk); } /* Updates height in format by passed @height. */ void reiser4_tree_set_height(reiser4_tree_t *tree, uint8_t height) { aal_assert("umka-2410", tree != NULL); aal_assert("umka-2416", tree->fs != NULL); aal_assert("umka-2417", tree->fs->format != NULL); reiser4_format_set_height(tree->fs->format, height); } /* Unlocks @node and makes check if it is empty. If so and is not locked anymore it is detached from tree. */ errno_t reiser4_tree_unlock_node(reiser4_tree_t *tree, reiser4_node_t *node) { errno_t res; aal_assert("umka-3058", tree != NULL); aal_assert("umka-3059", node != NULL); reiser4_node_unlock(node); /* Check if we should release node as it is empty and node locked. */ if (!reiser4_node_locked(node) && !reiser4_node_items(node) && (node->flags & NF_HEARD_BANSHEE)) { /* Check if we should detach node from tree first. */ if (reiser4_tree_attached_node(tree, node)) { if ((res = reiser4_tree_detach_node(tree, node, SF_DEFAULT))) { return res; } } return reiser4_tree_release_node(tree, node); } return 0; } #endif /* Returns tree root block number stored in format. */ blk_t reiser4_tree_get_root(reiser4_tree_t *tree) { aal_assert("umka-738", tree != NULL); aal_assert("umka-2414", tree->fs != NULL); aal_assert("umka-2415", tree->fs->format != NULL); return reiser4call(tree->fs->format, get_root); } #ifndef ENABLE_MINIMAL /* Returns tree height stored in format. */ uint8_t reiser4_tree_get_height(reiser4_tree_t *tree) { aal_assert("umka-2411", tree != NULL); aal_assert("umka-2418", tree->fs != NULL); aal_assert("umka-2419", tree->fs->format != NULL); return reiser4call(tree->fs->format, get_height); } /* As @node already lies in @tree->nodes hash table and it is going to change its block number, we have to update its hash entry in @tree->nodes. This function does that job and also moves @node to @new_blk location. */ errno_t reiser4_tree_rehash_node(reiser4_tree_t *tree, reiser4_node_t *node, blk_t new_blk) { blk_t old_blk; blk_t *set_blk; aal_assert("umka-3043", tree != NULL); aal_assert("umka-3044", node != NULL); aal_assert("umka-3045", reiser4_node_items(node) > 0); old_blk = node->block->nr; reiser4_node_move(node, new_blk); /* Allocating new key and assign new block number value to it. */ if (!(set_blk = aal_calloc(sizeof(*set_blk), 0))) return -ENOMEM; *set_blk = new_blk; /* Remove old hash table entry and insert new allocated one. This is quite cheapper operation. */ if (aal_hash_table_remove(tree->nodes, &old_blk)) return -EINVAL; return aal_hash_table_insert(tree->nodes, set_blk, node); } #endif /* Puts @node to @tree->nodes hash table. */ static errno_t reiser4_tree_hash_node(reiser4_tree_t *tree, reiser4_node_t *node) { blk_t *blk; aal_assert("umka-3040", tree != NULL); aal_assert("umka-3041", node != NULL); /* Registering @node in @tree->nodes hash table with key equal to block number of @node. */ if (!(blk = aal_calloc(sizeof(*blk), 0))) return -ENOMEM; *blk = node->block->nr; return aal_hash_table_insert(tree->nodes, blk, node); } /* Removes @node from @tree->nodes hash table. Used when nodeis going to be disconnected from tree cache. */ static errno_t reiser4_tree_unhash_node(reiser4_tree_t *tree, reiser4_node_t *node) { blk_t blk; aal_assert("umka-3046", tree != NULL); aal_assert("umka-3047", node != NULL); blk = node->block->nr; return aal_hash_table_remove(tree->nodes, &blk); } #ifndef ENABLE_MINIMAL /* Acknowledles, that passed @place has nodeptr that points onto passed @node. This is needed for tree_rebind_node() function. */ static int tree_check_pos(reiser4_place_t *place, blk_t blocknr) { aal_assert("umka-3115", place != NULL); if (!(place->pos.item < reiser4_node_items(place->node))) return 0; if (reiser4_place_fetch(place)) return 0; if (!reiser4_item_branch(place->plug)) return 0; return reiser4_item_down_link(place) == blocknr; } static void tree_next_child_pos(reiser4_node_t *left, reiser4_place_t *place) { aal_assert("umka-3126", left != NULL); aal_assert("umka-3127", place != NULL); aal_memcpy(place, &left->p, sizeof(*place)); place->pos.item++; } #endif static errno_t tree_find_child_pos(reiser4_tree_t *tree, reiser4_node_t *parent, reiser4_node_t *child, reiser4_place_t *place) { lookup_hint_t hint; reiser4_key_t lkey; #ifndef ENABLE_MINIMAL uint32_t i; #endif aal_assert("umka-869", child != NULL); aal_assert("umka-3114", parent != NULL); aal_assert("umka-3038", reiser4_node_items(child) > 0); place->node = parent; #ifndef ENABLE_MINIMAL /* Checking if we are in position already. */ if (tree_check_pos(place, child->block->nr)) goto out_correct_place; #endif /* Getting position by means of using node lookup. */ reiser4_node_leftmost_key(child, &lkey); hint.key = &lkey; if (reiser4_node_lookup(parent, &hint, FIND_EXACT, &place->pos) == PRESENT) { #ifndef ENABLE_MINIMAL if (tree_check_pos(place, child->block->nr)) goto out_correct_place; #endif } /* Getting position by means of linear traverse. */ #ifndef ENABLE_MINIMAL for (i = 0; i < reiser4_node_items(place->node); i++) { uint32_t j; errno_t res; place->pos.item = i; if ((res = reiser4_place_fetch(place))) return res; if (!reiser4_item_branch(place->plug)) continue; for (j = 0; j < reiser4_item_units(place); j++) { blk_t blocknr; place->pos.unit = j; blocknr = reiser4_item_down_link(place); if (child->block->nr == blocknr) goto out_correct_place; } } return -EINVAL; out_correct_place: #else if (reiser4_place_fetch(place)) return -EINVAL; #endif if (reiser4_item_units(place) == 1) place->pos.unit = MAX_UINT32; return 0; } /* Updates @node->p by position in parent node. */ static errno_t reiser4_tree_rebind_node(reiser4_tree_t *tree, reiser4_node_t *parent, reiser4_node_t *child) { aal_assert("umka-3116", tree != NULL); aal_assert("umka-3117", child != NULL); aal_assert("umka-3122", parent != NULL); return tree_find_child_pos(tree, parent, child, &child->p); } /* Loads root node and put it to @tree->nodes hash table. */ errno_t reiser4_tree_load_root(reiser4_tree_t *tree) { blk_t root_blk; aal_assert("umka-1870", tree != NULL); /* Check if root is loaded. */ if (tree->root) return 0; /* Getting root node and loading it. */ root_blk = reiser4_tree_get_root(tree); if (!(tree->root = reiser4_tree_load_node(tree, NULL, root_blk))) { aal_error("Can't load root node %llu.", root_blk); return -EIO; } tree->root->tree = (tree_entity_t *)tree; return 0; } #if 0 /* DEBUGGING */ static errno_t cb_count_children(reiser4_place_t *place, void *data) { uint32_t *count = (uint32_t *)data; blk_t blk; blk = reiser4_item_down_link(place); if (reiser4_tree_lookup_node(place->node->tree, blk)) (*count)++; return 0; } /* Debugging code for catching wrong node->counter. */ uint32_t debug_node_loaded_children(reiser4_node_t *node) { uint32_t count = 0; if (!node) return 0; reiser4_node_trav(node, cb_count_children, &count); return count; } /* Debugging code for catching wrong order of keys. */ static errno_t debug_node_check_keys(reiser4_node_t *node) { reiser4_key_t key, prev; pos_t pos = {0, MAX_UINT32}; uint32_t count; count = reiser4_node_items(node); for (pos.item = 0; pos.item < count; pos.item++) { plug_call(node->plug->pl.node, get_key, node, &pos, &key); if (pos.item && reiser4_key_compfull(&prev, &key) > 0) return 1; aa_memcpy(&prev, &key, sizeof(key)); } return 0; } #endif #ifndef ENABLE_MINIMAL /* Assignes passed @node to root. Takes care about root block number and tree height in format. */ errno_t reiser4_tree_assign_root(reiser4_tree_t *tree, reiser4_node_t *node) { blk_t blk; uint32_t level; aal_assert("umka-1867", tree != NULL); aal_assert("umka-1868", node != NULL); /* Establishing connection between node and tree. */ tree->root = node; node->tree = (tree_entity_t *)tree; node->p.node = NULL; if (reiser4_tree_connect_node(tree, NULL, node)) return -EINVAL; /* Updating tree height. */ level = reiser4_node_get_level(node); reiser4_tree_set_height(tree, level); /* Updating root block number. */ blk = tree->root->block->nr; reiser4_tree_set_root(tree, blk); return 0; } #endif errno_t reiser4_tree_mpressure(reiser4_tree_t *tree) { errno_t res; /* Check for memory pressure event. If memory pressure is uppon us, we call memory cleaning function. For now we call tree_adjust() in order to release not locked nodes. */ if (!tree->mpc_func || !tree->mpc_func(tree)) return 0; /* Adjusting the tree as memory pressure is here. */ if ((res = reiser4_tree_adjust(tree))) { aal_error("Can't adjust tree."); return res; } return 0; } /* Registers passed node in tree and connects left and right neighbour nodes. This function does not do any tree modifications. */ errno_t reiser4_tree_connect_node(reiser4_tree_t *tree, reiser4_node_t *parent, reiser4_node_t *node) { errno_t res; aal_assert("umka-1857", tree != NULL); aal_assert("umka-2261", node != NULL); node->tree = (tree_entity_t *)tree; if (reiser4_tree_root_node(tree, node)) { /* This is the case when we connect root node, that is with no parent. */ tree->root = node; } else if (parent) { /* Updating node->p parent place. */ if (reiser4_tree_rebind_node(tree, parent, node)) return -EINVAL; reiser4_node_lock(parent); } if (reiser4_tree_hash_node(tree, node)) return -EINVAL; reiser4_node_lock(node); if ((res = reiser4_tree_mpressure(tree))) { aal_error("Can't connect node %llu.", node->block->nr); if (parent) reiser4_node_unlock(parent); reiser4_tree_unhash_node(tree, node); } reiser4_node_unlock(node); return res; } /* Remove specified child from the node children list. Updates all neighbour pointers and parent pointer.*/ errno_t reiser4_tree_disconnect_node(reiser4_tree_t *tree, reiser4_node_t *node) { aal_assert("umka-563", node != NULL); aal_assert("umka-1858", tree != NULL); /* Disconnecting left and right neighbours. */ if (node->left) { node->left->right = NULL; node->left = NULL; } if (node->right) { node->right->left = NULL; node->right = NULL; } /* Disconnecting @node from @tree->nodes hash table. */ if (reiser4_tree_unhash_node(tree, node)) return -EINVAL; node->tree = NULL; if (tree->root == node) { /* The case when we're disconnecting root node for some reasons. And we will let to do so? Yes, why not? */ tree->root = NULL; } /* Unlock parent node. */ if (node->p.node) { reiser4_node_unlock(node->p.node); node->p.node = NULL; } return 0; } #ifndef ENABLE_MINIMAL /* Updates all internal node loaded children positions in parent. */ static errno_t reiser4_tree_update_node(reiser4_tree_t *tree, reiser4_node_t *node, uint8_t start, uint8_t end) { uint32_t i; errno_t res; aal_assert("umka-3035", tree != NULL); aal_assert("umka-3036", node != NULL); aal_assert("umka-3037", reiser4_node_items(node) > 0); for (i = start; i < end; i++) { blk_t blk; uint32_t j; reiser4_node_t *child; reiser4_place_t place; /* Initializing item at @i. */ reiser4_place_assign(&place, node, i, MAX_UINT32); if ((res = reiser4_place_fetch(&place))) return res; if (!reiser4_item_branch(place.plug)) continue; for (j = 0; j < reiser4_item_units(&place); j++) { place.pos.unit = j; blk = reiser4_item_down_link(&place); /* Getting loaded child node. If it is not loaded, we don't have to update its parent pos. */ if (!(child = reiser4_tree_lookup_node(tree, blk))) continue; /* Unlock old parent node. There are some cases when parent is not set yet (like tree_growup()). So, we check parent for null. */ if (child->p.node) { reiser4_node_unlock(child->p.node); reiser4_node_lock(node); } /* Updating position in parent node. */ if ((res = reiser4_tree_rebind_node(tree, node, child))) return res; if (reiser4_node_items(node) == 0) { if (node->flags & NF_HEARD_BANSHEE) continue; aal_bug("umka-3060", "Node (%llu) is empty " "but not marked as 'heard banshee'.", node->block->nr); } } } return 0; } #endif reiser4_node_t *reiser4_tree_lookup_node(reiser4_tree_t *tree, blk_t blk) { aal_assert("umka-3002", tree != NULL); return aal_hash_table_lookup(tree->nodes, &blk); } /* Loads node from @blk and connects it to @parent. */ reiser4_node_t *reiser4_tree_load_node(reiser4_tree_t *tree, reiser4_node_t *parent, blk_t blk) { reiser4_node_t *node = NULL; aal_assert("umka-1289", tree != NULL); /* Checking if node in the local cache of @parent. */ if (!(node = reiser4_tree_lookup_node(tree, blk))) { aal_assert("umka-3004", !reiser4_fake_ack(blk)); /* Node is not loaded yet. Loading it and connecting to @parent node cache. */ if (!(node = reiser4_node_open(tree, blk))) return NULL; /* Connect loaded node to cache. */ if (reiser4_tree_connect_node(tree, parent, node)) goto error_free_node; } return node; error_free_node: reiser4_node_close(node); return NULL; } /* Unloading node and unregistering it from @tree->nodes hash table. */ errno_t reiser4_tree_unload_node(reiser4_tree_t *tree, reiser4_node_t *node) { errno_t res; aal_assert("umka-1840", tree != NULL); aal_assert("umka-1842", node != NULL); #ifndef ENABLE_MINIMAL /* Check if node is dirty. */ if (reiser4_node_isdirty(node)) { aal_warn("Unloading dirty node %llu.", node->block->nr); } #endif /* Disconnecting @node from its parent node. */ if ((res = reiser4_tree_disconnect_node(tree, node))) { aal_error("Can't disconnect node from " "tree cache."); return res; } /* Releasing node instance. */ return reiser4_node_close(node); } /* Loads denoted by passed nodeptr @place child node */ reiser4_node_t *reiser4_tree_child_node(reiser4_tree_t *tree, reiser4_place_t *place) { reiser4_node_t *node; blk_t blk; aal_assert("umka-1889", tree != NULL); aal_assert("umka-1890", place != NULL); aal_assert("umka-1891", place->node != NULL); /* Initializing @place. */ if (reiser4_place_fetch(place)) return NULL; /* Checking if item is a branch of tree */ if (!reiser4_item_branch(place->plug)) return NULL; blk = reiser4_item_down_link(place); if (!(node = reiser4_tree_load_node(tree, place->node, blk))) { aal_error("Can't load child node %llu.", blk); return NULL; } return node; } static int reiser4_tree_neig_place(reiser4_tree_t *tree, reiser4_place_t *place, uint32_t where) { int found = 0; uint32_t level = 0; /* Going up to the level where corresponding neighbour node may be obtained by its nodeptr item. */ while (place->node->p.node && found == 0) { aal_memcpy(place, &place->node->p, sizeof(*place)); /* Checking position. Level is found if position is not first (right neighbour) and is not last one (left neighbour). */ found = where == DIR_LEFT ? reiser4_place_gtfirst(place) : reiser4_place_ltlast(place); level++; } if (!found) return 0; /* Position correcting. We do not use place_inc() and place_dec() here, because they are not accessible in minimal mode and we do not want to make it accessible because here is one place only and they are quite big. */ place->pos.item += (where == DIR_LEFT ? -1 : 1); return level; } /* Finds both left and right neighbours and connects them into the tree. */ static reiser4_node_t *reiser4_tree_ltrt_node(reiser4_tree_t *tree, reiser4_node_t *node, uint32_t where) { reiser4_place_t place; uint32_t level; aal_assert("umka-2213", tree != NULL); aal_assert("umka-2214", node != NULL); reiser4_place_assign(&place, node, 0, MAX_UINT32); if (!(level = reiser4_tree_neig_place(tree, &place, where))) return NULL; reiser4_node_lock(node); /* Going down to the level of @node. */ while (level > 0) { if (!(place.node = reiser4_tree_child_node(tree, &place))) { reiser4_node_unlock(node); return NULL; } if (where == DIR_LEFT) { if (reiser4_place_last(&place)) { reiser4_node_unlock(node); return NULL; } } else { if (reiser4_place_first(&place)) { reiser4_node_unlock(node); return NULL; } } level--; } reiser4_node_unlock(node); /* Setting up sibling pointers. */ if (where == DIR_LEFT) { node->left = place.node; place.node->right = node; } else { node->right = place.node; place.node->left = node; } return place.node; } static errno_t reiser4_tree_adjust_place(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_place_t *next) { /* Check if we have to get right neighbour node. */ if (place->pos.item >= reiser4_node_items(place->node)) { /* Load the right neighbour. */ reiser4_tree_ltrt_node(tree, place->node, DIR_RIGHT); if (place->node->right) { /* The right neighbour exists. */ reiser4_place_assign(next, place->node->right, 0, 0); } else { /* There is no right neighbour. Get the right neighbour of the above level if there is one. */ aal_memcpy(next, place, sizeof(*place)); if (!reiser4_tree_neig_place(tree, next, DIR_RIGHT)) { /* Not found. */ aal_memset(next, 0, sizeof(*next)); return 0; } } } else { aal_memcpy(next, place, sizeof(*place)); } /* Initializing @place. */ return reiser4_place_fetch(next); } /* Moves @place by one item to right. If node is over, returns node next to passed @place. Needed for moving though the tree node by node, for instance in directory read code. */ errno_t reiser4_tree_next_place(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_place_t *next) { reiser4_node_t *node; aal_assert("umka-867", tree != NULL); aal_assert("umka-868", place != NULL); aal_assert("umka-1491", next != NULL); aal_memcpy(next, place, sizeof(*place)); next->pos.item++; next->pos.unit = 0; if (reiser4_tree_adjust_place(tree, next, next)) return -EINVAL; if (!next->node) return 0; node = next->node; reiser4_node_lock(node); /* If nodeptr item go down. */ while (reiser4_item_branch(next->plug)) { blk_t blk; blk = reiser4_item_down_link(next); next->node = reiser4_tree_load_node(tree, next->node, blk); if (!next->node) { aal_error("Can't load a child node %llu of the node" " (%llu).", blk, node->block->nr); goto error; } if (reiser4_place_first(next)) goto error; if (reiser4_place_fetch(next)) goto error; } reiser4_node_unlock(node); return 0; error: reiser4_node_unlock(node); return -EINVAL; } /* Get the key of the given @place. If @place is not valid, get the key of the right neighbour. */ errno_t reiser4_tree_place_key(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_key_t *key) { reiser4_place_t next; aal_assert("vpf-1527", tree != NULL); aal_assert("vpf-1528", place != NULL); aal_assert("vpf-1529", key != NULL); aal_memcpy(&next, place, sizeof(*place)); if (next.pos.item >= reiser4_node_items(next.node)) { if (!reiser4_tree_neig_place(tree, &next, DIR_RIGHT)) { key->plug = tree->key.plug; reiser4_key_maximal(key); return 0; } } if (reiser4_place_fetch(&next)) return -EINVAL; return reiser4_item_get_key(&next, key); } #ifndef ENABLE_MINIMAL /* Gets the key of the next item. */ errno_t reiser4_tree_next_key(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_key_t *key) { reiser4_place_t temp; aal_assert("vpf-1427", tree != NULL); aal_assert("vpf-1427", place != NULL); aal_assert("vpf-1427", key != NULL); temp = *place; temp.pos.item++; temp.pos.unit = MAX_UINT32; return reiser4_tree_place_key(tree, &temp, key); } /* Requests block allocator for new block and creates empty node in it. */ reiser4_node_t *reiser4_tree_alloc_node(reiser4_tree_t *tree, uint8_t level) { reiser4_node_plug_t *plug; reiser4_node_t *node; uint32_t stamp; errno_t res; blk_t blk; reiser4_format_t *format; aal_assert("umka-756", tree != NULL); /* Allocating fake block number. */ blk = reiser4_fake_get(); format = tree->fs->format; /* Setting up of the free blocks in format. */ if ((res = reiser4_format_dec_free(format, 1))) return NULL; plug = (reiser4_node_plug_t *)tree->ent.tset[TSET_NODE]; /* Creating new node. */ if (!(node = reiser4_node_create(tree, plug, blk, level))) { aal_error("Can't initialize new fake node."); return NULL; } /* Setting flush stamps to new node. */ stamp = reiser4_format_get_stamp(format); reiser4_node_set_mstamp(node, stamp); node->tree = &tree->ent; return node; } /* Unload node and releasing it in block allocator */ errno_t reiser4_tree_release_node(reiser4_tree_t *tree, reiser4_node_t *node) { reiser4_alloc_t *alloc; reiser4_format_t *format; aal_assert("umka-1841", tree != NULL); aal_assert("umka-2255", node != NULL); alloc = tree->fs->alloc; format = tree->fs->format; reiser4_node_mkclean(node); /* Check if we're trying to releas a node with fake block number. If not, free it in block allocator too. */ if (!reiser4_fake_ack(node->block->nr)) { blk_t blk = node->block->nr; reiser4_alloc_release(alloc, blk, 1); } /* Setting up of the free blocks in format. */ reiser4_format_inc_free(format, 1); /* Release node itself. */ return reiser4_node_close(node); } /* Removes nodeptr that points to @node, disconnects it from tree and then releases @node itself. */ errno_t reiser4_tree_discard_node(reiser4_tree_t *tree, reiser4_node_t *node) { errno_t res; if ((res = reiser4_tree_detach_node(tree, node, SF_DEFAULT))) { aal_error("Can't detach node %llu from tree.", node->block->nr); return res; } if ((res = reiser4_tree_release_node(tree, node))) { aal_error("Can't release node %llu.", node->block->nr); return res; } return res; } /* Helper function for freeing passed key instance tree's data hashtable entry is going to be removed. */ static void cb_blocks_keyrem_func(void *key) { reiser4_key_free((reiser4_key_t *)key); } /* Helper function for freeing hash value, that is, data block. */ static void cb_blocks_valrem_func(void *val) { aal_block_free((aal_block_t *)val); } /* Helper function for calculating 64-bit hash by passed key. This is used for tree's data hash. Note: as offset of extent blocks is divisible by blocksize (4096 by default) offset is shifted on 12 bits to the right to have neighbour blocks in neighbour lists. */ static uint64_t cb_blocks_hash_func(void *key) { return (reiser4_key_get_objectid((reiser4_key_t *)key) + (reiser4_key_get_offset((reiser4_key_t *)key) >> 12)); } /* Helper function for comparing two keys during tree's data hash lookups. */ static int cb_blocks_comp_func(void *key1, void *key2, void *data) { return reiser4_key_compfull((reiser4_key_t *)key1, (reiser4_key_t *)key2); } /* Returns level in tree particular item should be inserted at. */ inline uint32_t reiser4_tree_target_level(reiser4_tree_t *tree, reiser4_plug_t *plug) { return (plug->id.group == EXTENT_ITEM) ? TWIG_LEVEL : LEAF_LEVEL; } #endif /* Helpher function for freeing keys in @tree->nodes hash table during its destroying. */ static void cb_nodes_keyrem_func(void *key) { aal_free(key); } /* Return hash number from passed key value from @tree->nodes hashtable. */ static uint64_t cb_nodes_hash_func(void *key) { return *(uint64_t *)key; } /* Compares two passed keys of @tree->nodes hash table during lookup in it. */ static int cb_nodes_comp_func(void *key1, void *key2, void *data) { if (*(uint64_t *)key1 < *(uint64_t *)key2) return -1; if (*(uint64_t *)key1 > *(uint64_t *)key2) return 1; return 0; } /* Returns the key of the fake root parent */ errno_t reiser4_tree_root_key(reiser4_tree_t *tree, reiser4_key_t *key) { oid_t locality; oid_t objectid; aal_assert("umka-1949", tree != NULL); aal_assert("umka-1950", key != NULL); key->plug = (reiser4_key_plug_t *)tree->ent.tset[TSET_KEY]; #ifndef ENABLE_MINIMAL locality = reiser4_oid_root_locality(tree->fs->oid); objectid = reiser4_oid_root_objectid(tree->fs->oid); #else locality = REISER4_ROOT_LOCALITY; objectid = REISER4_ROOT_OBJECTID; #endif return objcall(key, build_generic, KEY_STATDATA_TYPE, locality, 0, objectid, 0); } #ifndef ENABLE_MINIMAL # define TREE_NODES_TABLE_SIZE (512) #else # define TREE_NODES_TABLE_SIZE (32) #endif #define TREE_BLOCKS_TABLE_SIZE (512) /* Initializes tree instance on passed filesystem and return it to caller. Then it may be used for modifying tree, making lookup, etc. */ reiser4_tree_t *reiser4_tree_init(reiser4_fs_t *fs) { reiser4_tree_t *tree; aal_assert("umka-737", fs != NULL); /* Allocating memory for tree instance */ if (!(tree = aal_calloc(sizeof(*tree), 0))) return NULL; tree->fs = fs; tree->adjusting = 0; /* Initializing hash table for storing loaded formatted nodes in it. */ if (!(tree->nodes = aal_hash_table_create(TREE_NODES_TABLE_SIZE, cb_nodes_hash_func, cb_nodes_comp_func, cb_nodes_keyrem_func, NULL))) { goto error_free_tree; } #ifndef ENABLE_MINIMAL /* Initializing hash table for storing loaded unformatted blocks in it. This uses all callbacks we described above for getting hash values, lookup, etc. */ if (!(tree->blocks = aal_hash_table_create(TREE_BLOCKS_TABLE_SIZE, cb_blocks_hash_func, cb_blocks_comp_func, cb_blocks_keyrem_func, cb_blocks_valrem_func))) { goto error_free_nodes; } #endif /* Initializing the tset. */ if (reiser4_tset_init(tree)) goto error_free_data; /* Building tree root key. It is used in tree lookup, etc. */ if (reiser4_tree_root_key(tree, &tree->key)) { aal_error("Can't build the tree root key."); goto error_free_data; } return tree; error_free_data: #ifndef ENABLE_MINIMAL aal_hash_table_free(tree->blocks); error_free_nodes: #endif aal_hash_table_free(tree->nodes); error_free_tree: aal_free(tree); return NULL; } /* Unloads all loaded tree nodes. */ errno_t reiser4_tree_collapse(reiser4_tree_t *tree) { aal_assert("umka-2265", tree != NULL); if (!tree->root) return 0; return reiser4_tree_walk_node(tree, tree->root, #ifndef ENABLE_MINIMAL NULL, NULL, #endif reiser4_tree_unload_node); } /* Closes specified tree without saving dirty nodes to device. It just thows out all loaded nodes without dealing with allocating etc. This may be used in minimal mode and/or just to free modified tree without a changes on device. */ void reiser4_tree_close(reiser4_tree_t *tree) { aal_assert("vpf-1316", tree != NULL); /* Close all remaining nodes. */ reiser4_tree_collapse(tree); /* Releasing unformatted nodes hash table. */ #ifndef ENABLE_MINIMAL aal_hash_table_free(tree->blocks); #endif /* Releasing fomatted nodes hash table. */ aal_hash_table_free(tree->nodes); /* Freeing tree instance. */ tree->fs->tree = NULL; aal_free(tree); } #ifndef ENABLE_MINIMAL static errno_t cb_flags_dup(reiser4_place_t *place, void *data) { reiser4_item_dup_flags(place, *(uint16_t *)data); return 0; } /* Allocates extent item at passed @place. */ static errno_t reiser4_tree_alloc_extent(reiser4_tree_t *tree, reiser4_place_t *place) { errno_t res; uint32_t units; uint16_t flags; ptr_hint_t ptr; uint32_t blksize; trans_hint_t hint; units = reiser4_item_units(place); blksize = reiser4_tree_get_blksize(tree); /* Prepare @hint. */ hint.count = 1; hint.specific = &ptr; hint.plug = place->plug; hint.region_func = NULL; hint.place_func = cb_flags_dup; hint.data = &flags; /* We force balancing use these flags with disables left shift in order to not affect to items/units left of insert point, as we allocate items/units from left to right. */ hint.shift_flags = (SF_DEFAULT & ~SF_ALLOW_LEFT); for (place->pos.unit = 0; place->pos.unit < units; place->pos.unit++) { uint64_t width; uint64_t blocks; uint64_t offset; reiser4_key_t key; int first_time = 1; if (objcall(place, object->fetch_units, &hint) != 1) return -EIO; /* Check if we have accessed unallocated extent. */ if (ptr.start != EXTENT_UNALLOC_UNIT) continue; /* Getting unit key. */ objcall(place, balance->fetch_key, &key); /* Loop until all units get allocated. */ for (blocks = 0, width = ptr.width; width > 0; width -= ptr.width) { blk_t blk; uint32_t i; aal_block_t *block; /* Trying to allocate @ptr.width blocks. */ if (!(ptr.width = reiser4_alloc_allocate(tree->fs->alloc, &ptr.start, width))) { return -ENOSPC; } if (first_time) { flags = reiser4_item_get_flags(place); /* Updating extent unit at @place->pos.unit. */ if (objcall(place, object->update_units, &hint) != 1) { return -EIO; } first_time = 0; } else { errno_t res; uint32_t level; reiser4_place_t iplace; iplace = *place; iplace.pos.unit++; /* Insert new extent units. */ aal_memcpy(&hint.offset, &key, sizeof(key)); level = reiser4_node_get_level(iplace.node); if ((res = reiser4_tree_insert(tree, &iplace, &hint, level)) < 0) { return res; } /* Updating @place by insert point, as it might be moved due to balancing. */ aal_memcpy(place, &iplace, sizeof(iplace)); /* Updating @units as it might be changed after balancing during tree_insert(). */ units = reiser4_item_units(place); } /* Moving data blocks to right places, saving them and releasing from the cache. */ for (blk = ptr.start, i = 0; i < ptr.width; i++, blk++) { /* Getting data block by @key */ block = aal_hash_table_lookup(tree->blocks, &key); aal_assert("umka-2469", block != NULL); /* Moving block tro @blk */ aal_block_move(block, tree->fs->device, blk); /* Saving block to device. */ if ((res = aal_block_write(block))) { aal_error("Can't write block " "%llu.", block->nr); return res; } /* Releasing cache entry. */ aal_hash_table_remove(tree->blocks, &key); /* Updating the key to find next data block */ offset = objcall(&key, get_offset); objcall(&key, set_offset, offset + blksize); } blocks += ptr.width; } } return 0; } static errno_t cb_node_adjust(reiser4_tree_t *tree, reiser4_node_t *node) { errno_t res; aal_assert("umka-2302", tree != NULL); aal_assert("umka-2303", node != NULL); aal_assert("umka-3075", reiser4_node_items(node) > 0); /* Requesting block allocator to allocate the real block number for fake allocated node. */ if (reiser4_fake_ack(node->block->nr)) { blk_t blk; if (!reiser4_alloc_allocate(tree->fs->alloc, &blk, 1)) return -ENOSPC; if (reiser4_tree_root_node(tree, node)) reiser4_tree_set_root(tree, blk); if (node->p.node) { if ((res = reiser4_item_update_link(&node->p, blk))) return res; } /* Rehashing node in @tree->nodes hash table. */ reiser4_tree_rehash_node(tree, node, blk); } return 0; } /* Runs through the node in @place and calls tree_adjust_node() for all children. */ static errno_t cb_nodeptr_adjust(reiser4_tree_t *tree, reiser4_place_t *place) { /* It is not good, that we reference here to particular item group. But, we have to do so, considering, that this is up to tree to know about items type in it. Probably this is why tree should be plugin too to handle things like this in more flexible manner. */ if (place->plug->p.id.group != EXTENT_ITEM) return 0; /* Allocating unallocated extent item at @place. */ return reiser4_tree_alloc_extent(tree, place); } #endif static errno_t cb_node_unload(reiser4_tree_t *tree, reiser4_node_t *node) { /* If node is locked, that is not a leaf or it is used by someone, it cannot be released, and thus, it does not make the sense to save it to device too. */ if (reiser4_node_locked(node)) return 0; #ifndef ENABLE_MINIMAL /* Okay, node is fully allocated now and ready to be saved to device if it is dirty. */ if (reiser4_node_isdirty(node) && reiser4_node_sync(node)) { aal_error("Can't write node %llu.", node->block->nr); return -EIO; } #endif /* Unloading node from tree cache. */ return reiser4_tree_unload_node(tree, node); } /* Entry point for adjsuting tree routines. */ errno_t reiser4_tree_adjust(reiser4_tree_t *tree) { aal_assert("umka-3034", tree != NULL); if (tree->root && !tree->adjusting) { errno_t res = 0; tree->adjusting = 1; /* Check for special case -- tree_adjust() is calling during tree_growup(), when empty root is connected. */ if (reiser4_node_items(tree->root)) #ifndef ENABLE_MINIMAL res = reiser4_tree_walk_node(tree, tree->root, cb_node_adjust, cb_nodeptr_adjust, cb_node_unload); #else res = reiser4_tree_walk_node(tree, tree->root, cb_node_unload); #endif tree->adjusting = 0; return res; } return 0; } /* Walking though the tree cache and closing all nodes. */ errno_t reiser4_tree_walk_node(reiser4_tree_t *tree, reiser4_node_t *node, #ifndef ENABLE_MINIMAL walk_func_t pre_func, walk_on_func_t on_func, #endif walk_func_t post_func) { uint32_t i; errno_t res; aal_assert("umka-1933", tree != NULL); aal_assert("umka-1934", node != NULL); #ifndef ENABLE_MINIMAL if (pre_func && (res = pre_func(tree, node))) return res; #endif for (i = 0; i < reiser4_node_items(node); i++) { blk_t blk; uint32_t j; reiser4_node_t *child; reiser4_place_t place; /* Initializing item at @i. */ reiser4_place_assign(&place, node, i, MAX_UINT32); if ((res = reiser4_place_fetch(&place))) return res; #ifndef ENABLE_MINIMAL if (on_func && (res = on_func(tree, &place))) return res; #endif if (!reiser4_item_branch(place.plug)) continue; reiser4_node_lock(node); for (j = 0; j < reiser4_item_units(&place); j++) { /* Getting node by its nodeptr. If it is loaded, we call tree_adjust_node() recursively in order to allocate children. */ place.pos.unit = j; blk = reiser4_item_down_link(&place); if (!(child = reiser4_tree_lookup_node(tree, blk))) continue; /* Making recursive call to tree_walk_node(). */ if ((res = reiser4_tree_walk_node(tree, child, #ifndef ENABLE_MINIMAL pre_func, on_func, #endif post_func))) { reiser4_node_unlock(node); return res; } } reiser4_node_unlock(node); } /* Calling @walk_func for @node. */ return post_func ? post_func(tree, node) : 0; } #ifndef ENABLE_MINIMAL /* Helper function for save one unformatted block to device. Used from tree_sync() to save all in-memory unfromatted blocks. */ static errno_t cb_save_block( void *entry, void *data) { aal_hash_node_t *node = (aal_hash_node_t *)entry; aal_block_t *block = (aal_block_t *)node->value; /* Save block if it is dirty. */ if (block->dirty) { errno_t res; if ((res = aal_block_write(block))) return res; } return 0; } /* Packs one level at passed @node. Moves all items and units from right node to left neighbour node and so on until rightmost node is reached. */ static errno_t reiser4_tree_compress_level(reiser4_tree_t *tree, reiser4_node_t *node) { errno_t res; reiser4_node_t *right; aal_assert("umka-3009", tree != NULL); aal_assert("umka-3010", node != NULL); /* Loop until rightmost node is reached. */ while ((right = reiser4_tree_ltrt_node(tree, node, DIR_RIGHT))) { uint32_t flags; reiser4_place_t bogus; bogus.node = right; /* Left shift and merge is allowed. As this function will be used mostly in the case of out of space, we do not allow to allocate new nodes during shift. */ flags = (SF_ALLOW_LEFT | SF_ALLOW_MERGE); /* Shift items and units from @right to @node with @flags. */ if ((res = reiser4_tree_shift(tree, &bogus, node, flags))) { aal_error("Can't shift node %llu into left.", right->block->nr); return res; } /* Check if node get empty. If so we release it. */ if (reiser4_node_items(right) == 0) { if (reiser4_node_locked(right)) { right->flags |= NF_HEARD_BANSHEE; } else { reiser4_node_lock(node); /* Releasing @right node from tree cache and from tree structures (that is remove internal nodeptr item in parent node if any). */ if ((res = reiser4_tree_discard_node(tree, right))) { reiser4_node_unlock(node); return res; } reiser4_node_unlock(node); } /* Here we do not move compress point to node next to @right, because @node may still have enough of space to move some data to it and we prefer to do nothing here. That is node data will be moved to on the next cycle of this loop is still the same. */ } else { /* Updating @node by @right in order to move control flow to right neighbour node and so on until rightmost one is reached. */ node = right; } } return 0; } /* Makes tree compression to make tree more compact. It shifts items/units on all levels to left starting from leaf level. This may be used by fsck to make some additional space during reparing in some corner cases. For example, if some tail conversion is performed and filesystem is near to be full, we can run out of space and this function can releases something and in such a way lets fsck finish its job. */ errno_t reiser4_tree_compress(reiser4_tree_t *tree) { errno_t res; uint8_t level; reiser4_node_t *node; aal_assert("umka-3000", tree != NULL); if (!tree->root) return 0; node = tree->root; /* Loop for getting to first node of leaf level. */ for (level = reiser4_tree_get_height(tree); level >= LEAF_LEVEL; level--) { reiser4_place_t place; /* Are we on internal level at all? */ if (level > LEAF_LEVEL) { /* Getting first nodeptr on level to get node by it and in such a manner to move control flow to next level of tree. */ reiser4_place_assign(&place, node, 0, 0); /* Getting first node of the next level. */ if (!(node = reiser4_tree_child_node(tree, &place))) { aal_error("Can't get first node on level %u.", level); return -EINVAL; } } } /* Loop for packing a level starting from leftmost node on leaf level. */ for (level = LEAF_LEVEL; level < reiser4_tree_get_height(tree); level++) { reiser4_node_t *parent = node->p.node; if ((res = reiser4_tree_compress_level(tree, node))) return res; if (!(node = parent)) break; } return 0; } /* Saves all dirty nodes in tree to device tree lies on. */ errno_t reiser4_tree_sync(reiser4_tree_t *tree) { errno_t res; aal_assert("umka-2259", tree != NULL); if (!tree->root) return 0; /* Flushing formatted nodes starting from root node with memory pressure flag set to 0, that is do not check memory presure, and save everything. */ if ((res = reiser4_tree_walk_node(tree, tree->root, cb_node_adjust, cb_nodeptr_adjust, cb_node_unload))) { aal_error("Can't save formatted nodes to device."); return res; } /* Flushing unformatted blocks (extents data) attached to @tree->data hash table. */ if ((res = aal_hash_table_foreach(tree->blocks, cb_save_block, tree))) { aal_error("Can't save unformatted nodes to device."); return res; } return res; } /* Correct passed @place according to handle key collisions. */ lookup_t reiser4_tree_collision(reiser4_tree_t *tree, reiser4_place_t *place, coll_hint_t *hint) { uint32_t adjust = 0; uint32_t units, unit; lookup_t lookup = PRESENT; aal_assert("umka-3130", tree != NULL); aal_assert("vpf-1522", place != NULL); if (hint == NULL) return PRESENT; /* If type does not match, there is no collision found. */ if (place->plug->p.id.group != hint->type) return PRESENT; /* Key collisions handling. Sequentional search by name. */ while (1) { units = reiser4_item_units(place); if (place->pos.unit != MAX_UINT32 && place->pos.unit >= units) { reiser4_place_t temp; /* Getting next item. */ if ((reiser4_tree_next_place(tree, place, &temp))) return -EIO; /* Directory is over? */ if (!temp.node || !plug_equal(place->plug, temp.plug)) { place->key.adjust = adjust; return ABSENT; } aal_memcpy(place, &temp, sizeof(*place)); } unit = place->pos.unit == MAX_UINT32 ? 0 : place->pos.unit; if ((lookup = reiser4_item_collision(place, hint)) < 0) return lookup; adjust += place->pos.unit - unit; if (place->pos.unit < units) break; } place->key.adjust = adjust; return PRESENT; } /* Makes search of the leftmost item/unit with the same key as passed @key is starting from @place. This is needed to work with key collisions. */ static errno_t reiser4_tree_collision_start(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_key_t *key) { reiser4_place_t walk; aal_assert("umka-2396", key != NULL); aal_assert("umka-2388", tree != NULL); aal_assert("umka-2389", place != NULL); if (reiser4_place_fetch(place)) return -EINVAL; aal_memcpy(&walk, place, sizeof(*place)); /* Main loop until leftmost node reached. */ while (walk.node) { int32_t i; /* Loop through the items of the current node */ for (i = walk.pos.item - 1; i >= 0; i--) { walk.pos.item = i; /* Fetching item info */ if (reiser4_place_fetch(&walk)) return -EINVAL; /* If items of different objects, get out here. */ if (reiser4_key_compshort(&walk.key, key)) return 0; /* If the maxreal key does not match anymore, get out here. This clause is needed for the case of corruption when not directory item has a NAME minor. */ if (walk.plug->balance->maxposs_key) { reiser4_key_t maxkey; reiser4_item_maxposs_key(&walk, &maxkey); if (reiser4_key_compfull(&maxkey, key) < 0) return 0; } /* If item's lookup is implemented, we use it. Item key comparing is used otherwise. */ if (walk.plug->balance->lookup) { lookup_hint_t lhint; lhint.key = key; switch (objcall(&walk, balance->lookup, &lhint, FIND_EXACT)) { case PRESENT: aal_memcpy(place, &walk, sizeof(*place)); break; default: return 0; } } else if (!reiser4_key_compfull(&walk.key, key)) { aal_memcpy(place, &walk, sizeof(*place)); } else { return 0; } } /* Getting left neighbour node. */ reiser4_node_lock(place->node); reiser4_tree_ltrt_node(tree, walk.node, DIR_LEFT); reiser4_node_unlock(place->node); /* Initializing @walk by neighbour node and last item. */ if ((walk.node = walk.node->left)) { int32_t items = reiser4_node_items(walk.node); /* Here should be namely @items, not @items - 1, because we will access @walk.item - 1 on the next cycle */ POS_INIT(&walk.pos, items, MAX_UINT32); } } return 0; } #endif #define restore_and_exit(res) \ do {hint->key = saved; return res;} while (0) /* Makes search in the tree by specified @key. Fills passed place by data of found item. That is body pointer, plugin, etc. */ lookup_t reiser4_tree_lookup(reiser4_tree_t *tree, lookup_hint_t *hint, lookup_bias_t bias, reiser4_place_t *place) { lookup_t res; reiser4_key_t *saved; reiser4_key_t wanted; aal_assert("umka-742", hint != NULL); aal_assert("umka-1760", tree != NULL); aal_assert("umka-2057", place != NULL); aal_assert("umka-3088", hint->key != NULL); /* We store @key in @wanted. All consequence code will use @wan. This is needed, because @key might point to @place->key in @place and will be corrupted during lookup. */ aal_memcpy(&wanted, hint->key, sizeof(wanted)); /* Setting hint->key to stored local key in order to keep not corrupted if it points to @place->key and will be chnaged after @place is modified. It will be restored after lookup is finished. */ saved = hint->key; hint->key = &wanted; /* Zeroing place just of rcase it was not initialized before to prevent having some garbage in it. */ aal_memset(place, 0, sizeof(*place)); #ifndef ENABLE_MINIMAL /* Making sure that root exists. If not, getting out with @place initialized by NULL root. */ if (reiser4_tree_fresh(tree)) { reiser4_place_assign(place, NULL, 0, MAX_UINT32); return ABSENT; } else { #endif if ((res = reiser4_tree_load_root(tree)) < 0) return res; reiser4_place_assign(place, tree->root, 0, MAX_UINT32); #ifndef ENABLE_MINIMAL } #endif while (1) { uint32_t clevel; lookup_bias_t cbias; blk_t blk; clevel = reiser4_node_get_level(place->node); cbias = (clevel > hint->level ? FIND_EXACT : bias); /* Looking up for key inside node. Result of lookuping will be stored in &place->pos. */ res = reiser4_node_lookup(place->node, hint, cbias, &place->pos); /* Check if we should finish lookup because we reach stop level or some error occurred during last node lookup. */ if (clevel <= hint->level || res < 0) { if (res == PRESENT) { #ifndef ENABLE_MINIMAL if (reiser4_tree_collision_start(tree, place, &wanted)) { restore_and_exit(-EIO); } /* Handle collisions. */ if (hint->collision) { tree_entity_t *t; t = (tree_entity_t *)tree; res = hint->collision(t, place, hint->hint); if (res < 0) restore_and_exit(res); } #endif /* Fetching item at @place if key is found */ if (reiser4_place_fetch(place)) restore_and_exit(-EIO); } restore_and_exit(res); } /* Initializing @place. This should be done before using any item methods or access @place fields. */ if (!reiser4_place_valid(place)) restore_and_exit(ABSENT); if (reiser4_place_fetch(place)) restore_and_exit(-EIO); /* Checking is item at @place is nodeptr one. If not, we correct posision back. */ if (!reiser4_item_branch(place->plug)) restore_and_exit(res); /* Loading node by its nodeptr item at @place. */ blk = reiser4_item_down_link(place); if (!(place->node = reiser4_tree_load_node(tree, place->node, blk))) { aal_error("Can't load child node %llu.", blk); restore_and_exit(-EIO); } /* Zero the plug pointer. */ place->plug = NULL; } restore_and_exit(ABSENT); } #ifndef ENABLE_MINIMAL /* Returns 1 if passed @tree has minimal possible height and thus cannot be dried out. Othersize 0 is returned. */ bool_t reiser4_tree_minimal(reiser4_tree_t *tree) { return (reiser4_tree_get_height(tree) <= 2); } /* Returns 1 if root node contain one item, that is, tree is singular and should be dried out. Otherwise 0 is returned. */ bool_t reiser4_tree_singular(reiser4_tree_t *tree) { return (reiser4_node_items(tree->root) == 1); } /* Returns 1 if tree has not root node and 0 otherwise. Tree has not root just after format instance is created and tree is initialized on fs with it. And thus tree has not any nodes in it. */ bool_t reiser4_tree_fresh(reiser4_tree_t *tree) { aal_assert("umka-1930", tree != NULL); return (reiser4_tree_get_root(tree) == INVAL_BLK); } /* Updates key at passed @place by passed @key by means of using node_update_key() function in recursive maner. This function is used for update all internal left delimiting keys after balancing on underlying levels. */ errno_t reiser4_tree_update_keys(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_key_t *key) { errno_t res; reiser4_key_t pkey; aal_assert("umka-1892", tree != NULL); aal_assert("umka-1893", place != NULL); aal_assert("umka-1894", key != NULL); /* Small improvement. Do not update keys if this is not really needed. */ reiser4_item_get_key(place, &pkey); if (!reiser4_key_compfull(&pkey, key)) return 0; aal_memcpy(&place->key, key, sizeof(*key)); /* Check if we should update keys on higher levels of tree. */ if (reiser4_place_leftmost(place) && place->node->p.node) { reiser4_place_t *parent = &place->node->p; if ((res = reiser4_tree_update_keys(tree, parent, key))) return res; } /* Actual key updating in @place->node. */ return reiser4_node_update_key(place->node, &place->pos, key); } /* Returns 1 for attached node and 0 otherwise. */ bool_t reiser4_tree_attached_node(reiser4_tree_t *tree, reiser4_node_t *node) { aal_assert("umka-3128", tree != NULL); aal_assert("umka-3129", node != NULL); if (reiser4_tree_fresh(tree)) return 0; if (reiser4_tree_root_node(tree, node)) return 1; return (node->p.node != NULL && (reiser4_tree_t *)node->tree == tree); } /* This function inserts new nodeptr item to the tree and in such way attaches passed @node to tree. It also connects passed @node into tree cache. */ errno_t reiser4_tree_attach_node(reiser4_tree_t *tree, reiser4_node_t *node, reiser4_place_t *place, uint32_t flags) { errno_t res; uint8_t level; ptr_hint_t ptr; trans_hint_t hint; aal_assert("umka-913", tree != NULL); aal_assert("umka-916", node != NULL); aal_assert("umka-3104", place != NULL); aal_memset(&hint, 0, sizeof(hint)); hint.count = 1; hint.specific = &ptr; hint.shift_flags = flags; hint.plug = (reiser4_item_plug_t *)tree->ent.tset[TSET_NODEPTR]; ptr.width = 1; ptr.start = node->block->nr; level = reiser4_node_get_level(node) + 1; reiser4_node_leftmost_key(node, &hint.offset); /* Inserting node ptr into tree. */ if ((res = reiser4_tree_insert(tree, place, &hint, level)) < 0) { aal_error("Can't insert nodeptr item to the tree."); return res; } /* Connecting node to tree cache. */ if ((res = reiser4_tree_connect_node(tree, place->node, node))) { aal_error("Can't connect node %llu to tree cache.", node->block->nr); return res; } /* This is needed to update sibling pointers, as new attached node may be inserted between two nodes, that has established sibling links and they should be changed. */ reiser4_tree_ltrt_node(tree, node, DIR_LEFT); reiser4_tree_ltrt_node(tree, node, DIR_RIGHT); return 0; } /* Removes passed @node from the on-disk tree and cache structures. That is removes nodeptr item from the tree and node instance itself from its parent children list. */ errno_t reiser4_tree_detach_node(reiser4_tree_t *tree, reiser4_node_t *node, uint32_t flags) { errno_t res; reiser4_place_t parent; aal_assert("umka-1726", tree != NULL); aal_assert("umka-1727", node != NULL); /* Save parent pos, because it will be needed later and it is destroed by tree_disconnect_node(). */ parent = node->p; /* Disconnecting @node from tree. This should be done before removing nodeptr item in parent, as parent may get empty and we will unable to release it as it is locked by connect @node. */ if ((res = reiser4_tree_disconnect_node(tree, node))) { aal_error("Can't disconnect node %llu " "from tree during its detaching.", node->block->nr); return res; } /* Disconnecting node from parent node if any. */ if (!reiser4_tree_root_node(tree, node)) { trans_hint_t hint; hint.count = 1; hint.place_func = NULL; hint.region_func = NULL; hint.shift_flags = flags; /* Removing nodeptr item/unit at @parent. */ return reiser4_tree_remove(tree, &parent, &hint); } else { /* Putting INVAL_BLK into root block number in super block to let know that old root is detached. */ reiser4_tree_set_root(tree, INVAL_BLK); } return 0; } /* This function forces tree to grow by one level and sets it up after the growing. This occurs when after next balancing root node needs to accept new nodeptr item, but has not free space enough. */ errno_t reiser4_tree_growup(reiser4_tree_t *tree) { errno_t res; uint32_t height; reiser4_place_t aplace; reiser4_node_t *new_root; reiser4_node_t *old_root; aal_assert("umka-1701", tree != NULL); aal_assert("umka-1736", tree->root != NULL); height = reiser4_tree_get_height(tree) + 1; /* Allocating new root node. */ if (!(new_root = reiser4_tree_alloc_node(tree, height))) return -ENOSPC; if ((res = reiser4_tree_load_root(tree))) goto error_free_new_root; old_root = tree->root; /* Detaching old root from tree first. */ if ((res = reiser4_tree_detach_node(tree, old_root, SF_DEFAULT))) { aal_error("Can't detach old root node %llu from " "tree during tree growing up.", old_root->block->nr); goto error_return_root; } /* Assign new root node, changing tree height and root node blk in format used in fs instance tree belongs to. */ if ((res = reiser4_tree_assign_root(tree, new_root))) { aal_error("Can't assign new root node " "durring tree growing up."); goto error_free_new_root; } /* Attaching old root to tree back. Now it should be attached to new root node, not to virtual super block. */ reiser4_node_lock(new_root); /* Place old root will be attached. */ reiser4_place_assign(&aplace, new_root, 0, MAX_UINT32); if ((res = reiser4_tree_attach_node(tree, old_root, &aplace, SF_DEFAULT))) { aal_error("Can't attach node %llu to tree during" "tree growing up.", old_root->block->nr); reiser4_node_unlock(new_root); goto error_return_root; } reiser4_node_unlock(new_root); return 0; error_return_root: reiser4_tree_assign_root(tree, old_root); error_free_new_root: reiser4_tree_release_node(tree, new_root); return res; } /* Decreases tree height by one level. This occurs when tree gets singular (root has one nodeptr item) after one of removals. */ errno_t reiser4_tree_dryout(reiser4_tree_t *tree) { errno_t res; reiser4_place_t place; reiser4_node_t *new_root; reiser4_node_t *old_root; aal_assert("umka-1731", tree != NULL); aal_assert("umka-1737", tree->root != NULL); if (reiser4_tree_minimal(tree)) return -EINVAL; /* Rasing up the root node if it exists. */ if ((res = reiser4_tree_load_root(tree))) return res; old_root = tree->root; /* Getting new root as the first child of the old root node. */ reiser4_place_assign(&place, old_root, 0, 0); if (!(new_root = reiser4_tree_child_node(tree, &place))) { aal_error("Can't load new root during " "drying tree out."); return -EINVAL; } /* Detaching new root from its parent (old_root). This will also release parent node from tree, as it will be empty. */ if ((res = reiser4_tree_detach_node(tree, new_root, SF_DEFAULT))) { aal_error("Can't detach new root from " "tree during tree drying out."); return res; } /* Assign new root node. Setting tree height to new root level and root block number to new root block number. */ if ((res = reiser4_tree_assign_root(tree, new_root))) { aal_error("Can't assign new root node " "durring tree drying out."); return res; } return 0; } /* Tries to shift items and units from @place to passed @neig node. After that it's finished, place will contain new insert point, which may be used for inserting item/unit to it. */ errno_t reiser4_tree_shift(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_node_t *neig, uint32_t flags) { errno_t res; reiser4_node_t *node; reiser4_node_t *right; shift_hint_t hint; reiser4_key_t lkey; uint8_t start; aal_assert("umka-1225", tree != NULL); aal_assert("umka-1226", place != NULL); aal_assert("umka-1227", neig != NULL); aal_memset(&hint, 0, sizeof(hint)); /* Prepares shift hint. Initializing shift flags (shift direction, is it allowed to create new nodes, etc) and insert point. */ node = place->node; hint.control = flags; hint.pos = place->pos; /* Needed for the left shift. */ start = reiser4_node_items(neig); start = start ? start - 1 : 0; /* Perform node shift from @node to @neig. */ if ((res = reiser4_node_shift(node, neig, &hint))) return res; /* Check if insert point was moved to neighbour node. If so, assign neightbour node to insert point coord. */ if (hint.result & SF_MOVE_POINT) place->node = neig; /* Updating @place->pos by hint->pos if there is permission flag. */ if (hint.control & SF_UPDATE_POINT) place->pos = hint.pos; right = (hint.control & SF_ALLOW_LEFT) ? node : neig; /* Check if we need update key in insert part of tree. That is if source node is not empty and there was actually moved at least one item or unit. */ if (reiser4_node_items(right) > 0 && hint.update) { /* Check if node is connected to tree or it is not root and updating left delimiting keys if it makes sense at all. */ if (right->p.node != NULL) { reiser4_place_t parent; /* Getting leftmost key from @right. */ reiser4_node_leftmost_key(right, &lkey); /* Recursive updating of all internal keys that supposed to be updated. */ aal_memcpy(&parent, &right->p, sizeof(parent)); if ((res = reiser4_tree_update_keys(tree, &parent, &lkey))) return res; } } /* Updating @node and @neig children's parent position. */ if (reiser4_node_get_level(node) > LEAF_LEVEL) { reiser4_node_t *left = (hint.control & SF_ALLOW_LEFT) ? neig : NULL; if (left && reiser4_node_items(left) > 0) { if ((res = reiser4_tree_update_node(tree, left, start, reiser4_node_items(left)))) { return res; } } if (reiser4_node_items(right) > 0) { if ((res = reiser4_tree_update_node(tree, right, 0, reiser4_node_items(right)))) { return res; } } } return 0; } /* Shifts data from passed @place to one of neighbour nodes basing on passed @flags. */ static errno_t tree_shift_todir(reiser4_tree_t *tree, reiser4_place_t *place, uint32_t flags, int direction) { errno_t res; uint32_t shift_flags = 0; reiser4_node_t *neighbour; reiser4_node_t *old_node; if (direction == DIR_LEFT && (SF_ALLOW_LEFT & flags)) shift_flags = SF_ALLOW_LEFT; if (direction == DIR_RIGHT && (SF_ALLOW_RIGHT & flags)) shift_flags = SF_ALLOW_RIGHT; /* Setting up shift flags. */ shift_flags |= SF_UPDATE_POINT; if (SF_ALLOW_MERGE & flags) shift_flags |= SF_ALLOW_MERGE; if (SF_HOLD_POS & flags) shift_flags |= SF_HOLD_POS; old_node = place->node; /* Getting neighbour. */ neighbour = direction == DIR_LEFT ? place->node->left : place->node->right; aal_assert("umka-3096", neighbour != NULL); /* Shift items from @place to @left neighbour. */ if ((res = reiser4_tree_shift(tree, place, neighbour, shift_flags))) return res; if (reiser4_node_items(old_node) == 0 && old_node != place->node) { if (reiser4_node_locked(old_node)) { old_node->flags |= NF_HEARD_BANSHEE; } else { reiser4_node_lock(place->node); if ((res = reiser4_tree_discard_node(tree, old_node))) { reiser4_node_unlock(place->node); return res; } reiser4_node_unlock(place->node); } } return 0; } /* This calculates if space in passed @needed is enough for passed @needed. */ static inline int32_t tree_calc_space(reiser4_place_t *place, uint32_t ioverh) { uint32_t overh = reiser4_node_overhead(place->node); return reiser4_node_space(place->node) - (place->pos.unit == MAX_UINT32 ? (overh + ioverh) : 0); } /* Makes space in tree to insert @ilen bytes of data. Returns space in insert point, or negative value for errors. */ int32_t reiser4_tree_expand(reiser4_tree_t *tree, reiser4_place_t *place, reiser4_place_t *parent, uint32_t ilen, uint32_t ioverh, uint32_t flags) { int alloc; errno_t res; uint8_t level; int32_t enough; aal_assert("umka-929", tree != NULL); aal_assert("umka-766", place != NULL); aal_assert("umka-3064", place->node != NULL); aal_assert("vpf-1543", ilen + ioverh <= reiser4_node_maxspace(place->node)); if (reiser4_tree_fresh(tree)) return -EINVAL; /* Check if there is enough space in insert point node. If so -- do nothing but exit. Here is also check if node is empty. Then we exit too and return available space in it. */ if ((enough = tree_calc_space(place, ioverh)) >= (int32_t)ilen) return enough; /* Shifting data into left neighbour if it exists and left shift allowing flag is specified. */ if ((SF_ALLOW_LEFT & flags) && reiser4_tree_ltrt_node(tree, place->node, DIR_LEFT)) { if ((res = tree_shift_todir(tree, place, flags, DIR_LEFT))) return res; if ((enough = tree_calc_space(place, ioverh)) >= (int32_t)ilen) return enough; } /* Shifting data into right neighbour if it exists and right shift allowing flag is specified. */ if ((SF_ALLOW_RIGHT & flags) && reiser4_tree_ltrt_node(tree, place->node, DIR_RIGHT)) { if ((res = tree_shift_todir(tree, place, flags, DIR_RIGHT))) return res; if ((enough = tree_calc_space(place, ioverh)) >= (int32_t)ilen) return enough; } /* Check if we allowed to allocate new nodes if there still not enough of space for insert @ilen bytes of data to tree. */ if (!(SF_ALLOW_ALLOC & flags)) return tree_calc_space(place, ioverh); /* Here we still have not enough free space for inserting item/unit into the tree. Allocating new nodes and trying to shift data into them. There are possible two tries to allocate new node and shift insert point to one of them. */ for (alloc = 0; enough < (int32_t)ilen && alloc < 2; alloc++) { reiser4_place_t save; reiser4_node_t *node; uint32_t shift_flags; uint32_t left_items; reiser4_place_t aplace; /* Saving place as it will be usefull for us later */ aal_memcpy(&save, place, sizeof(*place)); /* Allocating new node of @level */ level = reiser4_node_get_level(place->node); if (!(node = reiser4_tree_alloc_node(tree, level))) return -ENOSPC; /* reiser4_place_leftmost cannot be used here because unit == 0 mean we should stay on this item -- writing to the extent with holes or inserting a SD extention. */ if (place->pos.unit == MAX_UINT32 && place->pos.item == 0) { /* Do not shift anything for the leftmost position. Just insert the new node and move the insert point there. */ aal_memcpy(&aplace, &place->node->p, sizeof(aplace)); place->node = node; place->pos.item = 0; place->pos.unit = MAX_UINT32; } else { /* Setting up shift flags. */ shift_flags = (SF_ALLOW_RIGHT | SF_UPDATE_POINT); if (SF_ALLOW_MERGE & flags) shift_flags |= SF_ALLOW_MERGE; if (SF_HOLD_POS & flags) shift_flags |= SF_HOLD_POS; /* We will allow to move insert point to neighbour node if we at first iteration in this loop or if place points behind the last unit of last item in current node. */ if (alloc > 0 || reiser4_place_rightmost(place)) shift_flags |= SF_MOVE_POINT; /* Shift data from @place to @node. Updating @place by new insert point. */ if ((res = reiser4_tree_shift(tree, place, node, shift_flags))) { return res; } /* Preparing new @node parent place. */ tree_next_child_pos(save.node, &aplace); } left_items = reiser4_node_items(save.node); if (left_items == 0) { reiser4_node_lock(save.node); /* If evth was moved to the new allocated node, it will be attached below. Do not pack the tree here, avoid 2 balancings. */ shift_flags = SF_DEFAULT & ~SF_ALLOW_PACK; if ((res = reiser4_tree_detach_node(tree, save.node, shift_flags))) { reiser4_node_unlock(save.node); return res; } reiser4_node_unlock(save.node); aplace.pos.item--; } if (reiser4_node_items(node) > 0) { reiser4_node_lock(save.node); /* Growing tree in the case we splitted the root node. */ if (reiser4_tree_root_node(tree, save.node)) { reiser4_node_t *old_root = tree->root; if ((res = reiser4_tree_growup(tree))) { reiser4_node_unlock(save.node); return res; } tree_next_child_pos(old_root, &aplace); } /* Attach new node to tree if it is not empty. */ if ((res = reiser4_tree_attach_node(tree, node, &aplace, SF_DEFAULT))) { reiser4_node_unlock(save.node); return res; } reiser4_node_unlock(save.node); /* Update the parent to the just attached node's parent. Needed as @save.node may be detached already. */ aal_memcpy(parent, &node->p, sizeof(*parent)); } else { /* As node was not attached here, it will be attached in caller function, so we needd to update @parent by coord of attach. */ aal_memcpy(parent, &aplace, sizeof(aplace)); } /* If we are still in the same node, but on not-esistent anymore item, set unit position to MAX_UINT32. */ if (save.node == place->node && place->pos.item >= left_items) { aal_assert("vpf-1793", place->pos.unit == MAX_UINT32); } /* Checking if it is enough of space in @place. */ enough = tree_calc_space(place, ioverh); if (enough < (int32_t)ilen && save.node != place->node) { aal_bug("vpf-1796", "When the insertion point is " "moved to the new node, it is the second " "node allocation and there must be enother " "space."); } /* Releasing new allocated @node if it is empty and insert point is not inside it. */ if (reiser4_node_items(node) == 0 && node != place->node) reiser4_tree_release_node(tree, node); /* Releasing save.@node if it is empty and insert point is not inside it. */ if (left_items == 0 && save.node != place->node) { aal_bug("vpf-1795", "The insert point cannot " "move to the new node with all items."); } } return enough; } /* Packs node in @place by means of using shift to left. */ errno_t reiser4_tree_shrink(reiser4_tree_t *tree, reiser4_place_t *place) { errno_t res; uint32_t flags; reiser4_node_t *left, *right; aal_assert("umka-1784", tree != NULL); aal_assert("umka-1783", place != NULL); /* Shift flags to be used in packing. */ flags = (SF_ALLOW_LEFT | SF_ALLOW_MERGE); /* Packing node in order to keep the tree in well packed state anyway. Here we will shift data from the target node to its left neighbour node. */ if ((left = reiser4_tree_ltrt_node(tree, place->node, DIR_LEFT))) { if ((res = reiser4_tree_shift(tree, place, left, flags))) { aal_error("Can't pack node %llu into left.", place_blknr(place)); return res; } } if (reiser4_node_items(place->node) > 0) { /* Shifting the data from the right neigbour node into the target node. */ if ((right = reiser4_tree_ltrt_node(tree, place->node, DIR_RIGHT))) { reiser4_place_t bogus; reiser4_place_assign(&bogus, right, 0, MAX_UINT32); if ((res = reiser4_tree_shift(tree, &bogus, place->node, flags))) { aal_error("Can't pack node %llu into right.", right->block->nr); return res; } /* Check if @bogus.node got empty. If so -- it will be released from tree and tree cache. */ if (reiser4_node_items(bogus.node) == 0) { if (reiser4_node_locked(bogus.node)) { bogus.node->flags |= NF_HEARD_BANSHEE; }else { reiser4_tree_discard_node(tree, bogus.node); } } } } else { /* Release node, because it got empty. */ if (reiser4_node_locked(place->node)) { place->node->flags |= NF_HEARD_BANSHEE; } else { if ((res = reiser4_tree_discard_node(tree, place->node))) return res; place->node = NULL; } } /* Drying tree up in the case root node has only one item. */ if (tree->root && reiser4_tree_singular(tree) && !reiser4_tree_minimal(tree)) { if ((res = reiser4_tree_dryout(tree))) return res; } return 0; } /* Splits out the tree from passed @place up until passed @level is reached. This is used in fsck and in extents write code. */ static errno_t reiser4_tree_split(reiser4_tree_t *tree, reiser4_place_t *place, uint8_t level) { errno_t res; uint32_t flags; uint32_t clevel; reiser4_node_t *node; aal_assert("vpf-674", level > 0); aal_assert("vpf-672", tree != NULL); aal_assert("vpf-673", place != NULL); aal_assert("vpf-813", place->node != NULL); clevel = reiser4_node_get_level(place->node); aal_assert("vpf-680", clevel < level); /* Loop until desired @level is reached.*/ while (clevel < level) { aal_assert("vpf-676", place->node->p.node != NULL); /* Check if @place points inside node. That is should we split node or not. */ if (!reiser4_place_leftmost(place) && !reiser4_place_rightmost(place)) { reiser4_place_t aplace; /* We are not on the border, split @place->node. That is allocate new right neighbour node and move all item right to @place->pos to new allocated node. */ if (!(node = reiser4_tree_alloc_node(tree, clevel))) { aal_error("Tree failed to allocate " "a new node."); return -EINVAL; } /* Flags allowed to be used during shift. */ flags = (SF_ALLOW_RIGHT | SF_UPDATE_POINT | SF_ALLOW_MERGE); /* Perform shift from @place->node to @node. */ if ((res = reiser4_tree_shift(tree, place, node, flags))) { aal_error("Tree failed to shift into a " "new allocated node."); goto error_free_node; } aal_assert("umka-3048", reiser4_node_items(node) > 0); reiser4_node_lock(place->node); /* Check if we should grow up the tree. */ if (reiser4_tree_root_node(tree, place->node)) { reiser4_node_t *old_root = tree->root; if ((res = reiser4_tree_growup(tree))) { reiser4_node_unlock(place->node); goto error_free_node; } tree_next_child_pos(old_root, &aplace); } else tree_next_child_pos(place->node, &aplace); /* Attach new node to tree. */ if ((res = reiser4_tree_attach_node(tree, node, &aplace, SF_DEFAULT))) { aal_error("Tree is failed to attach " "node during split opeartion."); reiser4_node_unlock(place->node); goto error_free_node; } reiser4_node_unlock(place->node); /* Updating @place by parent coord from @place. */ aal_memcpy(place, &node->p, sizeof(*place)); } else { int rightmost = reiser4_place_rightmost(place); /* There is nothing to move out. We are on node border (rightmost or leftmost). Here we should just go up by one level and increment position if @place was at rightmost position in the node. */ aal_memcpy(place, &place->node->p, sizeof(*place)); if (rightmost) { bool_t whole; whole = (place->pos.unit == MAX_UINT32); reiser4_place_inc(place, whole); } } clevel++; } return 0; error_free_node: reiser4_tree_release_node(tree, node); return res; } /* This grows tree until requested level reached. */ static inline errno_t tree_growup_level(reiser4_tree_t *tree, uint8_t level) { if (level <= reiser4_tree_get_height(tree)) return 0; if (reiser4_tree_fresh(tree)) return -EINVAL; while (level > reiser4_tree_get_height(tree)) { errno_t res; if ((res = reiser4_tree_growup(tree))) return res; } return 0; } /* This function prepares the tree for insert. That is it allocated root and first leaf if needed, splits the tree, etc. */ static inline errno_t tree_prep_modify(reiser4_tree_t *tree, reiser4_place_t *parent, reiser4_place_t *place, uint8_t level) { reiser4_node_t *root; uint32_t height; errno_t res; /* Check if tree has at least one node. If so -- load root node. Tree has not nodes just after it is created. Root node and first leaf will be created on demand then. */ if (!reiser4_tree_fresh(tree)) { aal_assert("umka-3124", place->node != NULL); reiser4_node_lock(place->node); if ((res = reiser4_tree_load_root(tree))) { reiser4_node_unlock(place->node); return res; } reiser4_node_unlock(place->node); } /* Checking if we have the tree with height less than requested level. If so, we should grow the tree up to requested level. */ if (level > reiser4_tree_get_height(tree)) { reiser4_node_lock(place->node); if ((res = tree_growup_level(tree, level))) { reiser4_node_unlock(place->node); return res; } reiser4_node_unlock(place->node); } if (!reiser4_tree_fresh(tree)) { if (level < reiser4_node_get_level(place->node)) { aal_memcpy(parent, place, sizeof(*place)); /* Allocating node of requested level and assign place for insert to it. This is the case, when we insert a tail among extents. That is previous lookup stoped on twig level and now we have to allocate a node of requested level, insert tail to it and then attach new node to tree. */ if (!(place->node = reiser4_tree_alloc_node(tree, level))) return -ENOSPC; POS_INIT(&place->pos, 0, MAX_UINT32); } else { if (level > reiser4_node_get_level(place->node)) { /* Prepare the tree for insertion at the @level. Here is case when extent is going to inserted. As lookup goes to the leaf level, we split tree from leaf level up to requested @level, which is level new extent should be inserted. */ if ((res = reiser4_tree_split(tree, place, level))) return res; } /* Here we do not need to update @parent, as there is no new not attached nodes. */ } } else { aal_assert("umka-3055", place->node == NULL); /* Preparing tree for insert first item (allocating root, etc). */ height = reiser4_tree_get_height(tree); if (!(root = reiser4_tree_alloc_node(tree, height))) return -ENOSPC; if ((res = reiser4_tree_assign_root(tree, root))) return res; if (level == reiser4_node_get_level(root)) { place->node = root; } else { if (!(place->node = reiser4_tree_alloc_node(tree, level))) return -ENOMEM; } POS_INIT(&place->pos, 0, MAX_UINT32); reiser4_place_init(parent, root, &place->pos); } return 0; } static inline errno_t tree_post_modify(reiser4_tree_t *tree, reiser4_place_t *place) { uint32_t items; errno_t res; /* Nothing to be done if no item is left in the node. */ if (!(items = reiser4_node_items(place->node))) return 0; /* Initializing insert point place. */ if ((res = reiser4_place_fetch(place))) return res; /* Parent keys will be updated if we inserted item/unit into leftmost pos and if target node has parent. */ if (reiser4_place_leftmost(place) && place->node->p.node) { /* We will not update keys if node is not attached to tree yet. This will be done later on its attach. */ reiser4_place_t *parent = &place->node->p; reiser4_key_t lkey; reiser4_item_get_key(place, &lkey); if ((res = reiser4_tree_update_keys(tree, parent, &lkey))) return res; } /* Update @place->node children's parent pointers. */ if (reiser4_node_get_level(place->node) > LEAF_LEVEL) { if ((res = reiser4_tree_update_node(tree, place->node, place->pos.item, items))) { return res; } } return 0; } /* Main function for tree modifications. It is used for inserting data to tree (stat data items, directries) or writting (tails, extents). */ int64_t reiser4_tree_modify(reiser4_tree_t *tree, reiser4_place_t *place, trans_hint_t *hint, uint8_t level, estimate_func_t estimate_func, modify_func_t modify_func) { bool_t mode; errno_t res; int32_t space; int32_t write; reiser4_place_t parent; aal_assert("umka-2673", tree != NULL); aal_assert("umka-2674", hint != NULL); aal_assert("umka-1645", hint->plug != NULL); aal_assert("umka-1644", place != NULL); aal_assert("umka-2676", modify_func != NULL); aal_assert("umka-2675", estimate_func != NULL); /* Preparing the tree modification. This may include splitting, allocating root, etc. */ if ((res = tree_prep_modify(tree, &parent, place, level))) return res; /* Estimating item/unit to inserted/written to tree. */ if ((res = estimate_func(place, hint))) return res; /* Needed space to be prepared in tree. */ mode = (place->pos.unit == MAX_UINT32); /* Preparing space in tree. */ space = reiser4_tree_expand(tree, place, &parent, hint->len, hint->overhead, hint->shift_flags); /* Needed space is the length of the item + an item overhead on the item creation if needed. */ if (place->pos.unit != MAX_UINT32) hint->overhead = 0; if (space < 0) { aal_error("Can't prepare space in tree."); return space; } else { /* Checking if we still have less space than needed. This is ENOSPC case if we tried to insert data. */ if (space < hint->len) return -ENOSPC; } reiser4_node_lock(place->node); /* Inserting/writing data to node. */ if ((write = modify_func(place->node, &place->pos, hint)) < 0) { aal_error("Can't insert data to node %llu.", place_blknr(place)); return write; } reiser4_node_unlock(place->node); if ((res = tree_post_modify(tree, place))) return res; /* If make space function allocates new node, we should attach it to the tree. Also, here we should handle the special case, when tree root should be changed. */ if (place->node != tree->root && !place->node->p.node) { /* Check if insert was on root node level. If so -- growing tree up by one. */ if (level == reiser4_tree_get_height(tree)) { reiser4_node_t *old_root = tree->root; reiser4_node_lock(place->node); if ((res = reiser4_tree_growup(tree))) { aal_error("Can't grow tree up during " "modifying it."); reiser4_node_unlock(place->node); return res; } reiser4_node_unlock(place->node); /* Handling tree growth case. */ tree_next_child_pos(old_root, &parent); } /* Attaching new node to the tree. */ if ((res = reiser4_tree_attach_node(tree, place->node, &parent, hint->shift_flags))) { aal_error("Can't attach node %llu to tree.", place_blknr(place)); return res; } } /* Calling @hint->place_func if a new item was created. */ if (hint->place_func && place->pos.unit == MAX_UINT32) { if ((res = hint->place_func(place, hint->data))) return res; } return write; } /* Estimates how many bytes is needed to insert data described by @hint. */ static errno_t cb_tree_prep_insert(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("umka-2440", hint != NULL); aal_assert("umka-2439", place != NULL); hint->len = 0; hint->overhead = 0; return plugcall(hint->plug->object, prep_insert, place, hint); } static errno_t cb_tree_insert(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint) { return objcall(node, insert, pos, hint); } /* Inserts data to the tree. This function is used for inserting items which are not file body items, that is statdata, directory, etc. */ int64_t reiser4_tree_insert(reiser4_tree_t *tree, reiser4_place_t *place, trans_hint_t *hint, uint8_t level) { return reiser4_tree_modify(tree, place, hint, level, cb_tree_prep_insert, cb_tree_insert); } /* Estimates how many bytes is needed to write data described by @hint. */ static errno_t cb_tree_prep_write(reiser4_place_t *place, trans_hint_t *hint) { aal_assert("umka-3007", hint != NULL); aal_assert("umka-3008", place != NULL); hint->len = 0; hint->overhead = 0; return plugcall(hint->plug->object, prep_write, place, hint); } static errno_t cb_tree_write(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint) { return objcall(node, write, pos, hint); } int64_t reiser4_tree_write(reiser4_tree_t *tree, reiser4_place_t *place, trans_hint_t *hint, uint8_t level) { return reiser4_tree_modify(tree, place, hint, level, cb_tree_prep_write, cb_tree_write); } /* Removes item/unit at @place. */ errno_t reiser4_tree_remove(reiser4_tree_t *tree, reiser4_place_t *place, trans_hint_t *hint) { errno_t res; aal_assert("umka-2055", tree != NULL); aal_assert("umka-2056", place != NULL); aal_assert("umka-2392", hint != NULL); /* Removing iten/unit from the node. */ if ((res = reiser4_node_remove(place->node, &place->pos, hint))) return res; if ((res = tree_post_modify(tree, place))) return res; /* Checking if the node became empty. If so, we release it, otherwise we pack the tree about it. */ if (reiser4_node_items(place->node) == 0) { if (reiser4_node_locked(place->node)) { place->node->flags |= NF_HEARD_BANSHEE; } else { if ((res = reiser4_tree_discard_node(tree, place->node))) return res; place->node = NULL; } } else { if (hint->shift_flags & SF_ALLOW_PACK) { if ((res = reiser4_tree_shrink(tree, place))) return res; } } /* Drying tree up in the case root node exists and tree is singular, that is has only one item. Tree also should not be minimal of height. Here root may be NULL due to nested call from tree_dryout(). */ if (tree->root && reiser4_tree_singular(tree) && !reiser4_tree_minimal(tree) && (hint->shift_flags & SF_ALLOW_PACK)) { if ((res = reiser4_tree_dryout(tree))) return res; } return 0; } /* Traverses @node with passed callback functions as actions. */ errno_t reiser4_tree_trav_node(reiser4_tree_t *tree, reiser4_node_t *node, tree_open_func_t open_func, node_func_t before_func, place_func_t update_func, node_func_t after_func, void *data) { errno_t res = 0; reiser4_place_t place; pos_t *pos = &place.pos; aal_assert("vpf-390", node != NULL); aal_assert("umka-1935", tree != NULL); if (open_func == NULL) open_func = (tree_open_func_t)reiser4_tree_child_node; /* Locking @node to make sure, that it will not be released while we are working with it. Of course, it should be unlocked after we finished. */ reiser4_node_lock(node); if ((before_func && (res = before_func(node, data)))) goto error_unlock_node; /* The loop though the items of current node */ for (pos->item = 0; pos->item < reiser4_node_items(node); pos->item++) { pos->unit = MAX_UINT32; /* If there is a suspicion of a corruption, it must be checked in before_func. All items must be opened here. */ if (reiser4_place_open(&place, node, pos)) { aal_error("Node (%llu), item (%u): Can't open item " "by place.", node->block->nr, pos->item); goto error_after_func; } if (!reiser4_item_branch(place.plug)) continue; /* The loop though the units of the current item */ for (pos->unit = 0; pos->unit < reiser4_item_units(&place); pos->unit++) { reiser4_node_t *child = NULL; /* Opening the node by its pointer kept in @place */ if ((child = open_func(tree, &place, data)) == INVAL_PTR) goto error_after_func; if (!child) goto update; /* Traversing the node */ if ((res = reiser4_tree_trav_node(tree, child, open_func, before_func, update_func, after_func, data)) < 0) { goto error_after_func; } update: if (update_func && (res = update_func(&place, data))) goto error_after_func; } } if (after_func) res = after_func(node, data); reiser4_tree_unlock_node(tree, node); return res; error_after_func: if (after_func) after_func(node, data); error_unlock_node: reiser4_tree_unlock_node(tree, node); return res; } /* Traverses tree with passed callback functions for each event. This is used for all tree traverse related operations like copy, measurements, etc. */ errno_t reiser4_tree_trav(reiser4_tree_t *tree, tree_open_func_t open_func, node_func_t before_func, place_func_t update_func, node_func_t after_func, void *data) { errno_t res; aal_assert("umka-1768", tree != NULL); if ((res = reiser4_tree_load_root(tree))) return res; return reiser4_tree_trav_node(tree, tree->root, open_func, before_func, update_func, after_func, data); } errno_t reiser4_tree_scan(reiser4_tree_t *tree, node_func_t pre_func, place_func_t func, void *data) { reiser4_key_t key, max; errno_t res; aal_assert("vpf-1423", tree != NULL); aal_assert("vpf-1424", func != NULL); if (reiser4_tree_fresh(tree)) return -EINVAL; if ((res = reiser4_tree_load_root(tree))) return res; if (tree->root == NULL) return -EINVAL; /* Prepare the start and the end keys. */ key.plug = max.plug = tree->key.plug; reiser4_key_minimal(&key); reiser4_key_maximal(&max); /* While not the end of the tree. */ while (reiser4_key_compfull(&key, &max)) { reiser4_place_t place; lookup_hint_t hint; lookup_t lookup; pos_t *pos; /* Some items can be handled a few times due to key collisions. */ hint.key = &key; hint.level = LEAF_LEVEL; hint.collision = NULL; /* Lookup the key. FIXME: it is possible to spped it up. */ if ((lookup = reiser4_tree_lookup(tree, &hint, FIND_EXACT, &place)) < 0) { return lookup; } pos = &place.pos; if (pre_func) { if ((res = pre_func(place.node, data)) < 0) return res; /* If res != 0, lookup is needed. */ if (res) continue; } /* Count may get change in func (e.g. after item fusing), so get it on every loop */ while (1) { if (pos->item >= reiser4_node_items(place.node)) { /* All items are handled whithin this node, but lookup is not needed. To avoid infinite loop in the case of key collision, get the next item instead of another lookup call. */ if ((res = reiser4_tree_next_place(tree, &place, &place))) { aal_error("Failed to get the next node."); return res; } if (!place.node) return 0; } if ((res = reiser4_place_fetch(&place))) return res; /* Go down to the child if branch. */ if ((res = reiser4_item_branch(place.plug))) { if (!(place.node = reiser4_tree_child_node(tree, &place))) { return -EIO; } if (pre_func) { if ((res = pre_func(place.node, data)) < 0) { return res; } /* If res != 0, lookup is needed. */ if (res) break; } place.pos.item = -1; continue; } /* Get the key of the next item. */ if ((res = reiser4_tree_next_key(tree, &place, &key))) return res; /* Call func for the item. */ if ((res = func(&place, data)) < 0) return res; /* If res != 0, lookup is needed. */ if (res) break; pos->item++; } } return 0; } /* Makes copy of @src_tree to @dst_tree */ errno_t reiser4_tree_copy(reiser4_tree_t *src_tree, reiser4_tree_t *dst_tree) { aal_assert("umka-2304", src_tree != NULL); aal_assert("umka-2305", dst_tree != NULL); aal_error("Sorry, not implemented yet!"); return -EINVAL; } /* Resizes @tree by @blocks */ errno_t reiser4_tree_resize(reiser4_tree_t *tree, count_t blocks) { aal_assert("umka-2323", tree != NULL); aal_error("Sorry, not implemented yet!"); return -EINVAL; } #endif reiser4progs-1.0.7.orig/libreiser4/format.c0000644000175000017500000002347311131470543016436 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. format.c -- disk format common code. This code is wrapper for disk-format plugin. It is used by filesystem code (filesystem.c) for working with different disk-format plugins in independent maner. */ #include #ifndef ENABLE_MINIMAL bool_t reiser4_format_isdirty(reiser4_format_t *format) { uint32_t state; aal_assert("umka-2106", format != NULL); state = reiser4call(format, get_state); return (state & (1 << ENTITY_DIRTY)); } void reiser4_format_mkdirty(reiser4_format_t *format) { uint32_t state; aal_assert("umka-2107", format != NULL); state = reiser4call(format, get_state); state |= (1 << ENTITY_DIRTY); reiser4call(format, set_state, state); } void reiser4_format_mkclean(reiser4_format_t *format) { uint32_t state; aal_assert("umka-2108", format != NULL); state = reiser4call(format, get_state); state &= ~(1 << ENTITY_DIRTY); reiser4call(format, set_state, state); } #endif /* Opens disk-format on specified device. Actually it just calls specified by "pid" disk-format plugin and that plugin makes all dirty work. */ reiser4_format_t *reiser4_format_open(reiser4_fs_t *fs) { rid_t pid; uint32_t blksize; reiser4_plug_t *plug; reiser4_format_t *format; aal_assert("umka-104", fs != NULL); aal_assert("umka-1700", fs->master != NULL); /* Initializing format instance. */ if (!(format = aal_calloc(sizeof(*format), 0))) return NULL; format->fs = fs; pid = reiser4_master_get_format(fs->master); blksize = reiser4_master_get_blksize(fs->master); /* Finding needed disk-format plugin by its plugin id. */ if (!(plug = reiser4_factory_ifind(FORMAT_PLUG_TYPE, pid))) { aal_error("Can't find disk-format plugin by " "its id 0x%x.", pid); goto error_free_format; } /* Initializing disk-format entity by calling plugin */ if (!(format->ent = plugcall(((reiser4_format_plug_t *)plug), open, fs->device, blksize))) { aal_fatal("Can't open disk-format %s.", plug->label); goto error_free_format; } return format; error_free_format: aal_free(format); return NULL; } #ifndef ENABLE_MINIMAL /* Creates disk-format structures on specified device */ reiser4_format_t *reiser4_format_create( reiser4_fs_t *fs, /* fs instance */ reiser4_format_plug_t *plug, /* format plugin */ rid_t policy, /* policy plug id */ rid_t key, /* key plug id */ count_t blocks) /* block count */ { reiser4_format_t *format; format_hint_t desc; aal_assert("umka-105", fs != NULL); aal_assert("vpf-1595", plug != NULL); /* Initializing format instance. */ if (!(format = aal_calloc(sizeof(*format), 0))) return NULL; format->fs = fs; /* Initializing filesystem descriptor. */ desc.blksize = reiser4_master_get_blksize(fs->master); desc.blocks = blocks; desc.policy = policy; desc.key = key; /* Initializing entity of disk-format by means of calling "create" method from found plugin. Plugin "create" method will be creating all disk structures, namely, format-specific super block. */ if (!(format->ent = plugcall(plug, create, fs->device, &desc))) { aal_error("Can't create format %s on %s.", plug->p.label, fs->device->name); aal_free(format); return NULL; } return format; } errno_t reiser4_format_backup(reiser4_format_t *format, backup_hint_t *hint) { aal_assert("vpf-1390", format != NULL); aal_assert("vpf-1391", hint != NULL); return reiser4call(format, backup, hint); } /* Saves passed format on its device */ errno_t reiser4_format_sync( reiser4_format_t *format) /* disk-format to be saved */ { aal_assert("umka-107", format != NULL); if (!reiser4_format_isdirty(format)) return 0; return reiser4call(format, sync); } count_t reiser4_format_len(aal_device_t *device, uint32_t blksize) { return (aal_device_len(device) * device->blksize / FS_LEN_ADJUST * FS_LEN_ADJUST / blksize); } errno_t reiser4_format_check_len(aal_device_t *device, uint32_t blksize, count_t blocks) { count_t dev_len; aal_assert("vpf-1564", device != NULL); dev_len = reiser4_format_len(device, blksize); if (blocks > dev_len) { aal_error("Device %s is too small (%llu) for filesystem %llu " "blocks long.", device->name, dev_len, blocks); return -EINVAL; } if (blocks < REISER4_FS_MIN_SIZE(blksize)) { aal_error("Requested filesystem size (%llu) is too small. " "Reiser4 required minimal size %u blocks long.", blocks, REISER4_FS_MIN_SIZE(blksize)); return -EINVAL; } return 0; } /* Checks passed disk-format for validness */ errno_t reiser4_format_valid(reiser4_format_t *format) { aal_assert("umka-829", format != NULL); return reiser4call(format, valid); } #endif /* Closes passed disk-format */ void reiser4_format_close( reiser4_format_t *format) /* format to be closed */ { aal_assert("umka-1505", format != NULL); format->fs->format = NULL; reiser4call(format, close); aal_free(format); } #ifndef ENABLE_MINIMAL /* Returns root block from passed disk-format */ blk_t reiser4_format_get_root( reiser4_format_t *format) /* format to be used */ { aal_assert("umka-113", format != NULL); return reiser4call(format, get_root); } /* Returns string described used disk-format */ const char *reiser4_format_name( reiser4_format_t *format) /* disk-format to be inspected */ { aal_assert("umka-111", format != NULL); return format->ent->plug->p.label; } blk_t reiser4_format_start(reiser4_format_t *format) { aal_assert("umka-1693", format != NULL); return reiser4call(format, start); } /* Returns filesystem length in blocks from passed disk-format */ count_t reiser4_format_get_len( reiser4_format_t *format) /* disk-format to be inspected */ { aal_assert("umka-360", format != NULL); return reiser4call(format, get_len); } /* Returns number of free blocks */ count_t reiser4_format_get_free( reiser4_format_t *format) /* format to be used */ { aal_assert("umka-426", format != NULL); return reiser4call(format, get_free); } /* Returns tree height */ uint16_t reiser4_format_get_height( reiser4_format_t *format) /* format to be inspected */ { aal_assert("umka-557", format != NULL); return reiser4call(format, get_height); } /* Returns current mkfs id from the format-specific super-block */ uint32_t reiser4_format_get_stamp( reiser4_format_t *format) /* format to be inspected */ { aal_assert("umka-1124", format != NULL); return reiser4call(format, get_stamp); } /* Returns current tail policy id from the format-specific super-block */ uint16_t reiser4_format_get_policy( reiser4_format_t *format) /* format to be inspected */ { aal_assert("vpf-836", format != NULL); return reiser4call(format, get_policy); } /* Sets new root block */ void reiser4_format_set_root( reiser4_format_t *format, /* format new root blocks will be set in */ blk_t root) /* new root block */ { aal_assert("umka-420", format != NULL); reiser4call(format, set_root, root); } /* Sets new filesystem length */ void reiser4_format_set_len( reiser4_format_t *format, /* format instance to be used */ count_t blocks) /* new length in blocks */ { aal_assert("umka-422", format != NULL); reiser4call(format, set_len, blocks); } /* Sets free block count */ void reiser4_format_set_free( reiser4_format_t *format, /* format to be used */ count_t blocks) /* new free block count */ { aal_assert("umka-424", format != NULL); reiser4call(format, set_free, blocks); } /* Sets new tree height */ void reiser4_format_set_height( reiser4_format_t *format, /* format to be used */ uint8_t height) /* new tree height */ { aal_assert("umka-559", format != NULL); reiser4call(format, set_height, height); } /* Updates mkfsid in super block */ void reiser4_format_set_stamp( reiser4_format_t *format, /* format to be used */ uint32_t stamp) /* new tree height */ { aal_assert("umka-1125", format != NULL); reiser4call(format, set_stamp, stamp); } /* Sets tail policy in the super block */ void reiser4_format_set_policy( reiser4_format_t *format, /* format to be used */ uint16_t policy) /* new policy */ { aal_assert("vpf-835", format != NULL); reiser4call(format, set_policy, policy); } /* Returns journal plugin id in use */ rid_t reiser4_format_journal_pid( reiser4_format_t *format) /* format journal pid will be taken from */ { aal_assert("umka-115", format != NULL); return reiser4call(format, journal_pid); } /* Returns block allocator plugin id in use */ rid_t reiser4_format_alloc_pid( reiser4_format_t *format) /* format allocator pid will be taken from */ { aal_assert("umka-117", format != NULL); return reiser4call(format, alloc_pid); } errno_t reiser4_format_layout(reiser4_format_t *format, region_func_t region_func, void *data) { aal_assert("umka-1076", format != NULL); aal_assert("umka-1077", region_func != NULL); return reiser4call(format, layout, region_func, data); } /* Returns oid allocator plugin id in use */ rid_t reiser4_format_oid_pid( reiser4_format_t *format) /* format oid allocator pid will be taken from */ { aal_assert("umka-491", format != NULL); return reiser4call(format, oid_pid); } errno_t reiser4_format_inc_free(reiser4_format_t *format, uint64_t count) { uint64_t saved; aal_assert("vpf-1722", format != NULL); if (count == 0) return 0; saved = reiser4_format_get_free(format); reiser4_format_set_free(format, saved + count); return 0; } errno_t reiser4_format_dec_free(reiser4_format_t *format, uint64_t count) { uint64_t saved; aal_assert("vpf-1722", format != NULL); if (count == 0) return 0; saved = reiser4_format_get_free(format); if (saved < count) { aal_error("Format does not have enough (%llu) blocks " "to allocate (%llu).", saved, count); return -ENOSPC; } reiser4_format_set_free(format, saved - count); return 0; } #endif reiser4progs-1.0.7.orig/libreiser4/node.c0000644000175000017500000003030111131470543016057 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. node.c -- the reiser4 disk node personalization. The libreiser4 internal in-memory tree consists of reiser4_node_t instances. */ #include #ifndef ENABLE_MINIMAL bool_t reiser4_node_isdirty(reiser4_node_t *node) { aal_assert("umka-2663", node != NULL); return node->block->dirty; } void reiser4_node_mkdirty(reiser4_node_t *node) { aal_assert("umka-2662", node != NULL); node->block->dirty = 1; } void reiser4_node_mkclean(reiser4_node_t *node) { aal_assert("umka-2661", node != NULL); node->block->dirty = 0; } /* Creates new node at block @nr on @tree with @level and with plugin @pid. Uses tree instance for accessing block size and key plugin in use. */ reiser4_node_t *reiser4_node_create(reiser4_tree_t *tree, reiser4_node_plug_t *plug, blk_t nr, uint8_t level) { uint32_t size; aal_block_t *block; reiser4_node_t *node; aal_device_t *device; aal_assert("umka-1268", tree != NULL); aal_assert("vpf-1596", plug != NULL); aal_assert("vpf-1654", tree->fs != NULL); aal_assert("vpf-1655", tree->fs->device != NULL); /* Getting tree tree device and blksize in use to use them for creating new node. */ size = reiser4_tree_get_blksize(tree); device = tree->fs->device; /* Allocate new node of @size at @nr. */ if (!(block = aal_block_alloc(device, size, nr))) return NULL; /* Requesting the plugin for initialization node entity. */ if (!(node = plugcall(plug, init, block, level, tree->key.plug))) goto error_free_block; reiser4_place_assign(&node->p, NULL, 0, MAX_UINT32); return node; error_free_block: aal_block_free(block); return NULL; } /* Traverse through all items of the gived node. */ errno_t reiser4_node_trav(reiser4_node_t *node, place_func_t func, void *data) { reiser4_place_t place; pos_t *pos = &place.pos; errno_t res; aal_assert("vpf-744", node != NULL); pos->unit = MAX_UINT32; for (pos->item = 0; pos->item < reiser4_node_items(node); pos->item++) { if ((res = reiser4_place_open(&place, node, pos))) { aal_error("Node (%llu), item (%u): failed to " "open the item by its place.", node->block->nr, pos->item); return res; } if ((res = func(&place, data))) return res; } return 0; } #endif /* Functions for lock/unlock @node. They are used to prevent releasing node from the tree cache. */ void reiser4_node_lock(reiser4_node_t *node) { aal_assert("umka-2314", node != NULL); aal_assert("umka-2585", node->counter >= 0); node->counter++; } void reiser4_node_unlock(reiser4_node_t *node) { aal_assert("umka-2316", node != NULL); aal_assert("umka-2316", node->counter > 0); node->counter--; } bool_t reiser4_node_locked(reiser4_node_t *node) { aal_assert("umka-2586", node != NULL); aal_assert("umka-2587", node->counter >= 0); return node->counter > 0 ? 1 : 0; } #ifndef ENABLE_MINIMAL /* Assigns @nr block number to @node. */ void reiser4_node_move(reiser4_node_t *node, blk_t nr) { aal_assert("umka-2248", node != NULL); node->block->nr = nr; reiser4_node_mkdirty(node); } #endif /* Opens node on specified @tree and block number @nr. */ reiser4_node_t *reiser4_node_open(reiser4_tree_t *tree, blk_t nr) { uint16_t pid; uint32_t size; aal_block_t *block; aal_device_t *device; reiser4_plug_t *plug; reiser4_node_t *node; aal_assert("umka-160", tree != NULL); aal_assert("vpf-1652", tree->fs != NULL); aal_assert("vpf-1653", tree->fs->device != NULL); /* Getting tree characteristics needed for open node. */ size = reiser4_tree_get_blksize(tree); device = tree->fs->device; /* Load block at @nr, that node lie in. */ if (!(block = aal_block_load(device, size, nr))) { aal_error("Can't read block %llu. %s.", nr, device->error); return NULL; } /* Getting node plugin id. */ pid = *((uint16_t *)block->data); /* Finding the node plug by its id. */ #ifndef ENABLE_MINIMAL if (pid == tree->ent.tset[TSET_NODE]->id.id) plug = tree->ent.tset[TSET_NODE]; else #endif if (!(plug = reiser4_factory_ifind(NODE_PLUG_TYPE, pid))) goto error_free_block; /* Requesting the plugin for initialization of the entity. */ if (!(node = plugcall((reiser4_node_plug_t *)plug, open, block, tree->key.plug))) { goto error_free_block; } reiser4_place_assign(&node->p, NULL, 0, MAX_UINT32); return node; error_free_block: aal_block_free(block); return NULL; } #ifndef ENABLE_MINIMAL /* Saves node to device if it is dirty and closes node */ errno_t reiser4_node_fini(reiser4_node_t *node) { /* Node should be clean when it is going to be closed. */ if (reiser4_node_isdirty(node) && reiser4_node_sync(node)) { aal_error("Can't write node %llu.", node->block->nr); } return reiser4_node_close(node); } #endif /* Closes specified node and its children. Before the closing, this function also detaches nodes from the tree if they were attached. */ errno_t reiser4_node_close(reiser4_node_t *node) { aal_assert("umka-824", node != NULL); aal_assert("umka-2286", node->counter == 0); objcall(node, fini); return 0; } /* Getting the left delimiting key. */ errno_t reiser4_node_leftmost_key( reiser4_node_t *node, /* node for working with */ reiser4_key_t *key) /* key will be stored here */ { pos_t pos = {0, MAX_UINT32}; aal_assert("umka-753", node != NULL); return objcall(node, get_key, &pos, key); } /* This function makes search inside of specified node for passed key. Position will be stored in passed @pos. */ lookup_t reiser4_node_lookup(reiser4_node_t *node, lookup_hint_t *hint, lookup_bias_t bias, pos_t *pos) { lookup_t res; reiser4_key_t maxkey; reiser4_place_t place; aal_assert("umka-475", pos != NULL); aal_assert("vpf-048", node != NULL); aal_assert("umka-476", hint != NULL); aal_assert("umka-3090", hint->key != NULL); POS_INIT(pos, 0, MAX_UINT32); /* Calling node plugin lookup method */ if ((res = objcall(node, lookup, hint, bias, pos)) < 0) return res; /* Wanted key is not key of item. Will look inside found item in order to find needed unit inside. */ if (res == ABSENT) { if (pos->item == 0) return ABSENT; /* Correcting position. */ pos->item--; if (reiser4_place_open(&place, node, pos)) return -EIO; /* We are on the position where key is less then wanted. Key could lie within the item or after the item. */ if (place.plug->balance->maxposs_key) { reiser4_item_maxposs_key(&place, &maxkey); if (reiser4_key_compfull(hint->key, &maxkey) > 0) { pos->item++; return ABSENT; } } /* Calling lookup method of found item. */ if (place.plug->balance->lookup) { res = objcall(&place, balance->lookup, hint, bias); pos->unit = place.pos.unit; return res; } /* Check for @bias. If it is FIND_CONV (we're looking for a convenient pos to insert into) or not the branch, move to the next pos. */ if (!reiser4_item_branch(place.plug) || bias == FIND_CONV) { pos->item++; return ABSENT; } } else { if (pos->unit == MAX_UINT32) pos->unit = 0; } return res; } /* Returns real item count in specified node */ uint32_t reiser4_node_items(reiser4_node_t *node) { aal_assert("umka-453", node != NULL); return objcall(node, items); } #ifndef ENABLE_MINIMAL /* Returns free space of specified node */ uint16_t reiser4_node_space(reiser4_node_t *node) { aal_assert("umka-455", node != NULL); return objcall(node, space); } /* Returns overhead of specified node */ uint16_t reiser4_node_overhead(reiser4_node_t *node) { aal_assert("vpf-066", node != NULL); return objcall(node, overhead); } /* Returns max space in specified node. */ uint16_t reiser4_node_maxspace(reiser4_node_t *node) { aal_assert("umka-125", node != NULL); return objcall(node, maxspace); } /* Expands passed @node at @pos by @len */ errno_t reiser4_node_expand(reiser4_node_t *node, pos_t *pos, uint32_t len, uint32_t count) { aal_assert("umka-1815", node != NULL); return objcall(node, expand, pos, len, count); } /* Shrinks passed @node at @pos by @len */ errno_t reiser4_node_shrink(reiser4_node_t *node, pos_t *pos, uint32_t len, uint32_t count) { errno_t res; aal_assert("umka-1817", node != NULL); if ((res = objcall(node, shrink, pos, len, count))) { aal_error("Node (%llu), pos (%u/%u): can't shrink " "the node on (%u) bytes.", node->block->nr, pos->item, pos->unit, len); } return res; } /* Makes shift of some amount of items and units into passed neighbour. Shift direction and other flags are passed by @hint. Returns operation error code. */ errno_t reiser4_node_shift(reiser4_node_t *node, reiser4_node_t *neig, shift_hint_t *hint) { aal_assert("umka-1225", node != NULL); /* Trying shift something from @node into @neig. As result insert point may be shifted too. */ return objcall(node, shift, neig, hint); } errno_t reiser4_node_merge(reiser4_node_t *node, pos_t *pos1, pos_t *pos2) { aal_assert("vpf-1507", node != NULL); return objcall(node, merge, pos1, pos2); } /* Saves passed @node onto device it was opened on */ errno_t reiser4_node_sync(reiser4_node_t *node) { aal_assert("umka-2253", node != NULL); /* Synchronizing passed @node */ if (!reiser4_node_isdirty(node)) return 0; return objcall(node, sync); } /* Updates node keys in recursive maner (needed for updating ldkeys on the all levels of tre tree). */ errno_t reiser4_node_update_key(reiser4_node_t *node, pos_t *pos, reiser4_key_t *key) { aal_assert("umka-999", node != NULL); return objcall(node, set_key, pos, key); } static errno_t node_modify_check(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint) { uint32_t len, needed; len = hint->len + hint->overhead; needed = len + (pos->unit == MAX_UINT32 ? reiser4_node_overhead(node) : 0); /* Checking if item length is greater then free space in the node. */ if (needed > reiser4_node_space(node)) { aal_error("There is no space to insert new item/unit of (%u) " "size in the node (%llu).", len, node->block->nr); return -EINVAL; } return 0; } errno_t reiser4_node_insert(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint) { errno_t res; aal_assert("umka-991", pos != NULL); aal_assert("umka-990", node != NULL); aal_assert("umka-992", hint != NULL); if ((res = node_modify_check(node, pos, hint))) return res; return objcall(node, insert, pos, hint); } int64_t reiser4_node_write(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint) { errno_t res; aal_assert("umka-2445", node != NULL); if ((res = node_modify_check(node, pos, hint))) return res; return objcall(node, write, pos, hint); } /* Deletes item or unit from cached node. Keeps track of changes of the left delimiting key. */ errno_t reiser4_node_remove(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint) { aal_assert("umka-993", node != NULL); /* Removing item or unit. We assume that we remove whole item if unit component is set to MAX_UINT32. Otherwise we remove unit. */ return objcall(node, remove, pos, hint); } int64_t reiser4_node_trunc(reiser4_node_t *node, pos_t *pos, trans_hint_t *hint) { aal_assert("umka-2503", node != NULL); return objcall(node, trunc, pos, hint); } void reiser4_node_set_mstamp(reiser4_node_t *node, uint32_t stamp) { aal_assert("vpf-646", node != NULL); if (node->plug->set_mstamp) node->plug->set_mstamp(node, stamp); } void reiser4_node_set_fstamp(reiser4_node_t *node, uint64_t stamp) { aal_assert("vpf-648", node != NULL); if (node->plug->get_fstamp) node->plug->set_fstamp(node, stamp); } void reiser4_node_set_level(reiser4_node_t *node, uint8_t level) { aal_assert("umka-1863", node != NULL); objcall(node, set_level, level); } uint32_t reiser4_node_get_mstamp(reiser4_node_t *node) { aal_assert("vpf-562", node != NULL); if (node->plug->get_mstamp) return node->plug->get_mstamp(node); return 0; } uint64_t reiser4_node_get_fstamp(reiser4_node_t *node) { aal_assert("vpf-647", node != NULL); if (node->plug->get_fstamp) node->plug->get_fstamp(node); return 0; } #endif /* Returns node level */ uint8_t reiser4_node_get_level(reiser4_node_t *node) { aal_assert("umka-1642", node != NULL); return objcall(node, get_level); } reiser4progs-1.0.7.orig/libreiser4/semantic.c0000644000175000017500000001124411131470543016742 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. semantic.c -- reiser4 semantic tree related code. */ #include #include typedef struct resolve { bool_t follow; bool_t present; reiser4_object_t *parent; reiser4_object_t *object; reiser4_tree_t *tree; reiser4_key_t key; } resolve_t; /* Callback function for finding statdata of the current directory */ static errno_t cb_find_statdata(char *path, char *entry, void *data) { #ifdef ENABLE_SYMLINKS reiser4_object_plug_t *plug; #endif resolve_t *resol; resol = (resolve_t *)data; if (!(resol->object = reiser4_object_obtain(resol->tree, resol->parent, &resol->key))) { aal_error("Can't open object %s given in %s.", entry, path); return -EINVAL; } #ifdef ENABLE_SYMLINKS plug = reiser4_psobj(resol->object); /* Symlinks handling. Method follow() should be implemented if object wants to be resolved (symlink). */ if (resol->follow && plug->follow) { errno_t res; /* Calling object's follow() in order to get stat data key of the object that current object points to. */ res = plugcall(plug, follow, resol->object, (resol->parent ? &resol->parent->info.object : &resol->tree->key), &resol->key); /* Close current object. */ reiser4_object_close(resol->object); /* Symlink cannot be followed. */ if (res != 0) { aal_error("Can't follow %s in %s.", entry, path); return res; } if (!(resol->object = reiser4_object_obtain(resol->tree, resol->parent, &resol->key))) { aal_error("Can't open object %s in %s.", entry, path); return -EINVAL; } } #endif return 0; } /* Callback function to find @name inside the current object. */ static errno_t cb_find_entry(char *path, char *name, void *data) { entry_hint_t entry; resolve_t *resol; lookup_t res; resol = (resolve_t *)data; if (name == NULL) { /* Start from the root. */ aal_memcpy(&resol->key, &resol->tree->key, sizeof(resol->key)); return 0; } /* Looking up for @entry in current directory */ if ((res = plugcall(reiser4_psobj(resol->object), lookup, resol->object, name, &entry)) < 0) { return res; } if (res != PRESENT) { if (resol->present) { /* The object by @path must present. */ aal_error("Can't find %s in %s.", name, path); } return -EINVAL; } /* Close the parent object. */ if (resol->parent) { reiser4_object_close(resol->parent); resol->parent = NULL; } /* Updating parent key. */ resol->parent = resol->object; /* Save found key. */ aal_memcpy(&resol->key, &entry.object, sizeof(resol->key)); return 0; } /* This function opens object by its name */ static reiser4_object_t *reiser4_semantic_open_object( reiser4_tree_t *tree, /* tree object will be opened on */ char *path, /* name of object to be opened */ reiser4_key_t *from, /* key to start resolving from */ bool_t follow, /* follow symlinks */ bool_t present) /* if object must present or not */ { resolve_t resol; aal_assert("umka-678", tree != NULL); aal_assert("umka-789", path != NULL); resol.present = present; resol.follow = follow; resol.tree = tree; resol.parent = resol.object = NULL; /* Initializing the key. */ aal_memcpy(&resol.key, from ? from : &tree->key, sizeof(resol.key)); /* Parsing path and looking for object's stat data. We assume, that name is absolute one. So, user, who calls this method should convert name previously into absolute one by means of using getcwd() function. */ if (aux_parse_path(path, cb_find_statdata, cb_find_entry, &resol)) goto error_free_resol; if (resol.parent) reiser4_object_close(resol.parent); return resol.object; error_free_resol: if (resol.parent) reiser4_object_close(resol.parent); if (resol.object) reiser4_object_close(resol.object); return NULL; } /* This function opens object by its name */ reiser4_object_t *reiser4_semantic_try_open( reiser4_tree_t *tree, /* tree object will be opened on */ char *path, /* name of object to be opened */ reiser4_key_t *from, /* key to start resolving from */ bool_t follow) /* follow symlinks */ { return reiser4_semantic_open_object(tree, path, from, follow, 0); } /* This function opens object by its name */ reiser4_object_t *reiser4_semantic_open( reiser4_tree_t *tree, /* tree object will be opened on */ char *path, /* name of object to be opened */ reiser4_key_t *from, /* key to start resolving from */ bool_t follow) /* follow symlinks */ { return reiser4_semantic_open_object(tree, path, from, follow, 1); } reiser4progs-1.0.7.orig/libreiser4/backup.c0000644000175000017500000001527111131470543016410 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. backup.c -- filesystem backup methods. */ #ifndef ENABLE_MINIMAL #include /* Creates the backup of the given @fs. */ reiser4_backup_t *reiser4_backup_create(reiser4_fs_t *fs) { reiser4_backup_t *backup; uint32_t size; aal_assert("vpf-1387", fs != NULL); /* Allocating and initializing the backup. */ if (!(backup = aal_calloc(sizeof(*backup), 0))) return NULL; backup->fs = fs; /* Create the backup block. */ size = reiser4_master_get_blksize(fs->master); if (aal_block_init(&backup->hint.block, fs->device, size, 0)) { goto error_free_backup; } aal_block_fill(&backup->hint.block, 0); /* Backup the fs. */ if (reiser4_fs_backup(fs, &backup->hint)) goto error_free_block; reiser4_backup_mkdirty(backup); return backup; error_free_block: aal_block_fini(&backup->hint.block); error_free_backup: aal_free(backup); return NULL; } /* Reading backup blocks and comparing their content that must match for all backup blocks. */ static errno_t cb_open_backup(uint64_t start, uint64_t width, void *data) { reiser4_backup_t *backup = (reiser4_backup_t *)data; aal_block_t *block = (aal_block_t *)backup->data; aal_block_t *fblock; errno_t res; fblock = &backup->hint.block; /* Reading the first backup block. */ if (fblock->nr == 0) { fblock->nr = start; return aal_block_read(fblock); } /* The first backup block has been read already. */ block->nr = start; if ((res = aal_block_read(block))) return res; if (aal_memcmp(backup->hint.block.data, block->data, block->size)) { aal_error("Backup block %llu differ from " "previous ones.", start); return -EIO; } return 0; } reiser4_backup_t *reiser4_backup_open(reiser4_fs_t *fs) { reiser4_backup_t *backup; uint32_t size; errno_t res; /* Allocating and initializing the backup. */ if (!(backup = aal_calloc(sizeof(*backup), 0))) return NULL; backup->fs = fs; /* Create the backup block. */ size = reiser4_master_get_blksize(fs->master); if ((res = aal_block_init(&backup->hint.block, fs->device, size, 0))) { goto error_free_backup; } aal_block_fill(&backup->hint.block, 0); /* Create the block to compare with the first one. */ if (!(backup->data = aal_block_alloc(fs->device, size, 0))) goto error_fini_backup; aal_block_fill(backup->data, 0); if (reiser4_backup_layout(backup->fs, cb_open_backup, backup)) goto error_free_block; aal_block_free(backup->data); backup->data = NULL; return backup; error_free_block: aal_block_free(backup->data); error_fini_backup: aal_block_fini(&backup->hint.block); error_free_backup: aal_free(backup); return NULL; } /* Check for valideness opened backup. */ errno_t reiser4_backup_valid(reiser4_backup_t *backup) { backup_hint_t hint; reiser4_fs_t *fs; uint32_t size; errno_t res; aal_assert("vpf-1727", backup != NULL); fs = backup->fs; size = reiser4_master_get_blksize(fs->master); if ((res = aal_block_init(&hint.block, fs->device, size, 0))) return res; aal_block_fill(&hint.block, 0); /* Backup the fs. */ if ((res = reiser4_fs_backup(fs, &hint))) goto error_fini_hint; /* Compare the fresh backup with the read one. */ res = aal_memcmp(backup->hint.block.data, hint.block.data, size); aal_block_fini(&hint.block); return res ? -EIO: 0; error_fini_hint: aal_block_fini(&hint.block); return res; } /* Frees the fs backup. */ void reiser4_backup_close(reiser4_backup_t *backup) { aal_assert("vpf-1398", backup != NULL); aal_block_fini(&backup->hint.block); aal_free(backup); } /* Assign the block to @blk block number and write it. */ static errno_t cb_write_backup(blk_t blk, uint64_t count, void *data) { aal_block_t *block = (aal_block_t *)data; aal_block_move(block, block->device, blk); aal_block_write(block); return 0; } /* Write the backup to REISER4_BACKUPS_MAX blocks. */ errno_t reiser4_backup_sync(reiser4_backup_t *backup) { errno_t res; aal_assert("vpf-1410", backup != NULL); aal_assert("vpf-1410", backup->fs != NULL); /* Prepare the block for writing. */ if (!reiser4_backup_isdirty(backup)) return 0; /* Write the block to all backup copies. */ res = reiser4_backup_layout(backup->fs, cb_write_backup, &backup->hint.block); reiser4_backup_mkclean(backup); return res; } static errno_t cb_region(uint64_t blk, uint64_t count, void *data) { /* 2nd block in the given region is a backup block. */ *((blk_t *)data) = (count == 1) ? 0 :blk + 1; return 0; } errno_t reiser4_backup_layout_body(reiser4_alloc_t *alloc, uint32_t blksize, uint64_t len, region_func_t func, void *data) { blk_t copy, prev, blk; errno_t res; blk = 2; prev = 0; while (1) { blk = BACKUP_EXP_LAYOUT(blk); if (blk <= prev) continue; if (blk > len) return 0; reiser4_alloc_region(alloc, blk, cb_region, ©); if (copy < REISER4_BACKUP_START(blksize)) copy = REISER4_BACKUP_START(blksize); if (copy > len) return 0; if (copy <= prev) continue; if ((res = func(copy, 1, data))) return res; prev = copy; } } /* Backup is saved in REISER4_BACKUPS_MAX blocks spreaded across the fs aligned by the next bitmap block. Note: Backup should not be touched another time -- do not open them another time, even for the layout operation. */ errno_t reiser4_backup_layout(reiser4_fs_t *fs, region_func_t func, void *data) { count_t len, blksize; aal_assert("vpf-1399", fs != NULL); aal_assert("vpf-1400", func != NULL); len = reiser4_format_get_len(fs->format); blksize = reiser4_master_get_blksize(fs->master); return reiser4_backup_layout_body(fs->alloc, blksize, len, func, data); } static errno_t cb_region_last(blk_t blk, uint64_t count, void *data) { *((blk_t *)data) = count == 1 ? 0 : blk + count - 1; return 0; } #define REISER4_BACKUPS_MAX 16 errno_t reiser4_old_backup_layout(reiser4_fs_t *fs, region_func_t region_func, void *data) { errno_t res; count_t len; count_t delta; blk_t prev = 0; blk_t blk, copy; aal_assert("vpf-1399", fs != NULL); aal_assert("vpf-1400", region_func != NULL); len = reiser4_format_get_len(fs->format); delta = len / (REISER4_BACKUPS_MAX + 1); for (blk = delta - 1; blk < len; blk += delta) { reiser4_alloc_region(fs->alloc, blk, cb_region_last, ©); /* If copy == 0 -- it is not possible to have the last copy on this fs as the last block is the allocator one. If the blk number for the copy is the same as the previous one, skip another copy as fs is pretty small. */ if (!copy || copy == prev) continue; if ((res = region_func(copy, 1, data))) return res; prev = copy; } return 0; } #endif reiser4progs-1.0.7.orig/libreiser4/filesystem.c0000644000175000017500000002445011131470543017326 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. filesystem.c -- common reiser4 filesystem code. */ #include /* Opens filesystem on specified device */ #ifndef ENABLE_MINIMAL reiser4_fs_t *reiser4_fs_open(aal_device_t *device, bool_t check) { #else reiser4_fs_t *reiser4_fs_open(aal_device_t *device) { #endif reiser4_fs_t *fs; #ifndef ENABLE_MINIMAL count_t blocks; uint32_t blksize; #endif aal_assert("umka-148", device != NULL); /* Allocating memory and initializing fields */ if (!(fs = aal_calloc(sizeof(*fs), 0))) return NULL; fs->device = device; /* Reads master super block. See above for details */ if (!(fs->master = reiser4_master_open(device))) goto error_free_fs; #ifndef ENABLE_MINIMAL if (check) { if (reiser4_master_valid(fs->master)) goto error_free_master; } blksize = reiser4_master_get_blksize(fs->master); if (!(fs->status = reiser4_status_open(device, blksize))) goto error_free_master; #endif /* Initializes used disk format. See format.c for details */ if (!(fs->format = reiser4_format_open(fs))) goto error_free_status; #ifndef ENABLE_MINIMAL if (check) { if (reiser4_format_valid(fs->format)) goto error_free_format; } if ((blocks = reiser4_format_get_len(fs->format)) == INVAL_BLK) goto error_free_format; /* Initializes block allocator. See alloc.c for details */ if (!(fs->alloc = reiser4_alloc_open(fs, blocks))) goto error_free_format; if (check) { if (reiser4_alloc_valid(fs->alloc)) { aal_error("Block allocator data seems corrupted."); goto error_free_alloc; } } /* Initializes oid allocator. */ if (!(fs->oid = reiser4_oid_open(fs))) goto error_free_alloc; if (check) { if (reiser4_oid_valid(fs->oid)) goto error_free_oid; } #endif if (!(fs->tree = reiser4_tree_init(fs))) goto error_free_oid; #ifndef ENABLE_MINIMAL if (check) { /* We still have to support the disk format when pset was not backed up. Therefore, tree has the pset found in the root dir, completed if needed, backup must match the tree pset. */ if (reiser4_pset_tree(fs->tree, check)) goto error_free_tree; if (!(fs->backup = reiser4_backup_open(fs))) { aal_error("Failed to open fs backup."); goto error_free_tree; } if (reiser4_backup_valid(fs->backup)) { aal_error("Reiser4 backup is not consistent."); goto error_free_backup; } } #else if (reiser4_pset_tree(fs->tree)) goto error_free_tree; #endif return fs; #ifndef ENABLE_MINIMAL error_free_backup: reiser4_backup_close(fs->backup); #endif error_free_tree: reiser4_tree_close(fs->tree); error_free_oid: #ifndef ENABLE_MINIMAL reiser4_oid_close(fs->oid); error_free_alloc: reiser4_alloc_close(fs->alloc); error_free_format: #endif reiser4_format_close(fs->format); error_free_status: #ifndef ENABLE_MINIMAL reiser4_status_close(fs->status); error_free_master: #endif reiser4_master_close(fs->master); error_free_fs: aal_free(fs); return NULL; } /* Close all filesystem's objects */ void reiser4_fs_close(reiser4_fs_t *fs) { aal_assert("umka-230", fs != NULL); #ifndef ENABLE_MINIMAL if (!aal_device_readonly(fs->device)) reiser4_fs_sync(fs); #endif reiser4_tree_close(fs->tree); #ifndef ENABLE_MINIMAL if (fs->journal) reiser4_journal_close(fs->journal); reiser4_oid_close(fs->oid); reiser4_alloc_close(fs->alloc); #endif reiser4_format_close(fs->format); reiser4_master_close(fs->master); #ifndef ENABLE_MINIMAL reiser4_status_close(fs->status); if (fs->backup) { reiser4_backup_close(fs->backup); } #endif /* Freeing memory occupied by fs instance */ aal_free(fs); } #ifndef ENABLE_MINIMAL static errno_t cb_check_block(blk_t start, count_t width, void *data) { blk_t blk = *(blk_t *)data; return (blk >= start && blk < start + width); } /* Returns passed @blk owner */ reiser4_owner_t reiser4_fs_belongs(reiser4_fs_t *fs, blk_t blk) { aal_assert("umka-1534", fs != NULL); /* Checks if passed @blk is master super block */ if (reiser4_master_layout(fs->master, cb_check_block, &blk)) return O_MASTER; /* Checks if passed @blk belongs to format metadata */ if (reiser4_format_layout(fs->format, cb_check_block, &blk)) return O_FORMAT; /* Checks if passed @blk belongs to oid allocator metadata */ if (reiser4_oid_layout(fs->oid, cb_check_block, &blk)) return O_OID; /* Checks if passed @blk belongs to journal metadata if journal opened. */ if (fs->journal) { if (reiser4_journal_layout(fs->journal, cb_check_block, &blk)) return O_JOURNAL; } /* Check if @blk is filesystem status block. */ if (reiser4_status_layout(fs->status, cb_check_block, &blk)) return O_STATUS; /* Checks if passed @blk belongs to block allocator data */ if (reiser4_alloc_layout(fs->alloc, cb_check_block, &blk)) return O_ALLOC; if (reiser4_backup_layout(fs, cb_check_block, &blk)) return O_BACKUP; return O_UNKNOWN; } /* Enumerates all filesystem areas (block alloc, journal, etc.). This is used for marking all blocks belong to all fs components as budy in block allocator and in fsck. */ errno_t reiser4_fs_layout(reiser4_fs_t *fs, region_func_t func, void *data) { errno_t res; if ((res = reiser4_master_layout(fs->master, func, data))) return res; if ((res = reiser4_oid_layout(fs->oid, func, data))) return res; if ((res = reiser4_format_layout(fs->format, func, data))) return res; if (fs->journal) { if ((res = reiser4_journal_layout(fs->journal, func, data))) { return res; } } if ((res = reiser4_status_layout(fs->status, func, data))) return res; if ((res = reiser4_alloc_layout(fs->alloc, func, data))) return res; return reiser4_backup_layout(fs, func, data); } static errno_t cb_mark_block(blk_t start, count_t width, void *data) { return reiser4_alloc_occupy((reiser4_alloc_t *)data, start, width); } /* Create filesystem on specified host device and with passed params */ reiser4_fs_t *reiser4_fs_create( aal_device_t *device, /* device filesystem will be lie on */ fs_hint_t *hint) /* filesystem hint */ { reiser4_plug_t *format, *policy, *key; count_t free; reiser4_fs_t *fs; aal_assert("vpf-113", hint != NULL); aal_assert("umka-149", device != NULL); /* Makes check for validness of specified block size value */ if (!aal_pow2(hint->blksize)) { aal_error("Invalid block size %u. It must " "be power of two.", hint->blksize); return NULL; } /* Allocating memory and initializing fileds. */ if (!(fs = aal_calloc(sizeof(*fs), 0))) return NULL; fs->device = device; /* Create master super block. */ format = reiser4_profile_plug(PROF_FORMAT); if (!(fs->master = reiser4_master_create(device, hint))) goto error_free_fs; if (reiser4_format_check_len(device, hint->blksize, hint->blocks)) goto error_free_master; /* Setting up master super block. */ reiser4_master_set_format(fs->master, format->id.id); if (!(fs->status = reiser4_status_create(device, hint->blksize))) goto error_free_master; /* Getting tail policy from default params. */ policy = reiser4_profile_plug(PROF_POLICY); /* Taking care about key flags in format super block */ key = reiser4_profile_plug(PROF_KEY); /* Creates disk format. */ fs->format = reiser4_format_create(fs, (reiser4_format_plug_t *)format, policy->id.id, key->id.id, hint->blocks); if (!fs->format) goto error_free_status; /* Creates block allocator */ if (!(fs->alloc = reiser4_alloc_create(fs, hint->blocks))) goto error_free_format; /* Initializes oid allocator */ if (!(fs->oid = reiser4_oid_create(fs))) goto error_free_alloc; if (!(fs->tree = reiser4_tree_init(fs))) goto error_free_oid; if (reiser4_fs_layout(fs, cb_mark_block, fs->alloc)) { aal_error("Can't mark filesystem blocks used."); goto error_free_tree; } free = reiser4_alloc_free(fs->alloc); reiser4_format_set_free(fs->format, free); return fs; error_free_tree: reiser4_tree_close(fs->tree); error_free_oid: reiser4_oid_close(fs->oid); error_free_alloc: reiser4_alloc_close(fs->alloc); error_free_format: reiser4_format_close(fs->format); error_free_status: reiser4_status_close(fs->status); error_free_master: reiser4_master_close(fs->master); error_free_fs: aal_free(fs); return NULL; } /* Backup the fs -- save all permanent info about the fs info the memory stream to be backed up somewhere on the fs. */ errno_t reiser4_fs_backup(reiser4_fs_t *fs, backup_hint_t *hint) { errno_t res; aal_assert("vpf-1392", fs != NULL); aal_assert("vpf-1392", hint != NULL); /* Set the backup version. */ ((char *)hint->block.data)[0] = 0; /* Master backup starts on 1st byte. Note: Every backuper must set hint->off[next index] correctly. */ hint->off[BK_MASTER] = 1; /* Backup the master. */ if ((res = reiser4_master_backup(fs->master, hint))) return res; /* Backup the format. */ if ((res = reiser4_format_backup(fs->format, hint))) return res; /* Backup the PSET for the versions > 0. */ if (reiser4call(fs->format, version) == 0) return 0; return reiser4_pset_backup(fs->tree, hint); } /* Resizes passed open @fs by passed @blocks */ errno_t reiser4_fs_resize( reiser4_fs_t *fs, /* fs to be resized */ count_t blocks) /* new fs size */ { return reiser4_tree_resize(fs->tree, blocks); } /* Makes copy of @src_fs to @dst_fs */ errno_t reiser4_fs_copy( reiser4_fs_t *src_fs, /* fs to be copied */ reiser4_fs_t *dst_fs) /* destination fs */ { aal_assert("umka-2484", src_fs != NULL); aal_assert("umka-2485", dst_fs != NULL); return reiser4_tree_copy(src_fs->tree, dst_fs->tree); } /* Synchronizes all filesystem objects. */ errno_t reiser4_fs_sync(reiser4_fs_t *fs) { errno_t res; aal_assert("umka-231", fs != NULL); /* Synchronizing the tree */ if ((res = reiser4_tree_sync(fs->tree))) return res; if (fs->journal && (res = reiser4_journal_sync(fs->journal))) return res; /* Synchronizing block allocator */ if ((res = reiser4_alloc_sync(fs->alloc))) return res; /* Synchronizing the object allocator */ if ((res = reiser4_oid_sync(fs->oid))) return res; if (fs->backup && (res = reiser4_backup_sync(fs->backup))) return res; if ((res = reiser4_format_sync(fs->format))) return res; if ((res = reiser4_status_sync(fs->status))) return res; return reiser4_master_sync(fs->master); } #endif reiser4progs-1.0.7.orig/libreiser4/status.c0000644000175000017500000000547111131470543016467 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. status.c -- filesystem status block functions. */ #ifndef ENABLE_MINIMAL #include void reiser4_status_close(reiser4_status_t *status) { aal_assert("umka-2487", status != NULL); aal_free(status); } reiser4_status_t *reiser4_status_open(aal_device_t *device, uint32_t blksize) { aal_block_t *block; reiser4_status_t *status; aal_assert("umka-2490", device != NULL); if (!(status = aal_calloc(sizeof(*status), 0))) return NULL; status->dirty = 0; status->device = device; status->blksize = blksize; /* Reading the block where master super block lies */ if (!(block = aal_block_load(device, status->blksize, REISER4_STATUS_BLOCKNR(blksize)))) { aal_fatal("Can't read status block."); goto error_free_status; } /* Copying master super block */ aal_memcpy(STATUS(status), block->data, sizeof(*STATUS(status))); aal_block_free(block); /* Reiser4 master super block is not found on the device. */ if (aal_strncmp(STATUS(status)->ss_magic, REISER4_STATUS_MAGIC, aal_strlen(REISER4_STATUS_MAGIC)) != 0) { aal_error("Wrong magic is found in the " "filesystem status block."); goto error_free_status; } return status; error_free_status: aal_free(status); return NULL; } reiser4_status_t *reiser4_status_create(aal_device_t *device, uint32_t blksize) { reiser4_status_t *status; aal_assert("umka-2489", device != NULL); if (!(status = aal_calloc(sizeof(*status), 0))) return NULL; status->dirty = 1; status->device = device; status->blksize = blksize; aal_strncpy(STATUS(status)->ss_magic, REISER4_STATUS_MAGIC, sizeof(STATUS(status)->ss_magic)); return status; } errno_t reiser4_status_sync(reiser4_status_t *status) { errno_t res; blk_t offset; uint32_t blksize; aal_block_t *block; aal_assert("umka-2488", status != NULL); if (!status->dirty) return 0; blksize = status->blksize; offset = REISER4_STATUS_BLOCKNR(status->blksize); if (!(block = aal_block_alloc(status->device, blksize, offset))) return -ENOMEM; aal_block_fill(block, 0); aal_memcpy(block->data, STATUS(status), sizeof(*STATUS(status))); /* Writing status block to device */ if ((res = aal_block_write(block))) { aal_error("Can't write status block " "at %llu. %s.", block->nr, block->device->error); goto error_free_block; } status->dirty = 0; error_free_block: aal_block_free(block); return res; } errno_t reiser4_status_layout(reiser4_status_t *status, region_func_t region_func, void *data) { uint32_t blk; aal_assert("umka-2491", status != NULL); aal_assert("umka-2492", region_func != NULL); blk = REISER4_STATUS_BLOCKNR(status->blksize); return region_func(blk, 1, data); } #endif reiser4progs-1.0.7.orig/libreiser4/Makefile.am0000644000175000017500000000313711131470543017031 0ustar fzfzincludedir = -I$(top_srcdir)/include libreiser4_sources = bitmap.c libreiser4.c filesystem.c format.c journal.c \ alloc.c oid.c factory.c node.c tree.c key.c object.c \ place.c master.c status.c backup.c item.c profile.c \ pset.c fake.c print.c semantic.c flow.c if ENABLE_MINIMAL MINIMAL_LIBS = libreiser4-minimal.la else MINIMAL_LIBS = endif lib_LTLIBRARIES = libreiser4.la $(MINIMAL_LIBS) noinst_LTLIBRARIES = libreiser4-static.la libreiser4_la_LIBADD = $(top_builddir)/libaux/libaux-static.la \ $(top_builddir)/plugin/libreiser4-plugin.la \ @AAL_LIBS@ libreiser4_la_SOURCES = $(libreiser4_sources) libreiser4_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ -release $(LT_RELEASE) libreiser4_la_CFLAGS = @GENERIC_CFLAGS@ libreiser4_static_la_LIBADD = $(top_builddir)/libaux/libaux-static.la \ $(top_builddir)/plugin/libreiser4-plugin.la \ @AAL_LIBS@ libreiser4_static_la_SOURCES = $(libreiser4_sources) libreiser4_static_la_CFLAGS = @GENERIC_CFLAGS@ libreiser4_static_la_LDFLAGS = -static if ENABLE_MINIMAL libreiser4_minimal_la_LIBADD = $(top_builddir)/libaux/libaux-minimal.la \ $(top_builddir)/plugin/libreiser4-plugin-minimal.la \ @AAL_MINIMAL_LIBS@ libreiser4_minimal_la_SOURCES = $(libreiser4_sources) libreiser4_minimal_la_CFLAGS = @MINIMAL_CFLAGS@ libreiser4_minimal_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ -release $(LT_RELEASE) endif INCLUDES = $(includedir) reiser4progs-1.0.7.orig/libreiser4/place.c0000644000175000017500000001212211131470543016217 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. place.c -- reiser4 tree place functions. Place contains full information about position in the tree. The instance of structure reiser4_place_t contains pointer to node item/unit lies in. */ #include bool_t reiser4_place_valid(reiser4_place_t *place) { aal_assert("umka-2367", place != NULL); aal_assert("umka-2368", place->node != NULL); return place->pos.item < reiser4_node_items(place->node); } /* Makes passed @place pointing to the first unit of the first item */ errno_t reiser4_place_first(reiser4_place_t *place) { place->pos.item = 0; if (place->pos.unit != MAX_UINT32) place->pos.unit = 0; return 0; } /* Makes passed @place pointing to the last unit of the last item */ errno_t reiser4_place_last(reiser4_place_t *place) { uint32_t items = reiser4_node_items(place->node); place->pos.item = items - 1; if (place->pos.unit != MAX_UINT32) { if (reiser4_place_fetch(place)) return -EINVAL; place->pos.unit = reiser4_item_units(place) - 1; } return 0; } /* Returns TRUE if passed @place points to unit that lies after the first unit of the first item in node. */ bool_t reiser4_place_gtfirst(reiser4_place_t *place) { if (place->pos.unit == MAX_UINT32) return place->pos.item > 0; return place->pos.item > 0 || place->pos.unit > 0; } /* Returns TRUE if passed @place points to unit that lies before the last units of the last item in node. */ bool_t reiser4_place_ltlast(reiser4_place_t *place) { uint32_t items = reiser4_node_items(place->node); if (place->pos.unit == MAX_UINT32) { return (place->pos.item < items - 1); } else { uint32_t units; if (reiser4_place_fetch(place)) return 0; units = reiser4_item_units(place); return (place->pos.item < items - 1 || place->pos.unit < units - 1); } } #ifndef ENABLE_MINIMAL /* Returns TRUE if passed @place points to leftmost item/unit */ bool_t reiser4_place_leftmost(reiser4_place_t *place) { aal_assert("umka-1862", place != NULL); return ((place->pos.unit == 0 || place->pos.unit == MAX_UINT32) && place->pos.item == 0); } #endif /* Returns TRUE if @place sits after the last unit of last item in the node. */ bool_t reiser4_place_rightmost(reiser4_place_t *place) { uint32_t items; uint32_t units; aal_assert("umka-1873", place != NULL); items = reiser4_node_items(place->node); if (place->pos.item == items) return 1; if (reiser4_place_fetch(place)) return 0; units = reiser4_item_units(place); return (place->pos.item == items - 1 && place->pos.unit == units); } /* Returns TRUE for non-existent unit of existent item. */ bool_t reiser4_place_right(reiser4_place_t *place) { uint32_t items; uint32_t units; aal_assert("vpf-1292", place != NULL); items = reiser4_node_items(place->node); if (place->pos.item >= items || place->pos.unit == MAX_UINT32) { return 0; } if (reiser4_place_fetch(place)) return 0; units = reiser4_item_units(place); return place->pos.unit >= units; } void reiser4_place_inc(reiser4_place_t *place, int whole) { uint32_t unit; uint32_t units; aal_assert("umka-2361", place != NULL); aal_assert("umka-2364", place->node != NULL); unit = whole ? MAX_UINT32 : 0; if (place->pos.unit == MAX_UINT32) place->pos.unit = unit; if (reiser4_place_fetch(place)) return; units = reiser4_item_units(place); if (place->pos.unit >= units - 1) { place->pos.item++; place->pos.unit = unit; } else place->pos.unit++; } #ifndef ENABLE_MINIMAL void reiser4_place_dec(reiser4_place_t *place, int whole) { aal_assert("umka-2362", place != NULL); aal_assert("umka-2365", place->node != NULL); if (place->pos.unit == 0 || place->pos.unit == MAX_UINT32) { uint32_t units; aal_assert("umka-2404", place->pos.item > 0); place->pos.item--; if (reiser4_place_fetch(place)) return; units = reiser4_item_units(place); place->pos.unit = units - 1; } else place->pos.unit--; if (whole && place->pos.unit == 0) place->pos.unit = MAX_UINT32; } #endif /* Initializes all item-related fields */ errno_t reiser4_place_fetch(reiser4_place_t *place) { aal_assert("umka-1459", place != NULL); return objcall(place->node, fetch, &place->pos, place); } /* This function initializes passed @place by specified params */ errno_t reiser4_place_init(reiser4_place_t *place, reiser4_node_t *node, pos_t *pos) { aal_assert("umka-795", place != NULL); place->node = node; if (pos != NULL) place->pos = *pos; return 0; } errno_t reiser4_place_assign(reiser4_place_t *place, reiser4_node_t *node, uint32_t item, uint32_t unit) { pos_t pos = {item, unit}; aal_assert("umka-1730", place != NULL); return reiser4_place_init(place, node, &pos); } /* Initializes @place and its item related fields */ errno_t reiser4_place_open(reiser4_place_t *place, reiser4_node_t *node, pos_t *pos) { errno_t res; aal_assert("umka-1435", place != NULL); if ((res = reiser4_place_init(place, node, pos))) return res; return reiser4_place_fetch(place); } reiser4progs-1.0.7.orig/libreiser4/profile.c0000644000175000017500000002314111131470543016576 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. profile.c -- reiser4 profile functions. */ #include #include /* All default plugin ids. This is used for getting plugin id if it cannot be obtained by usual way (get from disk structures, etc.). All these may be changed. */ reiser4_profile_t defprof = { .pid = { [PROF_OBJ] = { #ifndef ENABLE_MINIMAL .name = "file", .desc = "", .hidden = 1, .max = OBJECT_LAST_ID, #endif .id = {0, 0, OBJECT_PLUG_TYPE}, }, [PROF_DIR] = { #ifndef ENABLE_MINIMAL .name = "dir", .desc = "", .hidden = 1, .max = 1, #endif .id = {0, 0, PARAM_PLUG_TYPE}, }, [PROF_REGFILE] = { #ifndef ENABLE_MINIMAL .name = "regfile", .desc = "", .hidden = 1, .max = OBJECT_LAST_ID, #endif .id = {OBJECT_REG40_ID, REG_OBJECT, OBJECT_PLUG_TYPE}, }, [PROF_DIRFILE] = { #ifndef ENABLE_MINIMAL .name = "dirfile", .desc = "", .hidden = 1, .max = OBJECT_LAST_ID, #endif .id = {OBJECT_DIR40_ID, DIR_OBJECT, OBJECT_PLUG_TYPE}, }, [PROF_SYMFILE] = { #ifndef ENABLE_MINIMAL .name = "symfile", .desc = "", .hidden = 1, .max = OBJECT_LAST_ID, #endif .id = {OBJECT_SYM40_ID, SYM_OBJECT, OBJECT_PLUG_TYPE}, }, [PROF_SPLFILE] = { #ifndef ENABLE_MINIMAL .name = "splfile", .desc = "", .hidden = 1, .max = OBJECT_LAST_ID, #endif .id = {OBJECT_SPL40_ID, SPL_OBJECT, OBJECT_PLUG_TYPE}, }, [PROF_CREATE] = { #ifndef ENABLE_MINIMAL .name = "create", .desc = "Regular file plugin for creat(2)", .hidden = 0, .max = OBJECT_LAST_ID, #endif .id = {OBJECT_REG40_ID, REG_OBJECT, OBJECT_PLUG_TYPE}, }, [PROF_FORMAT] = { #ifndef ENABLE_MINIMAL .name = "format", .desc = "", .hidden = 1, .max = FORMAT_LAST_ID, #endif .id = {FORMAT_REISER40_ID, 0, FORMAT_PLUG_TYPE}, }, [PROF_JOURNAL] = { #ifndef ENABLE_MINIMAL .name = "journal", .desc = "", .hidden = 1, .max = JOURNAL_LAST_ID, #endif .id = {JOURNAL_REISER40_ID, 0, JOURNAL_PLUG_TYPE}, }, [PROF_OID] = { #ifndef ENABLE_MINIMAL .name = "oid", .desc = "", .hidden = 1, .max = OID_LAST_ID, #endif .id = {OID_REISER40_ID, 0, OID_PLUG_TYPE}, }, [PROF_ALLOC] = { #ifndef ENABLE_MINIMAL .name = "alloc", .desc = "", .hidden = 1, .max = ALLOC_LAST_ID, #endif .id = {ALLOC_REISER40_ID, 0, ALLOC_PLUG_TYPE}, }, [PROF_KEY] = { #ifndef ENABLE_MINIMAL .name = "key", .desc = "Key plugin", .hidden = 0, .max = KEY_LAST_ID, #endif .id = {KEY_LARGE_ID, 0, KEY_PLUG_TYPE}, }, [PROF_NODE] = { #ifndef ENABLE_MINIMAL .name = "node", .desc = "", .hidden = 1, .max = NODE_LAST_ID, #endif .id = {NODE_REISER40_ID, 0, NODE_PLUG_TYPE}, }, [PROF_COMPRESS] = { #ifndef ENABLE_MINIMAL .name = "compress", .desc = "Compression plugin", .hidden = 0, .max = COMPRESS_LAST_ID, #endif .id = {COMPRESS_LZO1_ID, 0, COMPRESS_PLUG_TYPE}, }, [PROF_CMODE] = { #ifndef ENABLE_MINIMAL .name = "compressMode", .desc = "Compression Mode plugin", .hidden = 0, .max = CMODE_LAST_ID, #endif .id = {CMODE_CONVX_ID, 0, CMODE_PLUG_TYPE}, }, [PROF_CRYPTO] = { #ifndef ENABLE_MINIMAL .name = "crypto", .desc = "", .hidden = 1, .max = 1, #endif .id = {0, 0, PARAM_PLUG_TYPE}, }, [PROF_DIGEST] = { #ifndef ENABLE_MINIMAL .name = "digest", .desc = "", .hidden = 1, .max = 1, #endif .id = {0, 0, PARAM_PLUG_TYPE}, }, [PROF_CLUSTER] = { #ifndef ENABLE_MINIMAL .name = "cluster", .desc = "Cluster plugin", .hidden = 0, .max = CLUSTER_LAST_ID, #endif .id = {CLUSTER_64K_ID, 0, CLUSTER_PLUG_TYPE}, }, [PROF_HASH] = { #ifndef ENABLE_MINIMAL .name = "hash", .desc = "Directory entry hash plugin", .hidden = 0, .max = HASH_LAST_ID, #endif .id = {HASH_R5_ID, 0, HASH_PLUG_TYPE}, }, [PROF_FIBRE] = { #ifndef ENABLE_MINIMAL .name = "fibration", .desc = "Key fibration plugin", .hidden = 0, .max = FIBRE_LAST_ID, #endif .id = {FIBRE_EXT_1_ID, 0, FIBRE_PLUG_TYPE}, }, [PROF_PERM] = { #ifndef ENABLE_MINIMAL .name = "permission", .desc = "", .hidden = 1, .max = 1, #endif .id = {0, 0, PARAM_PLUG_TYPE}, }, [PROF_POLICY] = { #ifndef ENABLE_MINIMAL .name = "formatting", .desc = "File body formatting plugin", .hidden = 0, .max = TAIL_LAST_ID, #endif .id = {TAIL_SMART_ID, 0, POLICY_PLUG_TYPE}, }, [PROF_STAT] = { #ifndef ENABLE_MINIMAL .name = "statdata", .desc = "", .hidden = 1, .max = ITEM_LAST_ID, #endif .id = {ITEM_STAT40_ID, STAT_ITEM, ITEM_PLUG_TYPE}, }, [PROF_DIRITEM] = { #ifndef ENABLE_MINIMAL .name = "diritem", .desc = "", .hidden = 1, .max = ITEM_LAST_ID, #endif .id = {ITEM_CDE40_ID, DIR_ITEM, ITEM_PLUG_TYPE}, }, #ifndef ENABLE_MINIMAL [PROF_NODEPTR] = { .name = "nodeptr", .desc = "", .hidden = 1, .max = ITEM_LAST_ID, .id = {ITEM_NODEPTR40_ID, PTR_ITEM, ITEM_PLUG_TYPE}, }, [PROF_TAIL] = { .name = "tail", .desc = "", .hidden = 1, .max = ITEM_LAST_ID, .id = {ITEM_PLAIN40_ID, TAIL_ITEM, ITEM_PLUG_TYPE}, }, [PROF_EXTENT] = { .name = "extent", .desc = "", .hidden = 1, .max = ITEM_LAST_ID, .id = {ITEM_EXTENT40_ID, EXTENT_ITEM, ITEM_PLUG_TYPE}, }, [PROF_CTAIL] = { .name = "compressTail", .desc = "", .hidden = 1, .max = ITEM_LAST_ID, .id = {ITEM_CTAIL40_ID, CTAIL_ITEM, ITEM_PLUG_TYPE}, }, [PROF_HEIR_HASH] = { .name = "heir_hash", .hidden = 1, .max = HASH_LAST_ID, .id = {HASH_R5_ID, 0, HASH_PLUG_TYPE}, }, [PROF_HEIR_FIBRE] = { .name = "heir_fibration", .hidden = 1, .max = FIBRE_LAST_ID, .id = {FIBRE_EXT_1_ID, 0, FIBRE_PLUG_TYPE}, }, [PROF_HEIR_DIRITEM] = { .name = "heir_diritem", .hidden = 1, .max = ITEM_LAST_ID, .id = {ITEM_CDE40_ID, DIR_ITEM, ITEM_PLUG_TYPE}, }, #endif }, .mask = 0 }; #ifndef ENABLE_MINIMAL void reiser4_profile_print(aal_stream_t *stream) { rid_t i; for (i = 0; i < PROF_LAST; i++) { reiser4_plug_t *plug; uint32_t w1, w2; /* skip hidden ones. */ if (defprof.pid[i].hidden) continue; w1 = 16 - aal_strlen(defprof.pid[i].name); w2 = 16; if (defprof.pid[i].id.type != PARAM_PLUG_TYPE) { plug = reiser4_factory_ifind(defprof.pid[i].id.type, defprof.pid[i].id.id); if (plug) { w2 -= aal_strlen(plug->label); aal_stream_format(stream, "%s:%*s\"%s\"%*s" "(id:0x%x type:0x%x)\t[%s]\n", defprof.pid[i].name, w1, " ", plug->label, w2, " ", plug->id.id, plug->id.type, defprof.pid[i].desc); } else { w2 -= aal_strlen("ansent"); aal_stream_format(stream, "%s:%*s\"absent\"%*s" "(id:0x%x type:0x%x)\t[%s]\n", defprof.pid[i].name, w1, " ", w2, " ", defprof.pid[i].id.id, defprof.pid[i].id.type, defprof.pid[i].desc); } } else { aal_stream_format(stream, "%s:%*s 0x%x, max value 0x%x\n", defprof.pid[i].name, w1, " ", defprof.pid[i].id.id, defprof.pid[i].max - 1); } } } /* Overrides plugin id by @id found by @name. */ errno_t reiser4_profile_override(const char *slot, const char *name) { reiser4_plug_t *plug; long long int val; uint8_t i; aal_assert("umka-924", slot != NULL); aal_assert("umka-923", name != NULL); for (i = 0; i < PROF_LAST; i++) { /* skip hidden ones. */ if (defprof.pid[i].hidden) continue; if (aal_strlen(defprof.pid[i].name) != aal_strlen(slot)) continue; if (!aal_strncmp(defprof.pid[i].name, slot, aal_strlen(slot))) break; } if (i == PROF_LAST) { aal_error("Can't find a profile slot for the \"%s\".", slot); return -EINVAL; } if (defprof.pid[i].id.type == PARAM_PLUG_TYPE) { if ((val = misc_str2long((char *)name, 10)) == INVAL_DIG) { aal_error("Invalid value \"%s\" is provided for the " "profile slot \"%s\".", (char *)name, defprof.pid[i].name); return -EINVAL; } if (val >= defprof.pid[i].max) { aal_error("Invalid value (%s) is provided for the " "profile slot \"%s\". Maximum value is %u", (char *)name, defprof.pid[i].name, defprof.pid[i].max - 1); return -EINVAL; } defprof.pid[i].id.id = val; } else { if (!(plug = reiser4_factory_nfind((char *)name))) { aal_error("Can't find a plugin by " "the name \"%s\".", name); return -EINVAL; } if (defprof.pid[i].id.type != plug->id.type) { aal_error("Can't override profile slot \"%s\" by " "the found plugin \"%s\": a plugin of " "another type is found.", slot, name); return -EINVAL; } if (defprof.pid[i].id.group != plug->id.group) { aal_error("Can't override profile slot \"%s\" by " "the found plugin \"%s\": a plugin of " "the same type but of another group is " "found.", slot, name); return -EINVAL; } /* Skip if the value is set already. */ if (defprof.pid[i].id.id == plug->id.id) return 0; defprof.pid[i].id.id = plug->id.id; } aal_set_bit(&defprof.mask, i); return 0; } bool_t reiser4_profile_overridden(rid_t id) { aal_assert("vpf-1509", id < PROF_LAST); return aal_test_bit(&defprof.mask, id); } #endif /* Find the plugin from the profile slot pointer by @id. */ reiser4_plug_t *reiser4_profile_plug(rid_t id) { reiser4_plug_t *plug; aal_assert("vpf-1591", id < PROF_LAST); if (!(plug = reiser4_factory_ifind(defprof.pid[id].id.type, defprof.pid[id].id.id))) { aal_bug("vpf-1607", "Failed to find a plugin from the " "reiser4porgs profile, type (%s), id(%u)", defprof.pid[id].name, defprof.pid[id].id.id); } return plug; } reiser4progs-1.0.7.orig/libreiser4/fake.c0000644000175000017500000000066111131470543016046 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. fake.c -- functions for working with fake block numbers. */ #ifndef ENABLE_MINIMAL #include static blk_t fake_gen = 0; inline blk_t reiser4_fake_get(void) { return (++fake_gen | REISER4_FAKE_BLOCKNR_VAL); } inline int reiser4_fake_ack(blk_t blk) { return (blk & REISER4_FAKE_BLOCKNR_MASK) ? 1 : 0; } #endif reiser4progs-1.0.7.orig/libreiser4/key.c0000644000175000017500000001403011131470543015723 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. key.c -- reiser4 common key code. */ #include #ifndef ENABLE_MINIMAL void reiser4_key_free(reiser4_key_t *key) { aal_free(key); } #endif int reiser4_key_compshort( reiser4_key_t *key1, /* the first key for comparing */ reiser4_key_t *key2) /* the second one */ { aal_assert("umka-764", key1 != NULL); aal_assert("umka-765", key2 != NULL); aal_assert("umka-906", key1->plug != NULL); return objcall(key1, compshort, key2); } /* Compares two keys in plugin independent manner by means of using one of passed keys plugin. */ int reiser4_key_compfull( reiser4_key_t *key1, /* the first key for comparing */ reiser4_key_t *key2) /* the second one */ { aal_assert("umka-764", key1 != NULL); aal_assert("umka-765", key2 != NULL); aal_assert("umka-906", key1->plug != NULL); return objcall(key1, compfull, key2); } #ifndef ENABLE_MINIMAL /* Builds full non-directory key */ errno_t reiser4_key_build_generic( reiser4_key_t *key, /* key to be built */ uint32_t type, /* key type to be used */ oid_t locality, /* locality to be used */ uint64_t ordering, /* ordering to be used */ oid_t objectid, /* objectid to be used */ uint64_t offset) /* offset to be used */ { aal_assert("umka-665", key != NULL); aal_assert("umka-666", key->plug != NULL); return objcall(key, build_generic, type, locality, ordering, objectid, offset); } /* Builds full directory key. */ void reiser4_key_build_hashed( reiser4_key_t *key, /* key to be built */ reiser4_hash_plug_t *hash, /* hash plugin to be used */ reiser4_fibre_plug_t *fibre,/* fibre plugin to be used */ oid_t locality, /* loaclity to be used */ oid_t objectid, /* objectid to be used */ char *name) /* entry name to be hashed */ { aal_assert("umka-668", key != NULL); aal_assert("umka-670", name != NULL); aal_assert("umka-669", key->plug != NULL); objcall(key, build_hashed, hash, fibre, locality, objectid, name); } /* Sets key type */ errno_t reiser4_key_set_type( reiser4_key_t *key, /* key type will be updated in */ uint32_t type) /* new key type */ { aal_assert("umka-686", key != NULL); aal_assert("umka-687", key->plug != NULL); objcall(key, set_type, type); return 0; } /* Updates key objectid */ errno_t reiser4_key_set_objectid( reiser4_key_t *key, /* key objectid will be updated in */ oid_t objectid) /* new objectid */ { aal_assert("umka-694", key != NULL); aal_assert("umka-695", key->plug != NULL); objcall(key, set_objectid, objectid); return 0; } /* Updates key locality */ errno_t reiser4_key_set_locality( reiser4_key_t *key, /* key locality will be updated in */ oid_t locality) /* new locality */ { aal_assert("umka-696", key != NULL); aal_assert("umka-697", key->plug != NULL); objcall(key, set_locality, locality); return 0; } /* Updates key ordering */ errno_t reiser4_key_set_ordering( reiser4_key_t *key, /* key, ordering will be updated in */ uint64_t ordering) /* new ordering */ { aal_assert("umka-2337", key != NULL); aal_assert("umka-2338", key->plug != NULL); objcall(key, set_ordering, ordering); return 0; } #endif /* Sets key offset */ errno_t reiser4_key_set_offset( reiser4_key_t *key, /* key to be updated */ uint64_t offset) /* new offset */ { aal_assert("umka-688", key != NULL); aal_assert("umka-689", key->plug != NULL); objcall(key, set_offset, offset); return 0; } /* Returns key offset */ uint64_t reiser4_key_get_offset(reiser4_key_t *key) { aal_assert("umka-700", key != NULL); aal_assert("umka-701", key->plug != NULL); return objcall(key, get_offset); } /* Increases key's offset by passed @value */ void reiser4_key_inc_offset(reiser4_key_t *key, uint64_t value) { reiser4_key_set_offset(key, reiser4_key_get_offset(key) + value); } #ifndef ENABLE_MINIMAL /* Gets key type */ uint32_t reiser4_key_get_type(reiser4_key_t *key) { aal_assert("umka-698", key != NULL); aal_assert("umka-699", key->plug != NULL); return objcall(key, get_type); } /* Returns key objectid */ oid_t reiser4_key_get_objectid(reiser4_key_t *key) { aal_assert("umka-702", key != NULL); aal_assert("umka-703", key->plug != NULL); return objcall(key, get_objectid); } /* Returns key locality */ oid_t reiser4_key_get_locality(reiser4_key_t *key) { aal_assert("umka-704", key != NULL); aal_assert("umka-705", key->plug != NULL); return objcall(key, get_locality); } /* Returns key locality */ uint64_t reiser4_key_get_ordering(reiser4_key_t *key) { aal_assert("umka-2335", key != NULL); aal_assert("umka-2336", key->plug != NULL); return objcall(key, get_ordering); } #endif /* Returns the maximal possible key */ void reiser4_key_maximal(reiser4_key_t *key) { reiser4_key_t *entity; aal_assert("vpf-185", key != NULL); aal_assert("vpf-186", key->plug != NULL); entity = plugcall(key->plug, maximal); aal_memcpy(key->body, entity->body, sizeof(key->body)); } #ifndef ENABLE_MINIMAL /* Returns the minimal possible key */ void reiser4_key_minimal(reiser4_key_t *key) { reiser4_key_t *entity; aal_assert("vpf-187", key != NULL); aal_assert("vpf-188", key->plug != NULL); entity = plugcall(key->plug, minimal); aal_memcpy(key->body, entity->body, sizeof(key->body)); } /* Sets key hash component */ errno_t reiser4_key_set_hash( reiser4_key_t *key, /* key hash will be updated in */ uint64_t hash) /* new hash value */ { aal_assert("umka-706", key != NULL); aal_assert("umka-707", key->plug != NULL); objcall(key, set_hash, hash); return 0; } /* Returns key hash */ uint64_t reiser4_key_get_hash(reiser4_key_t *key) { aal_assert("umka-708", key != NULL); aal_assert("umka-709", key->plug != NULL); return objcall(key, get_hash); } void reiser4_key_print(reiser4_key_t *key, aal_stream_t *stream, uint16_t options) { aal_assert("vpf-189", key != NULL); aal_assert("vpf-190", key->plug != NULL); objcall(key, print, stream, options); } #endif reiser4progs-1.0.7.orig/libreiser4/flow.c0000644000175000017500000002743011131470543016112 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. flow.c -- functions for working with flow. */ #include /* Reads reads some number of bytes from @tree to @hint. This function is used in tail conversion and for reading data from the files. */ int64_t reiser4_flow_read(reiser4_tree_t *tree, trans_hint_t *hint) { char *buff; errno_t res; int64_t total; int64_t size; reiser4_key_t key; lookup_hint_t lhint; reiser4_place_t place; aal_assert("umka-2509", tree != NULL); aal_assert("umka-2510", hint != NULL); buff = hint->specific; aal_memcpy(&key, &hint->offset, sizeof(key)); #ifndef ENABLE_MINIMAL hint->blocks = tree->blocks; lhint.collision = NULL; #endif lhint.level = LEAF_LEVEL; lhint.key = &hint->offset; /* Looking for the place to read. */ if ((res = reiser4_tree_lookup(tree, &lhint, FIND_EXACT, &place)) < 0) return res; if (res == ABSENT) { /* Here we suppose, that @place points to next item, just behind the hole. */ if (reiser4_place_right(&place)) reiser4_place_inc(&place, 1); if (reiser4_place_rightmost(&place)) { if ((res = reiser4_tree_next_place(tree, &place, &place))) return res; } res = ABSENT; } for (total = 0, size = hint->count; size > 0; ) { uint64_t next, look; int64_t hole; int32_t read; if (!place.plug) break; /* Data does not found. This may mean, that we have hole in tree between keys. */ if (res == ABSENT) { if (reiser4_key_compshort(&place.key, &hint->offset)) /* No data found. */ break; next = reiser4_key_get_offset(&place.key); look = reiser4_key_get_offset(&hint->offset); hole = next - look; read = (hole > size ? size : hole); /* Making holes in buffer. */ aal_memset(hint->specific, 0, read); /* If we need to read more, the hole is finished, set @res to PRESENT for the next loop. */ if (size > read) res = PRESENT; reiser4_key_inc_offset(&hint->offset, read); } else { /* Prepare hint for read */ hint->count = size; reiser4_node_lock(place.node); read = objcall(&place, object->read_units, hint); reiser4_node_unlock(place.node); /* Read data from the tree */ if (read < 0) return read; else if (read == 0) break; if (size > read) { if ((res = reiser4_tree_next_place(tree, &place, &place)) < 0) { return res; } reiser4_key_inc_offset(&hint->offset, read); if (!place.plug) res = ABSENT; else if (reiser4_key_compfull(&place.key, &hint->offset)) res = ABSENT; else res = PRESENT; } } size -= read; total += read; /* Updating key and data buffer pointer */ hint->specific += read; } hint->specific = buff; aal_memcpy(&hint->offset, &key, sizeof(key)); return total; } #ifndef ENABLE_MINIMAL /* Releases passed region in block allocator. This is used in tail during tree trunacte. */ static errno_t cb_release_region(uint64_t start, uint64_t width, void *data) { reiser4_tree_t *tree = (reiser4_tree_t *)data; return reiser4_alloc_release(tree->fs->alloc, start, width); } /* Writes flow described by @hint to tree. Takes care about keys in index part of tree, root updatings, etc. Returns number of bytes actually written. */ int64_t reiser4_flow_write(reiser4_tree_t *tree, trans_hint_t *hint) { char *buff; errno_t res; uint64_t off; uint64_t end; uint64_t size; uint64_t bytes; uint64_t total; reiser4_key_t key; lookup_hint_t lhint; reiser4_place_t place; aal_assert("umka-2506", tree != NULL); aal_assert("umka-2507", hint != NULL); buff = hint->specific; aal_memcpy(&key, &hint->offset, sizeof(key)); end = off = reiser4_key_get_offset(&hint->offset); hint->blocks = tree->blocks; lhint.level = LEAF_LEVEL; lhint.key = &hint->offset; lhint.collision = NULL; /* Looking up the place to write into. */ if ((res = reiser4_tree_lookup(tree, &lhint, FIND_CONV, &place)) < 0) return res; /* Loop until desired number of bytes is written. */ for (total = bytes = 0, size = hint->count; size > 0;) { int32_t write; uint32_t level; if (end == off) { reiser4_key_t nkey; if ((res = reiser4_tree_next_key(tree, &place, &nkey))) return res; if (reiser4_key_compshort(&nkey, &hint->offset)) { /* No data found. */ end = MAX_UINT64; } else { end = reiser4_key_get_offset(&nkey); } } hint->count = (size > end - off) ? end - off : size; hint->blocks = tree->blocks; /* level new item will be inserted a on. */ level = reiser4_tree_target_level (tree, (reiser4_plug_t *)hint->plug); hint->bytes = 0; /* Writing data to tree. */ if ((write = reiser4_tree_write(tree, &place, hint, level)) < 0) { return write; } else if (write == 0) { break; } /* Updating counters */ size -= write; total += write; bytes += hint->bytes; /* Updating key and buffer pointer */ if (hint->specific) hint->specific += write; off += write; reiser4_key_inc_offset(&hint->offset, write); if (end - off > 0) { /* Position in the place may be left not updated. Lookup the item again. */ if ((res = objcall(&place, balance->lookup, &lhint, FIND_CONV)) < 0) { return res; } } else { res = reiser4_tree_next_place(tree, &place, &place); if (res) return res; aal_assert("vpf-1890", place.plug != NULL); } } hint->bytes = bytes; hint->specific = buff; aal_memcpy(&hint->offset, &key, sizeof(key)); return total; } /* Truncates item pointed by @hint->offset key by value stored in @hint->count. This is used during tail conversion and in object plugins truncate() code path. */ int64_t reiser4_flow_cut(reiser4_tree_t *tree, trans_hint_t *hint) { errno_t res; int64_t trunc; uint32_t size; uint64_t bytes; uint64_t total; reiser4_key_t key; aal_assert("umka-2475", tree != NULL); aal_assert("umka-2476", hint != NULL); aal_memcpy(&key, &hint->offset, sizeof(key)); /* Setting up region func to release region callback. It is needed for releasing extent blocks. */ hint->region_func = cb_release_region; hint->blocks = tree->blocks; for (total = bytes = 0, size = hint->count; size > 0; size -= trunc, total += trunc) { lookup_hint_t lhint; reiser4_place_t place; lhint.level = LEAF_LEVEL; lhint.key = &hint->offset; lhint.collision = NULL; /* FIXME: look into flow_write. */ if ((res = reiser4_tree_lookup(tree, &lhint, FIND_EXACT, &place)) < 0) { return res; } /* Nothing found by @hint->offset. This means, that tree has a hole between keys. We will handle this, as it is needed for fsck. */ if (res == ABSENT) { reiser4_key_t tkey; /* Here we suppose, that @place points to next item, just behind the hole. */ if (reiser4_place_right(&place)) reiser4_place_inc(&place, 1); if ((res = reiser4_tree_place_key(tree, &place, &tkey))) return res; if (objcall(&tkey, compshort, &hint->offset)) { /* No data found. */ trunc = size; } else { uint64_t hole, next, look; next = reiser4_key_get_offset(&tkey); look = reiser4_key_get_offset(&hint->offset); hole = next - look; trunc = (hole > size ? size : hole); } reiser4_key_inc_offset(&hint->offset, trunc); continue; } hint->count = size; hint->bytes = 0; /* Calling node truncate method. */ trunc = reiser4_node_trunc(place.node, &place.pos, hint); if (trunc < 0) return trunc; bytes += hint->bytes; /* Updating left delimiting keys in all parent nodes */ if (reiser4_place_leftmost(&place) && place.node->p.node) { /* If node became empty it will be detached from the tree, so updating is not needed and impossible, because it has no items. */ if (reiser4_node_items(place.node) > 0) { reiser4_key_t lkey; reiser4_place_t parent; /* Updating parent keys. */ reiser4_node_leftmost_key(place.node, &lkey); aal_memcpy(&parent, &place.node->p, sizeof(parent)); if ((res = reiser4_tree_update_keys(tree, &parent, &lkey))) { return res; } } } /* Checking if the node got empty. If so, we release it. */ if (reiser4_node_items(place.node) > 0) { if ((res = reiser4_tree_shrink(tree, &place))) return res; } else { /* Release @place.node, as it got empty. */ if (reiser4_node_locked(place.node)) { place.node->flags |= NF_HEARD_BANSHEE; } else { reiser4_tree_discard_node(tree, place.node); place.node = NULL; } } /* Drying tree up in the case root node has only one item */ if (tree->root && reiser4_tree_singular(tree) && !reiser4_tree_minimal(tree)) { if ((res = reiser4_tree_dryout(tree))) return res; } reiser4_key_inc_offset(&hint->offset, trunc); } hint->bytes = bytes; aal_memcpy(&hint->offset, &key, sizeof(key)); return total; } /* Converts file body at @hint->offset from tail to extent or from extent to tail. Main tail convertion function. It uses tree_read_flow(), tree_truc_flow() and tree_write_flow(). */ errno_t reiser4_flow_convert(reiser4_tree_t *tree, conv_hint_t *hint) { char *buff; errno_t res; int64_t conv; uint64_t size; int64_t insert; uint32_t blksize; trans_hint_t trans; aal_assert("umka-2406", tree != NULL); aal_assert("umka-2407", hint != NULL); aal_assert("umka-2481", hint->plug != NULL); blksize = reiser4_tree_get_blksize(tree); aal_memcpy(&trans.offset, &hint->offset, sizeof(trans.offset)); insert = hint->count; /* Check if the start byte is not multiple by the block size. Adjust if needed. */ conv = reiser4_key_get_offset(&trans.offset); size = conv & (blksize - 1); if (size) { reiser4_key_set_offset(&trans.offset, conv - size); if (hint->count != MAX_UINT64) insert += size; } /* Check if number of bytes to be converted is not multiple of block size. If so, have to round @hint->count up to blksize. */ size = insert & (blksize - 1); if (hint->count != MAX_UINT64 && size) insert += (blksize - size); /* Loop until @size bytes is converted. */ for (hint->bytes = 0; insert > 0; insert -= conv) { /* Each convertion tick may be divided onto tree stages: (1) Read blksize bytes @trans hint. (2) Truncate data in tree we have just read described by @trans hint. (3) Write data back to tree with target item plugin used for writing (tail plugin if we convert extents to tails and extent plugin is used otherwise). */ /* Preparing buffer to read data to it. */ trans.count = blksize > insert ? insert : blksize; if (!(buff = aal_calloc(trans.count, 0))) return -ENOMEM; trans.specific = buff; /* First stage -- reading data from tree. */ if ((conv = reiser4_flow_read(tree, &trans)) < 0) { res = conv; goto error_free_buff; } /* Second statge -- removing data from the tree. */ trans.data = tree; if (conv == 0) { /* If nothing was read, depending on hint->ins_hole flag the hole will be inserted or convertion is finished. */ if (!hint->ins_hole) { res = 0; goto error_free_buff; } trans.specific = NULL; } else { /* Trunc & insert only read @count bytes. */ trans.count = conv; } if ((conv = reiser4_flow_cut(tree, &trans)) < 0) { res = conv; goto error_free_buff; } if (insert > 0) { /* Insert only allowed amount of bytes. */ trans.count = conv > insert ? insert : conv; trans.plug = hint->plug; trans.shift_flags = SF_DEFAULT; trans.place_func = hint->place_func; /* Third stage -- writing data back to tree with new item plugin used.*/ if ((res = reiser4_flow_write(tree, &trans)) < 0) goto error_free_buff; } hint->bytes += trans.bytes; reiser4_key_inc_offset(&trans.offset, conv); aal_free(buff); } return 0; error_free_buff: aal_free(buff); return res; } #endif reiser4progs-1.0.7.orig/libreiser4/factory.c0000644000175000017500000001745111131470543016614 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. factory.c -- reiser4 plugin factory.It contains code for loading, unloading and finding plugins. */ #include /* Hash table contains all known libreiser4 plugins. */ reiser4_plug_t **plugins; static uint8_t plugs_max[LAST_PLUG_TYPE + 1] = { [OBJECT_PLUG_TYPE] = OBJECT_LAST_ID, [ITEM_PLUG_TYPE] = ITEM_LAST_ID, [NODE_PLUG_TYPE] = NODE_LAST_ID, [HASH_PLUG_TYPE] = HASH_LAST_ID, [FIBRE_PLUG_TYPE] = FIBRE_LAST_ID, [POLICY_PLUG_TYPE] = TAIL_LAST_ID, [SDEXT_PLUG_TYPE] = SDEXT_LAST_ID, [FORMAT_PLUG_TYPE] = FORMAT_LAST_ID, [OID_PLUG_TYPE] = OID_LAST_ID, [ALLOC_PLUG_TYPE] = ALLOC_LAST_ID, [JOURNAL_PLUG_TYPE] = JOURNAL_LAST_ID, [KEY_PLUG_TYPE] = KEY_LAST_ID, [COMPRESS_PLUG_TYPE] = COMPRESS_LAST_ID, [CMODE_PLUG_TYPE] = CMODE_LAST_ID, [CLUSTER_PLUG_TYPE] = CLUSTER_LAST_ID, [LAST_PLUG_TYPE] = 0, }; /* Structure that contains libreiser4 functions available for all plugins to be used. */ extern reiser4_core_t core; #ifndef ENABLE_MINIMAL /* Helper callback for checking plugin validness. It if called for each plugin in order to compare its characteristics with characteristics of new registered one. */ static errno_t cb_check_plug(reiser4_plug_t *plug, void *data) { reiser4_plug_t *examined = (reiser4_plug_t *)data; if (!plug || examined == plug) return 0; /* Check plugin labels. They should not be the same. */ if (!aal_strncmp(examined->label, plug->label, PLUG_MAX_LABEL)) { aal_error("Can't load another plugin with " "the same label %s.", plug->label); return -EINVAL; } /* Check plugin group. It should not be more or equal LAST_ITEM. */ if (examined->id.group >= LAST_ITEM) { aal_error("Plugin %s has invalid group id 0x%x.", examined->label, examined->id.group); return -EINVAL; } /* Check plugin id, type and group. There should be only one plugin with particular id. */ if (examined->id.group == plug->id.group && examined->id.id == plug->id.id && examined->id.type == plug->id.type) { aal_error("Plugin %s has the same id as %s.", examined->label, plug->label); return -EINVAL; } return 0; } #endif /* Helper functions used for calculating hash and for comparing two entries from plugin hash table during its modifying. */ #define plug_hash_func(type, id) (plugs_max[type] + (id)) #define plug_type_count(type) ((uint8_t)(plugs_max[type + 1] - plugs_max[type])) #ifndef ENABLE_MINIMAL /* Unloads plugin and removes it from plugin hash table. */ static errno_t reiser4_factory_unload(reiser4_plug_t *plug) { aal_assert("umka-1496", plug != NULL); plugins[plug_hash_func(plug->id.type, plug->id.id)] = NULL; return 0; } #endif /* Loads and initializes plugin by its entry. Also this function makes register the plugin in plugins list. */ void reiser4_factory_load(reiser4_plug_t *plug) { #ifndef ENABLE_MINIMAL if (reiser4_factory_foreach(cb_check_plug, (void *)plug)) { aal_error("Plugin %s will not be attached to " "plugin factory.", plug->label); reiser4_factory_unload(plug); return; } #endif plugins[plug_hash_func(plug->id.type, plug->id.id)] = plug; } /* Macro for loading plugin by its name. */ #define __load_plug(name) { \ extern reiser4_plug_t name##_plug; \ reiser4_factory_load(&name##_plug); \ } #define __init_plug(name) { \ extern reiser4_core_t *name##_core; \ name##_core = &core; \ } /* Initializes all built-in plugins. Other kinds of plugins are not supported for now. */ errno_t reiser4_factory_init(void) { uint8_t prev, max; int i; prev = 0; /* Init the plugin array. Note: reiser4_factory_init is called at every access to libreiser4 from grub, however plug_max is static and its re-initialization should be avoided -- check plugs_max[LAST_PLUG_TYPE] == 0. */ if (plugs_max[LAST_PLUG_TYPE] == 0) { for (i = 0; i <= LAST_PLUG_TYPE; i++) { max = plugs_max[i]; if (i == 0) plugs_max[i] = 0; else plugs_max[i] = plugs_max[i - 1] + prev; prev = max; } } plugins = aal_calloc((plugs_max[LAST_PLUG_TYPE]) * sizeof(*plugins), 0); /* Registering all known plugins. */ __load_plug(format40); __init_plug(format40); #ifndef ENABLE_MINIMAL __load_plug(oid40); __load_plug(alloc40); __load_plug(journal40); #endif #ifdef ENABLE_R5_HASH __load_plug(r5_hash); #endif #ifdef ENABLE_TEA_HASH __load_plug(tea_hash); #endif #ifdef ENABLE_DEG_HASH __load_plug(deg_hash); #endif #ifdef ENABLE_FNV1_HASH __load_plug(fnv1_hash); #endif #ifdef ENABLE_RUPASOV_HASH __load_plug(rupasov_hash); #endif #ifdef ENABLE_LEXIC_FIBRE __load_plug(fibre_lexic); #endif #ifdef ENABLE_DOT_O_FIBRE __load_plug(fibre_dot_o); #endif #ifdef ENABLE_EXT_1_FIBRE __load_plug(fibre_ext_1); #endif #ifdef ENABLE_EXT_3_FIBRE __load_plug(fibre_ext_3); #endif __load_plug(sdext_lw); __init_plug(sdext_lw); __load_plug(sdext_lt); __init_plug(sdext_lt); __load_plug(sdext_unix); __init_plug(sdext_unix); __load_plug(sdext_pset); __init_plug(sdext_pset); __load_plug(sdext_hset); #ifndef ENABLE_MINIMAL __load_plug(sdext_crypto); __init_plug(sdext_crypto); #endif __load_plug(sdext_flags); __init_plug(sdext_flags); __load_plug(cde40); __init_plug(cde40); __load_plug(stat40); __init_plug(stat40); __load_plug(plain40); __init_plug(plain40); #ifndef ENABLE_MINIMAL __load_plug(ctail40); __init_plug(ctail40); #endif __load_plug(extent40); __init_plug(extent40); __load_plug(nodeptr40); __init_plug(nodeptr40); __load_plug(bbox40); __init_plug(bbox40); #ifdef ENABLE_LARGE_KEYS __load_plug(key_large); #endif #ifdef ENABLE_SHORT_KEYS __load_plug(key_short); #endif __load_plug(node40); __init_plug(node40); __load_plug(dir40); __load_plug(reg40); #ifdef ENABLE_SPECIAL __load_plug(spl40); #endif #ifndef ENABLE_MINIMAL __load_plug(ccreg40); #endif #ifdef ENABLE_SYMLINKS __load_plug(sdext_symlink); __init_plug(sdext_symlink); __load_plug(sym40); #endif __init_plug(obj40); #ifndef ENABLE_MINIMAL __load_plug(extents); __load_plug(smart); __load_plug(tails); __load_plug(lzo1); __load_plug(gzip1); __load_plug(nocompress); __load_plug(lattd); __load_plug(ultim); __load_plug(force); __load_plug(convx); __load_plug(clust64); __load_plug(clust32); __load_plug(clust16); __load_plug(clust8); __load_plug(clust4); #endif return 0; } /* Finalizes plugin factory, by means of unloading the all plugins. */ void reiser4_factory_fini(void) { aal_free(plugins); } /* Calls specified function for every plugin from plugin list. This functions is used for getting any plugins information. */ errno_t reiser4_factory_foreach(plug_func_t plug_func, void *data) { errno_t res; uint8_t i; aal_assert("umka-3006", plug_func != NULL); for (i = 0; i < plugs_max[LAST_PLUG_TYPE]; i++) { if (plugins[i] && (res = plug_func(plugins[i], data))) return res; } return 0; } /* Finds plugin by its type and id. */ reiser4_plug_t *reiser4_factory_ifind(rid_t type, rid_t id) { if (type >= LAST_PLUG_TYPE) return 0; if (id >= plug_type_count(type)) return 0; return plugins[plug_hash_func(type, id)]; } /* Finds plugin by variable criterios implemented by passed @plug_func. */ reiser4_plug_t *reiser4_factory_cfind(plug_func_t plug_func, void *data) { errno_t res; uint8_t i; aal_assert("vpf-1886", plug_func != NULL); for (i = 0; i < plugs_max[LAST_PLUG_TYPE]; i++) { if (plugins[i] && (res = plug_func(plugins[i], data))) return plugins[i]; } return NULL; } #ifndef ENABLE_MINIMAL /* Makes search for plugin by @name. */ reiser4_plug_t *reiser4_factory_nfind(char *name) { uint8_t i; for (i = 0; i < plugs_max[LAST_PLUG_TYPE]; i++) { if (!plugins[i]) continue; if (!aal_strncmp(plugins[i]->label, name, sizeof(plugins[i]->label))) { return plugins[i]; } } return NULL; } #endif reiser4progs-1.0.7.orig/libreiser4/print.c0000644000175000017500000000621111131470543016271 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. print.c -- printing different reiser4 objects stuff. */ #ifndef ENABLE_MINIMAL #ifdef HAVE_CONFIG_H # include #endif #include static aal_list_t *current = NULL; static aal_list_t *streams = NULL; /* Adds passed stream to stream pool. */ static void reiser4_print_add_stream(aal_stream_t *stream) { streams = aal_list_append(streams, stream); } /* Removes passed stream from stream pool. */ static void reiser4_print_rem_stream(aal_stream_t *stream) { aal_list_t *next; next = aal_list_remove(streams, stream); if (!next || !next->prev) streams = next; } /* Initializes stream pool. It creates @pool number of streams, which will be used later for printing something to them. */ errno_t reiser4_print_init(uint32_t pool) { streams = NULL; for (; pool > 0; pool--) { aal_stream_t *stream; if (!(stream = aal_stream_create(NULL, &memory_stream))) return -ENOMEM; reiser4_print_add_stream(stream); } current = aal_list_first(streams); return 0; } /* Finalizes stream pool. */ void reiser4_print_fini(void) { aal_list_t *walk, *next; for (walk = streams; walk; walk = next) { void *stream = walk->data; next = walk->next; reiser4_print_rem_stream(stream); aal_stream_fini(stream); } current = NULL; streams = NULL; } /* Prints passed @key with @options to some of stream from stream pool and retrun pointer to result. */ char *reiser4_print_key(reiser4_key_t *key) { aal_stream_t *stream; aal_assert("umka-2379", key != NULL); aal_assert("umka-3086", current != NULL); aal_assert("umka-3087", streams != NULL); stream = (aal_stream_t *)current->data; if (!(current = current->next)) current = aal_list_first(streams); aal_stream_reset(stream); reiser4_key_print(key, stream, PO_DEFAULT); return (char *)stream->entity; } /* Prints passed @key with @options to some of stream from stream pool and retrun pointer to result. */ char *reiser4_print_inode(reiser4_key_t *key) { aal_stream_t *stream; aal_assert("umka-2379", key != NULL); aal_assert("umka-3086", current != NULL); aal_assert("umka-3087", streams != NULL); stream = (aal_stream_t *)current->data; if (!(current = current->next)) current = aal_list_first(streams); aal_stream_reset(stream); reiser4_key_print(key, stream, PO_INODE); return (char *)stream->entity; } #ifdef ENABLE_DEBUG void reiser4_print_node(reiser4_node_t *node, uint32_t start, uint32_t count, uint16_t options) { aal_stream_t stream; aal_stream_init(&stream, NULL, &file_stream); if (!node || !node->block || !node->plug || node->plug->p.id.type != NODE_PLUG_TYPE) { aal_stream_format(&stream, "Does not look " "like a proper node pointer.\n"); } else { objcall(node, print, &stream, start, count, options); } aal_stream_fini(&stream); } void reiser4_print_format(reiser4_format_t *format,uint16_t options) { aal_stream_t stream; aal_assert("vpf-175", format != NULL); aal_stream_init(&stream, NULL, &file_stream); reiser4call(format, print, &stream, options); aal_stream_fini(&stream); } #endif #endif reiser4progs-1.0.7.orig/libreiser4/libreiser4.c0000644000175000017500000001636611131470543017215 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. libreiser4.c -- version control functions, library initialization code and plugin-accessible library functions. */ #include #ifndef ENABLE_MINIMAL const char *reiser4_igname[] = { "SD", "NPTR", "DIRITEM", "TAIL", "EXTENT", "SLINK", "CTAIL" }; const char *reiser4_slink_name[] = { "UNLINK", "TRUNCATE", "Extent2Tail Convertion", "Tail2Extent Convertion" }; #endif /* Handler for plugin lookup requests from all plugins */ static reiser4_plug_t *factory_ifind( rid_t type, /* needed type of plugin*/ rid_t id) /* needed plugin id */ { return reiser4_factory_ifind(type, id); } #ifndef ENABLE_MINIMAL /* Handler for item insert requests from the all plugins */ static int64_t tree_insert(tree_entity_t *tree, reiser4_place_t *place, trans_hint_t *hint, uint8_t level) { return reiser4_tree_insert((reiser4_tree_t *)tree, place, hint, level); } /* Handler for write operation from @core. */ static int64_t tree_write(tree_entity_t *tree, trans_hint_t *hint) { return reiser4_flow_write((reiser4_tree_t *)tree, hint); } /* Handler for cut operation from @core. */ static int64_t tree_cut(tree_entity_t *tree, trans_hint_t *hint) { return reiser4_flow_cut((reiser4_tree_t *)tree, hint); } /* Handler for item removing requests from all plugins. */ static errno_t tree_remove(tree_entity_t *tree, reiser4_place_t *place, trans_hint_t *hint) { return reiser4_tree_remove((reiser4_tree_t *)tree, place, hint); } static lookup_t tree_collision(tree_entity_t *tree, reiser4_place_t *place, coll_hint_t *hint) { return reiser4_tree_collision((reiser4_tree_t *)tree, place, hint); } #endif /* Handler for lookup reqiests from the all plugin can arrive. */ static lookup_t tree_lookup(tree_entity_t *tree, lookup_hint_t *hint, lookup_bias_t bias, reiser4_place_t *place) { return reiser4_tree_lookup((reiser4_tree_t *)tree, hint, bias, place); } static int64_t tree_read(tree_entity_t *tree, trans_hint_t *hint) { return reiser4_flow_read((reiser4_tree_t *)tree, hint); } /* Handler for requests for next item. */ static errno_t tree_next_item(tree_entity_t *tree, reiser4_place_t *place, reiser4_place_t *next) { return reiser4_tree_next_place((reiser4_tree_t *)tree, place, next); } static errno_t tree_mpressure(tree_entity_t *tree) { return reiser4_tree_mpressure((reiser4_tree_t *)tree); } static reiser4_plug_t *pset_find(rid_t member, rid_t id, int is_pset) { return reiser4_pset_find(member, id, is_pset); } #ifndef ENABLE_MINIMAL static errno_t tree_update_key(tree_entity_t *tree, reiser4_place_t *place, reiser4_key_t *key) { return reiser4_tree_update_keys((reiser4_tree_t *)tree, place, key); } static char *key_print(reiser4_key_t *key, uint16_t options) { if (options == PO_INODE) return reiser4_print_inode(key); else if (options == 0) return reiser4_print_key(key); return NULL; } static errno_t tree_convert(tree_entity_t *tree, conv_hint_t *hint) { return reiser4_flow_convert((reiser4_tree_t *)tree, hint); } static uint64_t pset_build_mask(tree_entity_t *tree, reiser4_pset_t *pset) { return reiser4_pset_build_mask((reiser4_tree_t *)tree, pset); } static int item_mergeable(reiser4_place_t *place1, reiser4_place_t *place2) { return reiser4_item_mergeable(place1, place2); } static uint64_t tree_slink_locality(tree_entity_t *tree) { reiser4_tree_t *t = (reiser4_tree_t *)tree; aal_assert("vpf-1579", t != NULL); aal_assert("vpf-1580", t->fs != NULL); aal_assert("vpf-1581", t->fs->oid != NULL); return plugcall(t->fs->oid->ent->plug, slink_locality); } static errno_t tree_inc_free(tree_entity_t *tree, count_t count) { reiser4_format_t *format; aal_assert("vpf-1723", tree != NULL); format = ((reiser4_tree_t *)tree)->fs->format; return reiser4_format_inc_free(format, count); } static errno_t tree_dec_free(tree_entity_t *tree, count_t count) { reiser4_format_t *format; aal_assert("vpf-1723", tree != NULL); format = ((reiser4_tree_t *)tree)->fs->format; return reiser4_format_dec_free(format, count); } #endif #ifdef ENABLE_SYMLINKS static errno_t object_resolve(tree_entity_t *tree, char *path, reiser4_key_t *from, reiser4_key_t *key) { reiser4_object_t *object; reiser4_tree_t *t; t = (reiser4_tree_t *)tree; /* Resolving symlink path. */ if (!(object = reiser4_semantic_open(t, path, from, 1))) return -EINVAL; /* Save object stat data key to passed @key. */ aal_memcpy(key, &object->info.object, sizeof(*key)); /* Close found object. */ reiser4_object_close(object); return 0; } #endif /* Initializing the libreiser4 core instance. It will be passed into all plugins in otder to let them ability access libreiser4 methods such as insert or remove an item from the tree. */ reiser4_core_t core = { .flow_ops = { /* Reads data from the tree. */ .read = tree_read, #ifndef ENABLE_MINIMAL /* Callback for truncating data in tree. */ .cut = tree_cut, /*Convertion to another item plugin. */ .convert = tree_convert, /* Callback for writting data to tree. */ .write = tree_write #endif }, .tree_ops = { /* This one for lookuping the tree */ .lookup = tree_lookup, #ifndef ENABLE_MINIMAL /* Correct the position if collision exists. */ .collision = tree_collision, /* Callback function for inserting items into the tree. */ .insert = tree_insert, /* Callback function for removing items from the tree. */ .remove = tree_remove, /* Update the key in the place and the node itself. */ .update_key = tree_update_key, /* Get the safe link locality. */ .slink_locality = tree_slink_locality, /* increment/decriment the free block count in the format. */ .inc_free = tree_inc_free, .dec_free = tree_dec_free, #endif /* Returns next item from the passed place. */ .next_item = tree_next_item, .mpressure = tree_mpressure, }, .factory_ops = { /* search a plugin by its type and id. */ .ifind = factory_ifind }, .pset_ops = { .find = pset_find, #ifndef ENABLE_MINIMAL .build_mask = pset_build_mask, #endif }, #ifdef ENABLE_SYMLINKS .object_ops = { .resolve = object_resolve }, #endif #ifndef ENABLE_MINIMAL .key_ops = { .print = key_print }, .item_ops = { .mergeable = item_mergeable } #endif }; /* Returns libreiser4 max supported interface version */ int libreiser4_max_interface_version(void) { return LIBREISER4_MAX_INTERFACE_VERSION; } /* Returns libreiser4 min supported interface version */ int libreiser4_min_interface_version(void) { return LIBREISER4_MIN_INTERFACE_VERSION; } /* Returns libreiser4 version */ const char *libreiser4_version(void) { return VERSION; } /* Initializes libreiser4 (plugin factory, etc). This function should be called before any actions performed on libreiser4. */ errno_t libreiser4_init(void) { #ifndef ENABLE_MINIMAL reiser4_print_init(20); #endif if (reiser4_factory_init()) { aal_fatal("Can't initialize plugin factory."); goto error_fini_print; } return 0; error_fini_print: #ifndef ENABLE_MINIMAL reiser4_print_fini(); #endif return -EINVAL; } /* Finalizes libreiser4 */ void libreiser4_fini(void) { reiser4_factory_fini(); #ifndef ENABLE_MINIMAL reiser4_print_fini(); #endif } reiser4progs-1.0.7.orig/missing0000755000175000017500000002466611131470543014342 0ustar fzfz#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2003-09-02.23 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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 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; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: reiser4progs-1.0.7.orig/COPYING0000644000175000017500000000551311131470543013764 0ustar fzfzThis file is part of reiser4progs package Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by reiser4progs/COPYING. [LICENSING] Reiser4 is hereby licensed under the GNU General Public License version 2. Source code files that contain the phrase "licensing governed by COPYING" are "governed files" throughout this file. Governed files are licensed under the GPL. The portions of them owned by Hans Reiser, or authorized to be licensed by him, have been in the past, and likely will be in the future, licensed to other parties under other licenses. If you add your code to governed files, and don't want it to be owned by Hans Reiser, put your copyright label on that code so the poor blight and his customers can keep things straight. All portions of governed files not labeled otherwise are owned by Hans Reiser, and by adding your code to it, widely distributing it to others or sending us a patch, and leaving the sentence in stating that licensing is governed by the statement in this file, you accept this. It will be a kindness if you identify whether Hans Reiser is allowed to license code labeled as owned by you on your behalf other than under the GPL, because he wants to know if it is okay to do so and put a check in the mail to you (for non-trivial improvements) when he makes his next sale. He makes no guarantees as to the amount if any, though he feels motivated to motivate contributors, and you can surely discuss this with him before or after contributing. You have the right to decline to allow him to license your code contribution other than under the GPL. Further licensing options are available for commercial and/or other interests directly from Hans Reiser: reiser@namesys.com. If you interpret the GPL as not allowing those additional licensing options, you read it wrongly, and Richard Stallman agrees with me, when carefully read you can see that those restrictions on additional terms do not apply to the owner of the copyright, and my interpretation of this shall govern for this license. Finally, nothing in this license shall be interpreted to allow you to fail to fairly credit me, or to remove my credits such as by creating a front end that hides my credits from the user or renaming mkreiser4 to mkyourcompanyfs or even just make_filesystem, without my permission, unless you are an end user not redistributing to others. If you have doubts about how to properly do that, or about what is fair, ask. (Last I spoke with him Richard was contemplating how best to address the fair crediting issue in the next GPL version.) Also, a clustering file system built to work on top of this file system shall be considered a derivative work for the purposes of interpreting the GPL license granted herein. Plugins are also to be considered derivative works. Share code or pay money, we give you the choice. [END LICENSING] reiser4progs-1.0.7.orig/reiser4progs.spec.in0000644000175000017500000000345211131470543016642 0ustar fzfz%define enable_debug 1 Name: reiser4progs Version: @VERSION@ Release: 1 Summary: Utilities for reiser4 filesystems License: GPL Group: System Environment/Base URL: http://www.namesys.com/ Source: reiser4progs-%{version}.tar.gz BuildRequires: libaal-devel BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description Utilities for manipulating reiser4 filesystems. %package devel Summary: Development libraries and headers for developing reiser4 tools. Group: Development/Libraries %description devel Development libraries and headers for developing reiser4 tools. %prep %setup -q %build %configure \ %if %{enable_debug} --enable-debug \ %else --disable-debug \ %endif --enable-libminimal \ --disable-plugins-check \ --disable-fnv1-hash \ --disable-rupasov-hash \ --disable-tea-hash \ --disable-deg-hash make %install rm -rf $RPM_BUILD_ROOT %makeinstall %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root) %doc AUTHORS BUGS COPYING CREDITS INSTALL NEWS README THANKS TODO %{_libdir}/libreiser4-1.0.so.* %{_libdir}/libreiser4-minimal-1.0.so.* %{_libdir}/librepair-1.0.so.* %{_sbindir}/debugfs.reiser4 %{_sbindir}/fsck.reiser4 %{_sbindir}/make_reiser4 %{_sbindir}/measurefs.reiser4 %{_sbindir}/mkfs.reiser4 %{_mandir}/man8/*.gz %files devel %dir %{_includedir}/reiser4 %{_includedir}/reiser4/*.h %{_includedir}/repair/*.h %{_datadir}/aclocal/libreiser4.m4 %{_libdir}/libreiser4.*a %{_libdir}/libreiser4-minimal.*a %{_libdir}/librepair.*a %changelog * Sat Aug 14 2004 neeo - Small update for 1.0 * Fri Aug 29 2003 Yuey V Umanets - Some cleanups and improvements inf this spec file * Wed Aug 27 2003 David T Hollis - RPM package created reiser4progs-1.0.7.orig/NEWS0000644000175000017500000000000011134132321013402 0ustar fzfzreiser4progs-1.0.7.orig/compile0000755000175000017500000000707211131470543014311 0ustar fzfz#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2003-11-09.00 # Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program 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 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; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit 0 ;; -v | --v*) echo "compile $scriptversion" exit 0 ;; esac prog=$1 shift ofile= cfile= args= while test $# -gt 0; do case "$1" in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we do something ugly here. ofile=$2 shift case "$ofile" in *.o | *.obj) ;; *) args="$args -o $ofile" ofile= ;; esac ;; *.c) cfile=$1 args="$args $1" ;; *) args="$args $1" ;; esac shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$prog" $args fi # Name of file we expect compiler to create. cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d while true; do if mkdir $lockdir > /dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir $lockdir; exit 1" 1 2 15 # Run the compile. "$prog" $args status=$? if test -f "$cofile"; then mv "$cofile" "$ofile" fi rmdir $lockdir exit $status # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: reiser4progs-1.0.7.orig/progs/0000777000175000017500000000000011134133450014057 5ustar fzfzreiser4progs-1.0.7.orig/progs/Makefile.in0000644000175000017500000003433211134132301016117 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = progs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = mkfs debugfs measurefs fsck all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu progs/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu progs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/progs/fsck/0000777000175000017500000000000011134133450015005 5ustar fzfzreiser4progs-1.0.7.orig/progs/fsck/Makefile.in0000644000175000017500000004412211134132301017043 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ sbin_PROGRAMS = fsck.reiser4$(EXEEXT) subdir = progs/fsck DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(sbin_PROGRAMS) am_fsck_reiser4_OBJECTS = fsck_reiser4-fsck.$(OBJEXT) \ fsck_reiser4-backup.$(OBJEXT) fsck_reiser4_OBJECTS = $(am_fsck_reiser4_OBJECTS) fsck_reiser4_DEPENDENCIES = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/librepair/librepair.la \ $(top_builddir)/libmisc/libmisc.la fsck_reiser4_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(fsck_reiser4_CFLAGS) \ $(CFLAGS) $(fsck_reiser4_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(fsck_reiser4_SOURCES) DIST_SOURCES = $(fsck_reiser4_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fsck_reiser4_SOURCES = fsck.c backup.c fsck.h backup.h fsck_reiser4_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/librepair/librepair.la \ $(top_builddir)/libmisc/libmisc.la \ @PROGS_LIBS@ fsck_reiser4_LDFLAGS = @PROGS_LDFLAGS@ fsck_reiser4_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu progs/fsck/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu progs/fsck/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-sbinPROGRAMS: $(sbin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)" @list='$(sbin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-sbinPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(sbin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \ rm -f "$(DESTDIR)$(sbindir)/$$f"; \ done clean-sbinPROGRAMS: @list='$(sbin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done fsck.reiser4$(EXEEXT): $(fsck_reiser4_OBJECTS) $(fsck_reiser4_DEPENDENCIES) @rm -f fsck.reiser4$(EXEEXT) $(fsck_reiser4_LINK) $(fsck_reiser4_OBJECTS) $(fsck_reiser4_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsck_reiser4-backup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsck_reiser4-fsck.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< fsck_reiser4-fsck.o: fsck.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fsck_reiser4_CFLAGS) $(CFLAGS) -MT fsck_reiser4-fsck.o -MD -MP -MF $(DEPDIR)/fsck_reiser4-fsck.Tpo -c -o fsck_reiser4-fsck.o `test -f 'fsck.c' || echo '$(srcdir)/'`fsck.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/fsck_reiser4-fsck.Tpo $(DEPDIR)/fsck_reiser4-fsck.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsck.c' object='fsck_reiser4-fsck.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fsck_reiser4_CFLAGS) $(CFLAGS) -c -o fsck_reiser4-fsck.o `test -f 'fsck.c' || echo '$(srcdir)/'`fsck.c fsck_reiser4-fsck.obj: fsck.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fsck_reiser4_CFLAGS) $(CFLAGS) -MT fsck_reiser4-fsck.obj -MD -MP -MF $(DEPDIR)/fsck_reiser4-fsck.Tpo -c -o fsck_reiser4-fsck.obj `if test -f 'fsck.c'; then $(CYGPATH_W) 'fsck.c'; else $(CYGPATH_W) '$(srcdir)/fsck.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/fsck_reiser4-fsck.Tpo $(DEPDIR)/fsck_reiser4-fsck.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsck.c' object='fsck_reiser4-fsck.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fsck_reiser4_CFLAGS) $(CFLAGS) -c -o fsck_reiser4-fsck.obj `if test -f 'fsck.c'; then $(CYGPATH_W) 'fsck.c'; else $(CYGPATH_W) '$(srcdir)/fsck.c'; fi` fsck_reiser4-backup.o: backup.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fsck_reiser4_CFLAGS) $(CFLAGS) -MT fsck_reiser4-backup.o -MD -MP -MF $(DEPDIR)/fsck_reiser4-backup.Tpo -c -o fsck_reiser4-backup.o `test -f 'backup.c' || echo '$(srcdir)/'`backup.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/fsck_reiser4-backup.Tpo $(DEPDIR)/fsck_reiser4-backup.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='backup.c' object='fsck_reiser4-backup.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fsck_reiser4_CFLAGS) $(CFLAGS) -c -o fsck_reiser4-backup.o `test -f 'backup.c' || echo '$(srcdir)/'`backup.c fsck_reiser4-backup.obj: backup.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fsck_reiser4_CFLAGS) $(CFLAGS) -MT fsck_reiser4-backup.obj -MD -MP -MF $(DEPDIR)/fsck_reiser4-backup.Tpo -c -o fsck_reiser4-backup.obj `if test -f 'backup.c'; then $(CYGPATH_W) 'backup.c'; else $(CYGPATH_W) '$(srcdir)/backup.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/fsck_reiser4-backup.Tpo $(DEPDIR)/fsck_reiser4-backup.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='backup.c' object='fsck_reiser4-backup.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fsck_reiser4_CFLAGS) $(CFLAGS) -c -o fsck_reiser4-backup.obj `if test -f 'backup.c'; then $(CYGPATH_W) 'backup.c'; else $(CYGPATH_W) '$(srcdir)/backup.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(sbindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-sbinPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-sbinPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-sbinPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-sbinPROGRAMS install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-sbinPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/progs/fsck/backup.c0000644000175000017500000000553211131470543016423 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. backup.c -- backup and rollback fsck changes code. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE #endif #include backup_t backup; static errno_t backup_write( aal_device_t *device, /* file device, data will be wrote onto */ void *buff, /* buffer, data stored in */ blk_t block, /* start position for writing */ count_t count) { blk_t blk, end; end = block + count; for (blk = block; blk < end; blk++) { /* Check if the block is written already. */ if (reiser4_bitmap_test(backup.bitmap, blk)) continue; /* Mark it in the bitmap. */ reiser4_bitmap_mark(backup.bitmap, blk); /* Write block number and data into the backup stream. */ fwrite(&blk, sizeof(blk), 1, backup.file); fwrite(buff, device->blksize, 1, backup.file); } return backup.write(device, buff, block, count); } errno_t backup_init(FILE *file, aal_device_t *device, count_t len) { aal_memset(&backup, 0, sizeof(backup)); if (!file) return 0; aal_assert("vpf-1511", device != NULL); backup.file = file; if (!(backup.bitmap = reiser4_bitmap_create(len))) { aal_error("Failed to allocate a bitmap for the backup."); return -ENOMEM; } backup.write = device->ops->write; device->ops->write = backup_write; /* Write header to the file. */ fwrite(BACKUP_MAGIC, sizeof(BACKUP_MAGIC), 1, backup.file); fwrite(&device->blksize, sizeof(device->blksize), 1, backup.file); return 0; } void backup_fini() { if (!backup.file) return; fclose(backup.file); reiser4_bitmap_close(backup.bitmap); } errno_t backup_rollback(FILE *file, aal_device_t *device) { char buf[sizeof(BACKUP_MAGIC)]; uint32_t size; count_t count; void *data; blk_t blk; aal_assert("vpf-1512", file != NULL); aal_assert("vpf-1513", device != NULL); if ((count = fread(buf, sizeof(BACKUP_MAGIC), 1, file)) != 1) { aal_error("Failed to read from the backup file."); return -EIO; } if (aal_strncmp(buf, BACKUP_MAGIC, sizeof(BACKUP_MAGIC))) { aal_error("Specified file does not look like a backup one."); return -EIO; } if ((count = fread(&size, sizeof(size), 1, file)) != 1) { aal_error("Failed to read from the backup file."); return -EIO; } if (!(data = aal_malloc(size))) { aal_error("Failed to alloc the buffer for rollback."); return -ENOMEM; } while (1) { /* Read from the backup file. */ count = fread(&blk, sizeof(blk), 1, file); if (count != 1) { if (feof(file)) break; goto error_free_data; } if ((count = fread(data, size, 1, file)) != 1) { aal_error("Failed to read from the backup file."); goto error_free_data; } /* Write to the device. */ aal_device_write(device, data, blk, 1); } return 0; error_free_data: aal_error("Failed to read from the backup file."); aal_free(data); return -EIO; } reiser4progs-1.0.7.orig/progs/fsck/backup.h0000644000175000017500000000116111131470543016422 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. backup.h -- backup and rollback fsck declarations. */ #ifndef BACKUP_H #define BACKUP_H #include #include #include #define BACKUP_MAGIC "_RollBackFileForReiser4FSCK" typedef struct backup { errno_t (*write) (aal_device_t *, void *, blk_t, count_t); reiser4_bitmap_t *bitmap; FILE *file; } backup_t; extern errno_t backup_init(FILE *file, aal_device_t *device, count_t len); extern errno_t backup_rollback(FILE *file, aal_device_t *device); extern void backup_fini(); #endif reiser4progs-1.0.7.orig/progs/fsck/Makefile.am0000644000175000017500000000057611131470543017051 0ustar fzfzsbin_PROGRAMS = fsck.reiser4 fsck_reiser4_SOURCES = fsck.c backup.c fsck.h backup.h fsck_reiser4_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/librepair/librepair.la \ $(top_builddir)/libmisc/libmisc.la \ @PROGS_LIBS@ fsck_reiser4_LDFLAGS = @PROGS_LDFLAGS@ fsck_reiser4_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include reiser4progs-1.0.7.orig/progs/fsck/fsck.c0000644000175000017500000004020711131470543016102 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. fsck.c -- reiser4 filesystem checking and recovering program. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE #endif #include #define fsck_opt(parse, flag) aal_test_bit(&(parse)->options, flag) static void fsck_print_usage(char *name) { fprintf(stderr, "Usage: %s [ options ] FILE\n", name); fprintf(stderr, "Fsck options:\n" " --check checks the consistency (default)\n" " --fix fixes minor corruptions\n" " --build-sb rebuilds the super block\n" " --build-fs rebuilds the filesystem\n" "\n" " -L, --logfile file complains into the file\n" " -n, --no-log makes fsck to not complain\n" " -a, --auto automatically checks the consistency\n" " without any questions.\n" " -q, --quiet supresses gauges\n" " -r ignored\n" "Plugins options:\n" " --print-profile prints the plugin profile.\n" " -l, --print-plugins prints all known plugins.\n" " -o, --override TYPE=PLUGIN overrides the default plugin of the type\n" " \"TYPE\" by the plugin \"PLUGIN\" in the\n" " profile.\n" "Common options:\n" " -?, -h, --help prints program usage.\n" " -V, --version prints current version.\n" " -y, --yes assumes an answer 'yes' to all questions.\n" " -f, --force makes fsck to use whole disk, not block\n" " device or mounted partition.\n" " -p, --preen automatically repair the filesysem.\n" " -c, --cache N number of nodes in tree buffer cache\n"); } #define WARNING \ "*******************************************************************\n"\ "This is an EXPERIMENTAL version of fsck.reiser4. Read README first.\n"\ "*******************************************************************\n" static errno_t fsck_ask_confirmation(fsck_parse_t *data, char *host_name) { fprintf(stderr, WARNING "\n"); aal_mess("Fscking the %s block device.", host_name); switch (data->sb_mode) { case RM_CHECK: aal_mess("Will check the consistency of " "the Reiser4 SuperBlock."); break; case RM_FIX: aal_mess("Will fix minor corruptions of " "the Reiser4 SuperBlock."); break; case RM_BUILD: aal_mess("Will build the Reiser4 SuperBlock."); break; default: break; } switch (data->fs_mode) { case RM_CHECK: aal_mess("Will check the consistency of " "the Reiser4 FileSystem."); break; case RM_FIX: aal_mess("Will fix minor corruptions of " "the Reiser4 FileSystem."); break; case RM_BUILD: aal_mess("Will build the Reiser4 FileSystem."); break; case RM_BACK: aal_mess("Will rollback changes saved in '%s' back " "onto (%s).", data->backup_file, host_name); break; default: break; } if (!fsck_opt(data, FSCK_OPT_YES)) { if (aal_yesno("Continue?") == EXCEPTION_OPT_NO) return USER_ERROR; } return NO_ERROR; } static void fsck_init_streams() { int ex; for (ex = 0; ex < EXCEPTION_TYPE_LAST; ex++) misc_exception_set_stream(ex, stderr); misc_exception_set_stream(EXCEPTION_TYPE_INFO, stdout); } enum fsck_mode { RM_SHOW_PARM = RM_LAST, RM_SHOW_PLUG = RM_LAST + 1 }; static errno_t fsck_init(fsck_parse_t *data, struct aal_device_ops *ops, int argc, char *argv[]) { static int mode = RM_CHECK, sb_mode = 0, fs_mode = 0; FILE *stream = NULL; char override[4096]; int option_index; errno_t ret = 0; uint32_t cache; int mounted, c; static struct option options[] = { /* FSCK modes. */ {"check", no_argument, &mode, RM_CHECK}, {"fix", no_argument, &mode, RM_FIX}, {"build-sb", no_argument, &sb_mode, RM_BUILD}, {"build-fs", no_argument, &fs_mode, RM_BUILD}, {"print-profile", no_argument, &mode, RM_SHOW_PARM}, {"print-plugins", no_argument, &mode, RM_SHOW_PLUG}, /* Fsck hidden modes. */ {"rollback", no_argument, &mode, RM_BACK}, /* Fsck options */ {"logfile", required_argument, 0, 'L'}, {"version", no_argument, NULL, 'V'}, {"help", no_argument, NULL, 'h'}, {"quiet", no_argument, NULL, 'q'}, {"yes", no_argument, NULL, 'y'}, {"no-log", no_argument, NULL, 'n'}, {"auto", no_argument, NULL, 'a'}, {"force", no_argument, NULL, 'f'}, {"preen", no_argument, NULL, 'p'}, {"cache", required_argument, 0, 'c'}, {"override", required_argument, NULL, 'o'}, /* Fsck hidden options. */ {"passes-dump", required_argument, 0, 'U'}, {"backup", required_argument, 0, 'b'}, {"bitmap", required_argument, 0, 'B'}, {"unused", no_argument, NULL, 'u'}, {"oldfs", no_argument, NULL, 'O'}, {"nomkid", no_argument, NULL, 'N'}, {0, 0, 0, 0} }; fsck_init_streams(); aux_gauge_set_handler(misc_progress_handler, GT_PROGRESS); memset(override, 0, sizeof(override)); data->logfile = stderr; if (argc < 2) { fsck_print_usage(argv[0]); return USER_ERROR; } while ((c = getopt_long(argc, argv, "L:VhnqafU:b:r?dB:plo:c:uyON", options, &option_index)) >= 0) { switch (c) { case 0: /* Long options. */ break; case 'L': if ((stream = fopen(optarg, "w")) == NULL) { aal_fatal("Cannot not open the " "logfile (%s).", optarg); goto oper_error; } data->logfile = stream; break; case 'n': data->logfile = NULL; break; case 'U': break; case 'b': data->backup_file = optarg; break; case 'f': aal_set_bit(&data->options, FSCK_OPT_FORCE); break; case 'p': /* Fall through to auto, as preen is an alias for -a */ case 'a': aal_set_bit(&data->options, FSCK_OPT_AUTO); break; case 'h': case '?': fsck_print_usage(argv[0]); goto user_error; case 'V': misc_print_banner(argv[0]); goto user_error; case 'q': aux_gauge_set_handler(NULL, GT_PROGRESS); break; case 'y': aal_set_bit(&data->options, FSCK_OPT_YES); break; case 'r': break; case 'd': aal_set_bit(&data->options, FSCK_OPT_DEBUG); break; case 'B': data->bitmap_file = optarg; break; case 'c': if ((cache = misc_str2long(optarg, 10)) == INVAL_DIG) { aal_fatal("Invalid cache value specified (%s).", optarg); return USER_ERROR; } misc_mpressure_setup(cache); break; case 'l': mode = RM_SHOW_PLUG; break; case 'o': aal_strncat(override, optarg, aal_strlen(optarg)); aal_strncat(override, ",", 1); break; case 'u': aal_set_bit(&data->options, FSCK_OPT_WHOLE); break; case 'O': aal_set_bit(&data->options, FSCK_OPT_OLD); break; case 'N': aal_set_bit(&data->options, FSCK_OPT_NOMKID); break; } } /* Initializing libreiser4 with factory sanity check */ if (libreiser4_init()) { aal_fatal("Cannot initialize the libreiser4."); goto oper_error; } if (aal_strlen(override) > 0) { override[aal_strlen(override) - 1] = '\0'; aal_mess("Overriding the plugin profile by \"%s\".", override); if (misc_profile_override(override)) goto oper_error; } if (mode == RM_SHOW_PARM) { misc_profile_print(); goto user_error; } if (mode == RM_SHOW_PLUG) { misc_plugins_print(); goto user_error; } if (optind != argc - 1) { fsck_print_usage(argv[0]); goto user_error; } if (aal_test_bit(&data->options, FSCK_OPT_AUTO)) { aal_mess("%s %s", argv[0], argv[optind]); exit(NO_ERROR); } data->sb_mode = sb_mode ? sb_mode : mode; data->fs_mode = fs_mode ? fs_mode : mode; if (data->backup_file) { data->backup = fopen(data->backup_file, mode == RM_BACK ? "r" : "w+"); if (!data->backup) { aal_fatal("Cannot not open the backup file (%s).", optarg); goto oper_error; } } /* Check if device is mounted and we are able to fsck it. */ if ((mounted = misc_dev_mounted(argv[optind])) > 0) { if (mounted == MF_RW) { aal_fatal("The partition (%s) is mounted with write " "permissions, cannot fsck it.", argv[optind]); goto user_error; } aal_set_bit(&data->options, FSCK_OPT_RO); if (data->sb_mode != RM_CHECK || data->fs_mode != RM_CHECK) { /* If not CHECK mode, lock the process in the memory. */ if (mlockall(MCL_CURRENT)) { aal_fatal("Failed to lock the process in the " "memory: %s.", strerror(errno)); goto oper_error; } } } if (!(data->host_device = aal_device_open(ops, argv[optind], 512, O_RDONLY))) { aal_fatal("Cannot open the partition (%s): %s.", argv[optind], strerror(errno)); goto oper_error; } misc_exception_set_stream(EXCEPTION_TYPE_FSCK, data->logfile); return fsck_ask_confirmation(data, argv[optind]); user_error: ret = USER_ERROR; goto error; oper_error: ret = OPER_ERROR; error: if (data->logfile && data->logfile != stderr) fclose(data->logfile); if (data->backup) fclose(data->backup); return ret; } static void fsck_fini(fsck_parse_t *data) { if (data->logfile != NULL && data->logfile != stderr) fclose(data->logfile); backup_fini(); } static void fsck_time(char *string) { time_t t; time(&t); fprintf(stderr, "***** %s %s", string, ctime (&t)); } /* Open the fs and init the tree. */ static errno_t fsck_check_init(repair_data_t *repair, aal_device_t *host, FILE *backup, uint8_t sb_mode, uint8_t fs_mode) { aal_stream_t stream; int flags = 0; int reop = 0; count_t len; errno_t res; /* Reopen device RW for fixing SB. */ if (sb_mode != RM_CHECK) { flags = host->flags; if (aal_device_reopen(host, host->blksize, O_RDWR)) { aal_fatal("Failed to reopen file \"%s\" with O_RDRW: %s", host->name, strerror(errno)); return -EIO; } reop = 1; } repair->mode = sb_mode; if ((res = repair_fs_open(repair, host, host))) return res; if (repair->fs == NULL) { aal_fatal("Cannot open the FileSystem on (%s).", host->name); return res; } if (!reop) { /* Reopen device RW for replaying. */ flags = host->flags; if (aal_device_reopen(host, host->blksize, O_RDWR)) { aal_fatal("Failed to reopen file \"%s\" with O_RDRW: %s", host->name, strerror(errno)); res = -EIO; goto error_close_fs; } } if ((res = repair_fs_replay(repair->fs)) < 0) goto error_close_fs; repair_error_count(repair, res); /* Leave device RW if not CHECK mode. */ reiser4_journal_sync(repair->fs->journal); if (reiser4_fs_sync(repair->fs)) return -EIO; if (fs_mode == RM_CHECK) { if (aal_device_reopen(host, host->blksize, flags)) { aal_fatal("Failed to reopen file \"%s\" with 0%o: %s", host->name, flags, strerror(errno)); res = -EIO; goto error_close_fs; } } repair->sb_fixable = repair->fixable; repair->fixable = 0; repair->mode = fs_mode; repair_error_count(repair, res); repair->fs->tree->mpc_func = misc_mpressure_detect; aal_stream_init(&stream, NULL, &memory_stream); repair_master_print(repair->fs->master, &stream, misc_uuid_unparse); aal_stream_format(&stream, "\n"); repair_format_print(repair->fs->format, &stream); aal_stream_format(&stream, "\n"); aal_mess("Reiser4 fs was detected on %s.\n%s", repair->fs->device->name, (char *)stream.entity); aal_stream_fini(&stream); /* Initialize the backup. */ len = reiser4_format_get_len(repair->fs->format); if ((res = backup_init(backup, host, len))) goto error_close_fs; return 0; error_close_fs: reiser4_fs_close(repair->fs); repair->fs = NULL; return res; } static errno_t fsck_check_fini(repair_data_t *repair, uint8_t sb_mode, uint8_t fs_mode, errno_t result) { reiser4_status_t *status; aal_device_t *device; uint64_t state; int flags; aal_assert("vpf-1338", repair != NULL); aal_assert("vpf-1339", repair->fs != NULL); aal_assert("vpf-1340", repair->fs->status != NULL); device = repair->fs->device; flags = device->flags; if (aal_device_reopen(device, device->blksize, O_RDWR)) return -EIO; /* Fix the status block. */ status = repair->fs->status; if (repair->fatal) { state = FS_DAMAGED; } else if (repair->fixable || repair->sb_fixable) { state = FS_CORRUPTED; } else { state = 0; } repair_status_state(status, state); if (reiser4_status_sync(repair->fs->status)) return -EIO; if (!result && (sb_mode != RM_CHECK || fs_mode != RM_CHECK)) { /* If there was no backup openned or some fields have been changed, reopen the backup. */ if (!(repair->fs->backup = repair_backup_reopen(repair->fs))) { aal_fatal("Failed to reopen backup."); return -EIO; } if (reiser4_backup_sync(repair->fs->backup)) return -EIO; } if (aal_device_reopen(device, device->blksize, flags)) return -EIO; return 0; } int main(int argc, char *argv[]) { struct aal_device_ops fsck_ops = file_ops; aal_device_t *device; repair_data_t repair; fsck_parse_t parse_data; errno_t ex = NO_ERROR; int stage = 0; errno_t res = 0; memset(&parse_data, 0, sizeof(parse_data)); memset(&repair, 0, sizeof(repair)); if ((ex = fsck_init(&parse_data, &fsck_ops, argc, argv)) != NO_ERROR) exit(ex); device = parse_data.host_device; if (parse_data.fs_mode == RM_BACK){ if (aal_device_reopen(device, device->blksize, O_RDWR)) { ex = OPER_ERROR; goto free_device; } if ((res = backup_rollback(parse_data.backup, device))) ex = OPER_ERROR; goto free_device; } fsck_time("fsck.reiser4 started at"); /* SB_mode is specified, otherwise */ repair.flags = fsck_opt(&parse_data, FSCK_OPT_DEBUG) << REPAIR_DEBUG | fsck_opt(&parse_data, FSCK_OPT_WHOLE) << REPAIR_WHOLE | fsck_opt(&parse_data, FSCK_OPT_OLD) << REPAIR_WHOLE | fsck_opt(&parse_data, FSCK_OPT_OLD) << REPAIR_NO_MKID | fsck_opt(&parse_data, FSCK_OPT_NOMKID) << REPAIR_NO_MKID | fsck_opt(&parse_data, FSCK_OPT_YES) << REPAIR_YES; repair.bitmap_file = parse_data.bitmap_file; res = fsck_check_init(&repair, device, parse_data.backup, parse_data.sb_mode, parse_data.fs_mode); if (res || repair.fatal) goto free_libreiser4; stage = 1; res = repair_check(&repair); /* Even if there was some problems on fs check, fini must be done. */ res |= fsck_check_fini(&repair, parse_data.sb_mode, parse_data.fs_mode, res); fsck_time("fsck.reiser4 finished at"); fprintf(stderr, "Closing fs..."); reiser4_fs_close(repair.fs); repair.fs = NULL; fprintf(stderr, "done\n"); free_libreiser4: libreiser4_fini(); free_device: if (device) { if (aal_device_sync(device)) { aal_fatal("Cannot synchronize file \"%s\"", device->name); ex = OPER_ERROR; } aal_device_close(device); } fprintf(stderr, "\n"); /* Report about the results. */ if (res < 0 || ex == OPER_ERROR) { ex = OPER_ERROR; fprintf(stderr, "Operational error occurred while fscking.\n"); goto free_fsck; } if (parse_data.fs_mode == RM_BACK) goto free_fsck; if (repair.sb_fixable) { /* No fatal corruptions in SB, but some fixable ones. */ fprintf(stderr, "%llu fixable corruptions were detected in " "the SuperBlock. Run with --fix option to fix them.\n", repair.sb_fixable); ex = FIXABLE_ERROR; } if (repair.fatal) { /* Some fatal corruptions in disk format or filesystem. */ if (parse_data.fs_mode == RM_BUILD && stage) { /* Only if no metadata are found. */ fprintf(stderr, "NO REISER4 METADATA ARE FOUND. " "FS RECOVERY IS NOT POSSIBLE.\n"); } else { fprintf(stderr, "%llu fatal corruptions were detected in %s. " "Run with %s option to fix them.\n", repair.fatal, stage ? "FileSystem" : "SuperBlock", stage ? "--build-fs" : "--build-sb"); } ex = stage ? FATAL_ERROR : FATAL_SB_ERROR; } else if (repair.fixable) { /* Some fixable corruptions in filesystem. */ fprintf(stderr, "%llu fixable corruptions were detected in " "the FileSystem. Run with --fix option to fix them.\n", repair.fixable); ex = FIXABLE_ERROR; } else if (!repair.sb_fixable) { if (parse_data.fs_mode != RM_CHECK && fsck_opt(&parse_data, FSCK_OPT_RO)) { fprintf(stderr, "\nThe filesystem was mounted RO. It is " "better to umount and mount it again.\n"); } fprintf(stderr, "FS is consistent.\n"); } fprintf(stderr, "\n"); free_fsck: fsck_fini(&parse_data); return ex; } reiser4progs-1.0.7.orig/progs/fsck/fsck.h0000644000175000017500000000216111131470543016104 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. fsck.h -- fsck structure declarations. */ #ifndef FSCK_H #define FSCK_H #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include #include #include "backup.h" #include #include #include #include /* Extended error codes for described in misc.h */ #define FIXABLE_ERROR 1 #define FATAL_SB_ERROR 2 #define FATAL_ERROR 3 /* fsck options. */ typedef enum fsck_options { FSCK_OPT_AUTO = 0x1, FSCK_OPT_FORCE = 0x2, FSCK_OPT_YES = 0x2, FSCK_OPT_RO = 0x3, FSCK_OPT_DEBUG = 0x4, FSCK_OPT_WHOLE = 0x5, FSCK_OPT_OLD = 0x6, FSCK_OPT_NOMKID = 0x7 } fsck_options_t; typedef struct fsck_parse { uint8_t sb_mode, fs_mode; FILE *logfile; FILE *backup; char *backup_file; char *bitmap_file; aal_device_t *host_device; uint16_t options; } fsck_parse_t; #endif reiser4progs-1.0.7.orig/progs/measurefs/0000777000175000017500000000000011134133447016057 5ustar fzfzreiser4progs-1.0.7.orig/progs/measurefs/Makefile.in0000644000175000017500000004115511134132301020112 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ sbin_PROGRAMS = measurefs.reiser4$(EXEEXT) subdir = progs/measurefs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(sbin_PROGRAMS) am_measurefs_reiser4_OBJECTS = measurefs_reiser4-measurefs.$(OBJEXT) measurefs_reiser4_OBJECTS = $(am_measurefs_reiser4_OBJECTS) am__DEPENDENCIES_1 = measurefs_reiser4_DEPENDENCIES = \ $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la $(am__DEPENDENCIES_1) measurefs_reiser4_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(measurefs_reiser4_CFLAGS) $(CFLAGS) \ $(measurefs_reiser4_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(measurefs_reiser4_SOURCES) DIST_SOURCES = $(measurefs_reiser4_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ measurefs_reiser4_SOURCES = measurefs.c measurefs_reiser4_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la \ $(PROGS_LIBS) measurefs_reiser4_LDFLAGS = @PROGS_LDFLAGS@ measurefs_reiser4_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu progs/measurefs/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu progs/measurefs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-sbinPROGRAMS: $(sbin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)" @list='$(sbin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-sbinPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(sbin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \ rm -f "$(DESTDIR)$(sbindir)/$$f"; \ done clean-sbinPROGRAMS: @list='$(sbin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done measurefs.reiser4$(EXEEXT): $(measurefs_reiser4_OBJECTS) $(measurefs_reiser4_DEPENDENCIES) @rm -f measurefs.reiser4$(EXEEXT) $(measurefs_reiser4_LINK) $(measurefs_reiser4_OBJECTS) $(measurefs_reiser4_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/measurefs_reiser4-measurefs.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< measurefs_reiser4-measurefs.o: measurefs.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(measurefs_reiser4_CFLAGS) $(CFLAGS) -MT measurefs_reiser4-measurefs.o -MD -MP -MF $(DEPDIR)/measurefs_reiser4-measurefs.Tpo -c -o measurefs_reiser4-measurefs.o `test -f 'measurefs.c' || echo '$(srcdir)/'`measurefs.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/measurefs_reiser4-measurefs.Tpo $(DEPDIR)/measurefs_reiser4-measurefs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='measurefs.c' object='measurefs_reiser4-measurefs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(measurefs_reiser4_CFLAGS) $(CFLAGS) -c -o measurefs_reiser4-measurefs.o `test -f 'measurefs.c' || echo '$(srcdir)/'`measurefs.c measurefs_reiser4-measurefs.obj: measurefs.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(measurefs_reiser4_CFLAGS) $(CFLAGS) -MT measurefs_reiser4-measurefs.obj -MD -MP -MF $(DEPDIR)/measurefs_reiser4-measurefs.Tpo -c -o measurefs_reiser4-measurefs.obj `if test -f 'measurefs.c'; then $(CYGPATH_W) 'measurefs.c'; else $(CYGPATH_W) '$(srcdir)/measurefs.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/measurefs_reiser4-measurefs.Tpo $(DEPDIR)/measurefs_reiser4-measurefs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='measurefs.c' object='measurefs_reiser4-measurefs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(measurefs_reiser4_CFLAGS) $(CFLAGS) -c -o measurefs_reiser4-measurefs.obj `if test -f 'measurefs.c'; then $(CYGPATH_W) 'measurefs.c'; else $(CYGPATH_W) '$(srcdir)/measurefs.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(sbindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-sbinPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-sbinPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-sbinPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-sbinPROGRAMS install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-sbinPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/progs/measurefs/measurefs.c0000644000175000017500000005555211131470543020223 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. measurefs.c -- program for measuring reiser4. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include #include /* Known measurefs behavior flags. */ typedef enum behav_flags { BF_FORCE = 1 << 0, BF_YES = 1 << 1, BF_TREE_FRAG = 1 << 2, BF_TREE_STAT = 1 << 3, BF_FILE_FRAG = 1 << 4, BF_DATA_FRAG = 1 << 5, BF_SHOW_FILE = 1 << 6, BF_SHOW_PLUG = 1 << 7, BF_SHOW_PARM = 1 << 8 } behav_flags_t; /* Prints measurefs options */ static void measurefs_print_usage(char *name) { fprintf(stderr, "Usage: %s [ options ] FILE\n", name); fprintf(stderr, "Measurement options:\n" " -S, --tree-stat measures some tree characteristics\n" " (node packing, etc).\n" " -T, --tree-frag measures tree fragmentation.\n" " -F, --file-frag FILE measures fragmentation of specified\n" " file or directory.\n" " -D, --data-frag measures average files fragmentation.\n" " -E, --show-file show file fragmentation for each file\n" " during calclulation if --data-frag is\n" " specified.\n" "Plugins options:\n" " -p, --print-profile prints default profile.\n" " -l, --print-plugins prints known plugins.\n" " -o, --override TYPE=PLUGIN overrides the default plugin of the type\n" " \"TYPE\" by the plugin \"PLUGIN\" in the\n" " profile.\n" "Common options:\n" " -?, -h, --help prints program usage.\n" " -V, --version prints current version.\n" " -y, --yes assumes an answer 'yes' to all questions.\n" " -f, --force makes measurefs to use whole disk, not\n" " block device or mounted partition.\n" " -c, --cache N number of nodes in tree buffer cache\n"); } /* Initializes exception streams used by measurefs */ static void measurefs_init(void) { int ex; /* Setting up exception streams */ for (ex = 0; ex < EXCEPTION_TYPE_LAST; ex++) misc_exception_set_stream(ex, stderr); } typedef struct tree_frag_hint { aal_gauge_t *gauge; blk_t curr; uint16_t level; count_t total, bad; } tree_frag_hint_t; /* Open node callback for calculating the tree fragmentation */ static reiser4_node_t *tree_frag_open_node(reiser4_tree_t *tree, reiser4_place_t *place, void *data) { reiser4_node_t *node; tree_frag_hint_t *frag_hint; frag_hint = (tree_frag_hint_t *)data; aal_assert("umka-1556", frag_hint->level > 0); /* As we do not need traverse leaf level at all, we going out here */ if (frag_hint->level <= LEAF_LEVEL) return 0; node = reiser4_tree_child_node(tree, place); return node == NULL ? INVAL_PTR : node; } /* Handler for region callback for an item. Its objective is to check if region start is not next to current value. If so -- counting bad occurrence. */ static errno_t tree_frag_process_item(uint64_t start, uint64_t count, void *data) { int64_t delta; tree_frag_hint_t *hint; hint = (tree_frag_hint_t *)data; /* First time? */ if (start == 0) return 0; /* Calculating delta with current value region end. */ delta = hint->curr - start; /* Check if delta is more than one. If so -- bad occurrence. */ if (labs(delta) > 1) hint->bad++; /* Counting total regions and updating current blk, which will be used for calculating next delta. */ hint->total += count; hint->curr = start + count - 1; return 0; } /* Traverse passed @node and calculate tree fragmentation for it. The results are stored in @frag_hint structure. This function is called from the tree traversal routine for each internal node. See below for details. */ static errno_t tree_frag_process_node(reiser4_node_t *node, void *data) { pos_t pos; static int bogus = 0; tree_frag_hint_t *frag_hint; frag_hint = (tree_frag_hint_t *)data; pos.unit = MAX_UINT32; /* Loop though the node items. */ for (pos.item = 0; pos.item < reiser4_node_items(node); pos.item++) { reiser4_place_t place; /* Initializing item at @place */ if (reiser4_place_open(&place, node, &pos)) { aal_error("Can't open item %u in node %llu.", pos.item, node->block->nr); return -EINVAL; } /* FIXME: touch every time. show once per second. */ if (frag_hint->gauge && pos.item == 0 && bogus++ % 128 == 0) aal_gauge_touch(frag_hint->gauge); /* Checking and calling item's layout method with function tfrag_process_item() as a function for handling one block the item points to. */ if (!place.plug->object->layout) continue; objcall(&place, object->layout, tree_frag_process_item, data); } frag_hint->level--; return 0; } static errno_t tree_frag_update_node(reiser4_place_t *place, void *data) { ((tree_frag_hint_t *)data)->level++; return 0; } /* Entry point for calculating tree fragmentation. It zeroes out all counters in structure which will be passed to actual routines and calls tree_traverse function with couple of callbacks for handling all traverse cases (open node, traverse node, etc). Actual statistics collecting is performed in the passed callbacks and subcallbacks (for item traversing). */ errno_t measurefs_tree_frag(reiser4_fs_t *fs, uint32_t flags) { tree_frag_hint_t frag_hint; errno_t res; aal_memset(&frag_hint, 0, sizeof(frag_hint)); if (!(flags & BF_YES)) { /* Initializing gauge, because it is a long process and user should be informed what the stage of the process is going at the moment. */ frag_hint.gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], NULL, NULL, 0, "Tree fragmentation " "... "); if (!frag_hint.gauge) return -ENOMEM; } /* Preparing serve structure, statistics will be stored in */ frag_hint.curr = reiser4_tree_get_root(fs->tree); frag_hint.level = reiser4_tree_get_height(fs->tree); if (frag_hint.gauge) aal_gauge_touch(frag_hint.gauge); /* Calling tree traversal with callbacks for processing internal nodes and items in order to calculate tree fragmentation. */ if ((res = reiser4_tree_trav(fs->tree, tree_frag_open_node, tree_frag_process_node, tree_frag_update_node, NULL, &frag_hint))) { return res; } /* Printing results. */ if (frag_hint.gauge) { aal_gauge_done(frag_hint.gauge); aal_gauge_free(frag_hint.gauge); } else { printf("Tree fragmentation: "); } printf("%.6f\n", frag_hint.total > 0 ? (double)frag_hint.bad / frag_hint.total : 0); return 0; }; typedef struct tree_stat_hint { aal_gauge_t *gauge; reiser4_tree_t *tree; uint64_t nodes; uint64_t twigs; uint64_t leaves; uint64_t branches; uint64_t formatted; uint64_t items; uint64_t tails; uint64_t extents; uint64_t nodeptrs; uint64_t statdatas; uint64_t direntries; double twigs_used; double leaves_used; double branches_used; double formatted_used; reiser4_place_t *place; } tree_stat_hint_t; /* Process one item on level > LEAF_LEVEL. */ static errno_t stat_item_layout(uint64_t start, uint64_t width, void *data) { tree_stat_hint_t *stat_hint; reiser4_place_t *place; uint32_t blksize; stat_hint = (tree_stat_hint_t *)data; place = stat_hint->place; if (place->plug->p.id.group == EXTENT_ITEM) { reiser4_master_t *master; master = stat_hint->tree->fs->master; blksize = reiser4_master_get_blksize(master); stat_hint->leaves_used = blksize + (stat_hint->leaves_used * stat_hint->leaves); stat_hint->leaves_used /= (stat_hint->leaves + 1); stat_hint->nodes += width; stat_hint->leaves += width; } return 0; } /* Processing one formatted node and calculate number of internal pointers, extent ones, packing, etc. */ static errno_t stat_process_node(reiser4_node_t *node, void *data) { uint8_t level; uint32_t blksize; uint32_t twigs_used; uint32_t leaves_used; uint32_t branches_used; uint32_t formatted_used; reiser4_tree_t *tree = (reiser4_tree_t *)node->tree; tree_stat_hint_t *stat_hint; pos_t pos = {MAX_UINT32, MAX_UINT32}; stat_hint = (tree_stat_hint_t *)data; level = reiser4_node_get_level(node); blksize = reiser4_master_get_blksize(tree->fs->master); /* FIXME: touch eaery time. show once per second. */ if (stat_hint->gauge && stat_hint->formatted % 128 == 0) aal_gauge_touch(stat_hint->gauge); formatted_used = blksize - reiser4_node_space(node); stat_hint->formatted_used = formatted_used + (stat_hint->formatted_used * stat_hint->formatted); stat_hint->formatted_used /= (stat_hint->formatted + 1); if (level == LEAF_LEVEL) { /* Calculating leaves packing. */ leaves_used = blksize - reiser4_node_space(node); stat_hint->leaves_used = leaves_used + (stat_hint->leaves_used * stat_hint->leaves); stat_hint->leaves_used /= (stat_hint->leaves + 1); } else if (level == TWIG_LEVEL) { /* Calculating twig nodes packing. */ twigs_used = blksize - reiser4_node_space(node); stat_hint->twigs_used = twigs_used + (stat_hint->twigs_used * stat_hint->twigs); stat_hint->twigs_used /= (stat_hint->twigs + 1); } else { /* Calculating branch nodes packing. */ branches_used = blksize - reiser4_node_space(node); stat_hint->branches_used = branches_used + (stat_hint->branches_used * stat_hint->branches); stat_hint->branches_used /= (stat_hint->branches + 1); } /* Loop through all node items and calling item->layout() method in order to calculate all blocks item references.*/ for (pos.item = 0; pos.item < reiser4_node_items(node); pos.item++) { errno_t res; reiser4_place_t place; /* Fetching item data. */ if ((res = reiser4_place_open(&place, node, &pos))) { aal_error("Can't open item %u in node %llu.", pos.item, node->block->nr); return res; } /* Calculating item count. This probably should be done in more item type independent manner. */ stat_hint->items++; switch (place.plug->p.id.group) { case STAT_ITEM: stat_hint->statdatas++; break; case EXTENT_ITEM: stat_hint->extents++; break; case PTR_ITEM: stat_hint->nodeptrs++; break; case TAIL_ITEM: stat_hint->tails++; break; case DIR_ITEM: stat_hint->direntries++; break; } /* Calling layout() method with callback for counting referenced blocks. */ if (!place.plug->object->layout) continue; stat_hint->place = &place; objcall(&place, object->layout, stat_item_layout, data); } /* Updating common counters like nodes traversed at all, formatted ones, etc. This will be used later. */ stat_hint->nodes++; stat_hint->formatted++; stat_hint->twigs += (level == TWIG_LEVEL); stat_hint->leaves += (level == LEAF_LEVEL); stat_hint->branches += (level > TWIG_LEVEL); return 0; } /* Entry point function for calculating tree statistics */ errno_t measurefs_tree_stat(reiser4_fs_t *fs, uint32_t flags) { tree_stat_hint_t stat_hint; uint32_t blksize; errno_t res; aal_memset(&stat_hint, 0, sizeof(stat_hint)); /* Creating gauge. */ if (!(flags & BF_YES)) { stat_hint.gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], NULL, NULL, 0, "Tree statistics ... "); if (!stat_hint.gauge) return -ENOMEM; } /* Traversing tree with callbacks for calculating tree statistics. */ if (stat_hint.gauge) aal_gauge_touch(stat_hint.gauge); stat_hint.tree = fs->tree; if ((res = reiser4_tree_trav(fs->tree, NULL, stat_process_node, NULL, NULL, &stat_hint))) { return res; } if (stat_hint.gauge) { aal_gauge_done(stat_hint.gauge); aal_gauge_free(stat_hint.gauge); misc_wipe_line(stdout); } blksize = reiser4_master_get_blksize(fs->master); /* Printing results. */ printf("Packing statistics:\n"); printf(" Formatted nodes:%*.2fb (%.2f%%)\n", 11, stat_hint.formatted_used, (stat_hint.formatted_used * 100) / blksize); printf(" Branch nodes:%*.2fb (%.2f%%)\n", 14, stat_hint.branches_used, (stat_hint.branches_used * 100) / blksize); printf(" Twig nodes:%*.2fb (%.2f%%)\n", 16, stat_hint.twigs_used, (stat_hint.twigs_used * 100) / blksize); printf(" Leaf nodes:%*.2fb (%.2f%%)\n\n", 16, stat_hint.leaves_used, (stat_hint.leaves_used * 100) / blksize); printf("Node statistics:\n"); printf(" Total nodes:%*llu\n", 15, stat_hint.nodes); printf(" Formatted nodes:%*llu\n", 11, stat_hint.formatted); printf(" Unformatted nodes:%*llu\n", 9, stat_hint.nodes - stat_hint.formatted); printf(" Branch nodes:%*llu\n", 14, stat_hint.branches); printf(" Twig nodes:%*llu\n", 16, stat_hint.twigs); printf(" Leaf nodes:%*llu\n\n", 16, stat_hint.leaves); printf("Item statistics:\n"); printf(" Total items:%*llu\n", 15, stat_hint.items); printf(" Nodeptr items:%*llu\n", 13, stat_hint.nodeptrs); printf(" Statdata items:%*llu\n", 11, stat_hint.statdatas); printf(" Direntry items:%*llu\n", 12, stat_hint.direntries); printf(" Tail items:%*llu\n", 16, stat_hint.tails); printf(" Extent items:%*llu\n", 14, stat_hint.extents); return 0; } typedef struct file_frag_hint { aal_gauge_t *gauge; count_t bad; count_t total; blk_t last; count_t files; double current; uint32_t flags; uint16_t level; } file_frag_hint_t; /* Callback function for processing one block belong to the file we are traversing. */ static errno_t file_frag_process_blk(blk_t start, count_t width, void *data) { int64_t delta; file_frag_hint_t *frag_hint; frag_hint = (file_frag_hint_t *)data; /* Check if we are went here first time */ if (frag_hint->last > 0) { delta = frag_hint->last - start; if (labs(delta) > 1) frag_hint->bad++; } frag_hint->total += width; frag_hint->last = start + width - 1; return 0; } /* Calculates the passed file fragmentation. */ errno_t measurefs_file_frag(reiser4_fs_t *fs, char *filename, uint32_t gauge) { errno_t res = 0; reiser4_object_t *object; file_frag_hint_t frag_hint; /* Opens object by its name */ if (!(object = reiser4_semantic_open(fs->tree, filename, NULL, 0))) return -EINVAL; /* Initializing serve structures */ aal_memset(&frag_hint, 0, sizeof(frag_hint)); /* Calling file layout function, which calls file_frag_process_blk() fucntion for each block belong to the file @filename. */ if ((res = reiser4_object_layout(object, file_frag_process_blk, &frag_hint))) { aal_error("Can't enumerate data blocks " "occupied by %s", filename); goto error_free_object; } reiser4_object_close(object); /* Printing results */ printf("Fragmentation for %s is %.6f\n", filename, frag_hint.total > 0 ? (double)frag_hint.bad / frag_hint.total : 0); return 0; error_free_object: reiser4_object_close(object); return res; } /* Processes leaf node in order to find all stat data items which are start of corresponding files and calculate file fragmentation for each of them. */ static errno_t data_frag_process_node(reiser4_node_t *node, void *data) { reiser4_tree_t *tree = (reiser4_tree_t *)node->tree; file_frag_hint_t *frag_hint; pos_t pos; pos.unit = MAX_UINT32; frag_hint = (file_frag_hint_t *)data; frag_hint->level--; if (frag_hint->level > LEAF_LEVEL) return 0; /* The loop through all the items in current node */ for (pos.item = 0; pos.item < reiser4_node_items(node); pos.item++) { errno_t res; reiser4_place_t place; reiser4_object_t *object; /* Initialiing the item at @place */ if ((res = reiser4_place_open(&place, node, &pos))) { aal_error("Can't open item %u in node %llu.", pos.item, node->block->nr); return res; } if (!reiser4_item_statdata(&place)) continue; /* Opening object by its stat data item denoted by @place */ if (!(object = reiser4_object_open(tree, NULL, &place))) continue; /* Initializing per-file counters */ frag_hint->bad = 0; frag_hint->last = 0; frag_hint->total = 0; if (frag_hint->gauge && pos.item == 0) aal_gauge_touch(frag_hint->gauge); /* Calling calculating the file fragmentation by means of using the function we have seen above. */ if (reiser4_object_layout(object, file_frag_process_blk, data)) { aal_error("Can't enumerate data blocks occupied by %s", reiser4_print_inode(&object->info.object)); goto error_close_object; } if (frag_hint->total > 0) { frag_hint->current += (double)frag_hint->bad / frag_hint->total; } frag_hint->files++; /* We was instructed show file fragmentation for each file, not only the average one, we will do it now. */ if (frag_hint->flags & BF_SHOW_FILE) { double file_factor = frag_hint->total > 0 ? (double)frag_hint->bad / frag_hint->total : 0; double curr_factor = frag_hint->files > 0 ? (double)frag_hint->current / frag_hint->files : 0; aal_mess("Fragmentation for %s: %.6f [av. %.6f ]", reiser4_print_inode(&object->info.object), file_factor, curr_factor); } error_close_object: reiser4_object_close(object); } return 0; } static errno_t data_frag_update_node(reiser4_place_t *place, void *data) { ((file_frag_hint_t *)data)->level++; return 0; } /* Entry point function for data fragmentation. */ errno_t measurefs_data_frag(reiser4_fs_t *fs, uint32_t flags) { file_frag_hint_t frag_hint; errno_t res; aal_memset(&frag_hint, 0, sizeof(frag_hint)); /* Create gauge. */ if (!(flags & BF_YES)) { frag_hint.gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], NULL, NULL, 0, "Data fragmentation " "... "); if (!frag_hint.gauge) { aal_fatal("Out of memory!"); return -ENOMEM; } } frag_hint.flags = flags; frag_hint.level = reiser4_tree_get_height(fs->tree); if (frag_hint.gauge) aal_gauge_touch(frag_hint.gauge); if ((res = reiser4_tree_trav(fs->tree, NULL, data_frag_process_node, data_frag_update_node, NULL, &frag_hint))) return res; if (frag_hint.gauge) { aal_gauge_done(frag_hint.gauge); aal_gauge_free(frag_hint.gauge); } if (frag_hint.flags & BF_SHOW_FILE || !frag_hint.gauge) printf("Data fragmentation is: "); printf("%.6f\n", frag_hint.files > 0 ? (double)frag_hint.current / frag_hint.files : 0); return 0; } int main(int argc, char *argv[]) { int c; char *host_dev; uint32_t cache; uint32_t flags = 0; char override[4096]; reiser4_fs_t *fs; aal_device_t *device; char *frag_filename = NULL; static struct option long_options[] = { {"version", no_argument, NULL, 'V'}, {"help", no_argument, NULL, 'h'}, {"force", no_argument, NULL, 'f'}, {"yes", no_argument, NULL, 'y'}, {"tree-stat", no_argument, NULL, 'S'}, {"tree-frag", no_argument, NULL, 'T'}, {"file-frag", required_argument, NULL, 'F'}, {"data-frag", no_argument, NULL, 'D'}, {"show-file", no_argument, NULL, 'E'}, {"print-profile", no_argument, NULL, 'p'}, {"print-plugins", no_argument, NULL, 'l'}, {"override", required_argument, NULL, 'o'}, {"cache", required_argument, NULL, 'c'}, {0, 0, 0, 0} }; measurefs_init(); memset(override, 0, sizeof(override)); if (argc < 2) { measurefs_print_usage(argv[0]); return USER_ERROR; } /* Parsing parameters */ while ((c = getopt_long(argc, argv, "hVyfKTDESF:o:plc:?", long_options, (int *)0)) != EOF) { switch (c) { case 'h': case '?': measurefs_print_usage(argv[0]); return NO_ERROR; case 'V': misc_print_banner(argv[0]); return NO_ERROR; case 'S': flags |= BF_TREE_STAT; break; case 'T': flags |= BF_TREE_FRAG; break; case 'D': flags |= BF_DATA_FRAG; break; case 'F': flags |= BF_FILE_FRAG; frag_filename = optarg; break; case 'E': flags |= BF_SHOW_FILE; break; case 'f': flags |= BF_FORCE; break; case 'y': flags |= BF_YES; break; case 'p': flags |= BF_SHOW_PARM; break; case 'l': flags |= BF_SHOW_PLUG; break; case 'o': aal_strncat(override, optarg, aal_strlen(optarg)); aal_strncat(override, ",", 1); break; case 'c': if ((cache = misc_str2long(optarg, 10)) == INVAL_DIG) { aal_error("Invalid cache value specified (%s).", optarg); return USER_ERROR; } misc_mpressure_setup(cache); break; } } if (!(flags & BF_YES)) misc_print_banner(argv[0]); if (libreiser4_init()) { aal_error("Can't initialize libreiser4."); goto error; } /* Overriding default params by passed values. This should be done after libreiser4 is initialized. */ if (aal_strlen(override) > 0) { override[aal_strlen(override) - 1] = '\0'; if (!(flags & BF_YES)) { aal_mess("Overriding the plugin profile by \"%s\".", override); } if (misc_profile_override(override)) goto error_free_libreiser4; } if (flags & BF_SHOW_PARM) misc_profile_print(); if (flags & BF_SHOW_PLUG) misc_plugins_print(); if (optind >= argc) { if (!(flags & BF_SHOW_PARM) && !(flags & BF_SHOW_PLUG)) measurefs_print_usage(argv[0]); goto error_free_libreiser4; } host_dev = argv[optind]; /* Checking if passed partition is mounted */ if (misc_dev_mounted(host_dev) > 0 && !(flags & BF_FORCE)) { aal_error("Device %s is mounted at the moment. " "Use -f to force over.", host_dev); goto error_free_libreiser4; } /* Opening device with file_ops and default blocksize */ if (!(device = aal_device_open(&file_ops, host_dev, 512, O_RDONLY))) { aal_error("Can't open %s. %s.", host_dev, strerror(errno)); goto error_free_libreiser4; } /* Open file system on the device */ if (!(fs = reiser4_fs_open(device, 1))) { aal_error("Can't open reiser4 on %s", host_dev); goto error_free_device; } fs->tree->mpc_func = misc_mpressure_detect; /* Check if specified options are compatible. For instance, --show-each can be used only if --data-frag was specified. */ if (!(flags & BF_DATA_FRAG) && (flags & BF_SHOW_FILE)) { aal_warn("Option --show-file is only active if " "--data-frag is specified."); } if (!(flags & BF_TREE_FRAG || flags & BF_DATA_FRAG || flags & BF_FILE_FRAG || flags & BF_TREE_STAT)) { flags |= BF_TREE_STAT; } /* Handling measurements options */ if (flags & BF_TREE_FRAG) { if (measurefs_tree_frag(fs, flags)) goto error_free_fs; } if (flags & BF_DATA_FRAG) { if (measurefs_data_frag(fs, flags)) goto error_free_fs; } if (flags & BF_FILE_FRAG) { if (measurefs_file_frag(fs, frag_filename, flags)) goto error_free_fs; } if (flags & BF_TREE_STAT) { if (measurefs_tree_stat(fs, flags)) goto error_free_fs; } /* Deinitializing filesystem instance and device instance */ reiser4_fs_close(fs); aal_device_close(device); /* Deinitializing libreiser4. At the moment only plugins are unloading during this. */ libreiser4_fini(); return NO_ERROR; error_free_fs: reiser4_fs_close(fs); error_free_device: aal_device_close(device); error_free_libreiser4: libreiser4_fini(); error: return OPER_ERROR; } reiser4progs-1.0.7.orig/progs/measurefs/Makefile.am0000644000175000017500000000054011131470543020104 0ustar fzfzsbin_PROGRAMS = measurefs.reiser4 measurefs_reiser4_SOURCES = measurefs.c measurefs_reiser4_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la \ $(PROGS_LIBS) measurefs_reiser4_LDFLAGS = @PROGS_LDFLAGS@ measurefs_reiser4_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include reiser4progs-1.0.7.orig/progs/mkfs/0000777000175000017500000000000011134133447015025 5ustar fzfzreiser4progs-1.0.7.orig/progs/mkfs/Makefile.in0000644000175000017500000004130511134132301017055 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ sbin_PROGRAMS = mkfs.reiser4$(EXEEXT) subdir = progs/mkfs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(sbin_PROGRAMS) am_mkfs_reiser4_OBJECTS = mkfs_reiser4-mkfs.$(OBJEXT) mkfs_reiser4_OBJECTS = $(am_mkfs_reiser4_OBJECTS) am__DEPENDENCIES_1 = mkfs_reiser4_DEPENDENCIES = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la $(am__DEPENDENCIES_1) mkfs_reiser4_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(mkfs_reiser4_CFLAGS) \ $(CFLAGS) $(mkfs_reiser4_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(mkfs_reiser4_SOURCES) DIST_SOURCES = $(mkfs_reiser4_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ mkfs_reiser4_SOURCES = mkfs.c mkfs_reiser4_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la \ $(PROGS_LIBS) mkfs_reiser4_LDFLAGS = @PROGS_LDFLAGS@ mkfs_reiser4_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu progs/mkfs/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu progs/mkfs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-sbinPROGRAMS: $(sbin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)" @list='$(sbin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-sbinPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(sbin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \ rm -f "$(DESTDIR)$(sbindir)/$$f"; \ done clean-sbinPROGRAMS: @list='$(sbin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done mkfs.reiser4$(EXEEXT): $(mkfs_reiser4_OBJECTS) $(mkfs_reiser4_DEPENDENCIES) @rm -f mkfs.reiser4$(EXEEXT) $(mkfs_reiser4_LINK) $(mkfs_reiser4_OBJECTS) $(mkfs_reiser4_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkfs_reiser4-mkfs.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mkfs_reiser4-mkfs.o: mkfs.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mkfs_reiser4_CFLAGS) $(CFLAGS) -MT mkfs_reiser4-mkfs.o -MD -MP -MF $(DEPDIR)/mkfs_reiser4-mkfs.Tpo -c -o mkfs_reiser4-mkfs.o `test -f 'mkfs.c' || echo '$(srcdir)/'`mkfs.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mkfs_reiser4-mkfs.Tpo $(DEPDIR)/mkfs_reiser4-mkfs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mkfs.c' object='mkfs_reiser4-mkfs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mkfs_reiser4_CFLAGS) $(CFLAGS) -c -o mkfs_reiser4-mkfs.o `test -f 'mkfs.c' || echo '$(srcdir)/'`mkfs.c mkfs_reiser4-mkfs.obj: mkfs.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mkfs_reiser4_CFLAGS) $(CFLAGS) -MT mkfs_reiser4-mkfs.obj -MD -MP -MF $(DEPDIR)/mkfs_reiser4-mkfs.Tpo -c -o mkfs_reiser4-mkfs.obj `if test -f 'mkfs.c'; then $(CYGPATH_W) 'mkfs.c'; else $(CYGPATH_W) '$(srcdir)/mkfs.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mkfs_reiser4-mkfs.Tpo $(DEPDIR)/mkfs_reiser4-mkfs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mkfs.c' object='mkfs_reiser4-mkfs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mkfs_reiser4_CFLAGS) $(CFLAGS) -c -o mkfs_reiser4-mkfs.obj `if test -f 'mkfs.c'; then $(CYGPATH_W) 'mkfs.c'; else $(CYGPATH_W) '$(srcdir)/mkfs.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(sbindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-exec-am: install-sbinPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local uninstall-sbinPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-sbinPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-sbinPROGRAMS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-local \ uninstall-sbinPROGRAMS uninstall-make_reiser4: if test -f $(DESTDIR)$(sbindir)/make_reiser4; then \ rm -f $(DESTDIR)$(sbindir)/make_reiser4; \ fi; install-make_reiser4: if test -f $(DESTDIR)$(sbindir)/mkfs.reiser4; then \ rm -f $(DESTDIR)$(sbindir)/make_reiser4; \ ln $(DESTDIR)$(sbindir)/mkfs.reiser4 $(DESTDIR)$(sbindir)/make_reiser4; \ fi; install-data-local: install-make_reiser4 uninstall-local: uninstall-make_reiser4 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/progs/mkfs/Makefile.am0000644000175000017500000000133511131470543017055 0ustar fzfzsbin_PROGRAMS = mkfs.reiser4 mkfs_reiser4_SOURCES = mkfs.c mkfs_reiser4_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/libmisc/libmisc.la \ $(PROGS_LIBS) mkfs_reiser4_LDFLAGS = @PROGS_LDFLAGS@ mkfs_reiser4_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include uninstall-make_reiser4: if test -f $(DESTDIR)$(sbindir)/make_reiser4; then \ rm -f $(DESTDIR)$(sbindir)/make_reiser4; \ fi; install-make_reiser4: if test -f $(DESTDIR)$(sbindir)/mkfs.reiser4; then \ rm -f $(DESTDIR)$(sbindir)/make_reiser4; \ ln $(DESTDIR)$(sbindir)/mkfs.reiser4 $(DESTDIR)$(sbindir)/make_reiser4; \ fi; install-data-local: install-make_reiser4 uninstall-local: uninstall-make_reiser4 reiser4progs-1.0.7.orig/progs/mkfs/mkfs.c0000644000175000017500000003340611131470543016131 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. mkfs.c -- program for creating reiser4 filesystem. */ #ifdef HAVE_CONFIG_H # include #endif #if defined(HAVE_LIBUUID) && defined(HAVE_UUID_UUID_H) # include #endif #include #include #include #include #include #include #include #include #ifdef HAVE_UNAME # include #endif #include #include #include typedef enum mkfs_behav_flags { BF_FORCE = 1 << 0, BF_YES = 1 << 1, BF_LOST = 1 << 2, BF_SHOW_PARM = 1 << 3, BF_SHOW_PLUG = 1 << 4 } mkfs_behav_flags_t; /* Prints mkfs options */ static void mkfs_print_usage(char *name) { fprintf(stderr, "Usage: %s [ options ] " "FILE1 FILE2 ... [ size[K|M|G] ]\n", name); fprintf(stderr, "Mkfs options:\n" " -s, --lost-found forces mkfs to create lost+found\n" " directory.\n" " -b, --block-size N block size, 4096 by default, other\n" " are not supported at the moment.\n" " -U, --uuid UUID universally unique identifier.\n" " -L, --label LABEL volume label lets to mount\n" " filesystem by its label.\n" "Plugins options:\n" " -p, --print-profile prints the plugin profile.\n" " -l, --print-plugins prints all known plugins.\n" " -o, --override TYPE=PLUGIN overrides the default plugin of the type\n" " \"TYPE\" by the plugin \"PLUGIN\" in the\n" " profile.\n" "Common options:\n" " -?, -h, --help prints program usage.\n" " -V, --version prints current version.\n" " -y, --yes assumes an answer 'yes' to all questions.\n" " -f, --force makes mkfs to use whole disk, not\n" " block device or mounted partition.\n"); } /* Initializes used by mkfs exception streams */ static void mkfs_init(void) { int ex; /* Setting up exception streams*/ for (ex = 0; ex < EXCEPTION_TYPE_LAST; ex++) misc_exception_set_stream(ex, stderr); } static reiser4_object_t *reiser4_root_create(reiser4_fs_t *fs) { entry_hint_t entry; object_info_t info; aal_assert("vpf-1625", fs != NULL); aal_assert("vpf-1626", fs->tree != NULL); aal_memset(&info, 0, sizeof(info)); info.tree = (tree_entity_t *)fs->tree; /* Preparing entry hint. */ entry.name[0] = '\0'; aal_memcpy(&entry.offset, &fs->tree->key, sizeof(entry.offset)); reiser4_pset_root(&info); return reiser4_object_create(&entry, &info, NULL); } int main(int argc, char *argv[]) { int c; struct stat st; fs_hint_t hint; reiser4_fs_t *fs; char override[4096]; aal_device_t *device; aal_list_t *walk = NULL; aal_gauge_t *gauge = NULL; aal_list_t *devices = NULL; char *host_dev; count_t dev_len = 0; #ifdef HAVE_UNAME struct utsname sysinfo; #endif mkfs_behav_flags_t flags = 0; static struct option long_options[] = { {"version", no_argument, NULL, 'V'}, {"help", no_argument, NULL, 'h'}, {"force", no_argument, NULL, 'f'}, {"yes", no_argument, NULL, 'y'}, {"block-size", required_argument, NULL, 'b'}, {"label", required_argument, NULL, 'L'}, {"uuid", required_argument, NULL, 'U'}, {"lost-found", required_argument, NULL, 's'}, {"print-profile", no_argument, NULL, 'p'}, {"print-plugins", no_argument, NULL, 'l'}, {"override", required_argument, NULL, 'o'}, {0, 0, 0, 0} }; mkfs_init(); if (argc < 2) { mkfs_print_usage(argv[0]); return USER_ERROR; } hint.blocks = 0; hint.blksize = 0; memset(override, 0, sizeof(override)); memset(hint.uuid, 0, sizeof(hint.uuid)); memset(hint.label, 0, sizeof(hint.label)); /* Parsing parameters */ while ((c = getopt_long(argc, argv, "hVyfb:U:L:splo:?", long_options, (int *)0)) != EOF) { switch (c) { case 'h': case '?': mkfs_print_usage(argv[0]); return NO_ERROR; case 'V': misc_print_banner(argv[0]); return NO_ERROR; case 'f': flags |= BF_FORCE; break; case 'y': flags |= BF_YES; break; case 'l': flags |= BF_SHOW_PLUG; break; case 'p': flags |= BF_SHOW_PARM; break; case 's': flags |= BF_LOST; break; case 'o': aal_strncat(override, optarg, aal_strlen(optarg)); aal_strncat(override, ",", 1); break; case 'b': /* Parsing blocksize */ if ((hint.blksize = misc_str2long(optarg, 10)) == INVAL_DIG) { aal_error("Invalid blocksize (%s).", optarg); return USER_ERROR; } if (!aal_pow2(hint.blksize)) { aal_error("Invalid blocksize (%u). It must power " "of two.", hint.blksize); return USER_ERROR; } break; case 'U': /* Parsing passed by user uuid */ if (aal_strlen(optarg) != 36) { aal_error("Invalid uuid was specified (%s).", optarg); return USER_ERROR; } #if defined(HAVE_LIBUUID) && defined(HAVE_UUID_UUID_H) { if (uuid_parse(optarg, hint.uuid) < 0) { aal_error("Invalid uuid was " "specified (%s).", optarg); return USER_ERROR; } } #endif break; case 'L': aal_strncpy(hint.label, optarg, sizeof(hint.label)); break; } } if (!(flags & BF_YES)) misc_print_banner(argv[0]); /* Initializing libreiser4 (getting plugins, checking them on validness, etc). */ if (libreiser4_init()) { aal_error("Can't initialize libreiser4."); goto error; } /* Overriding default params by passed values. This should be done after libreiser4 is initialized. */ if (aal_strlen(override) > 0) { override[aal_strlen(override) - 1] = '\0'; if (!(flags & BF_YES)) { aal_mess("Overriding the plugin profile by \"%s\".", override); } if (misc_profile_override(override)) goto error_free_libreiser4; } if (flags & BF_SHOW_PARM) misc_profile_print(); if (flags & BF_SHOW_PLUG) misc_plugins_print(); if (optind >= argc) goto error_free_libreiser4; if (optind >= argc) { mkfs_print_usage(argv[0]); return USER_ERROR; } #ifdef HAVE_SYSCONF /* Guessing block size by getting page size */ if (!hint.blksize) { hint.blksize = sysconf(_SC_PAGESIZE); } else { if (!(flags & BF_FORCE)) { if (hint.blksize != (uint32_t)sysconf(_SC_PAGESIZE)) { aal_warn("Block size (%u) and page size " "(%ld) mismatch is detected. " "Reiser4 does not support block " "sizes different than page size " "yet. Use -f to force over.", hint.blksize, sysconf(_SC_PAGESIZE)); goto error_free_libreiser4; } } } if (!(flags & BF_YES)) { aal_mess("Block size %u will be used.", hint.blksize); } #else if (!hint.blksize) { aal_warn("Can't guess page size. Default " "block size (4096) will be used, " "or use -b option instead."); hint.blksize = 4096; } #endif if (hint.blksize > REISER4_MAX_BLKSIZE) { aal_error("Invalid blocksize (%u). It must not be greater then " "%u.", hint.blksize, REISER4_MAX_BLKSIZE); return USER_ERROR; } #ifdef HAVE_UNAME /* Guessing system type */ if (uname(&sysinfo) == -1) { aal_warn("Can't guess system type."); goto error_free_libreiser4; } if (!(flags & BF_FORCE)) { if (aal_strncmp(sysinfo.release, "2.5", 3) && aal_strncmp(sysinfo.release, "2.6", 3)) { aal_warn("%s %s is detected. Reiser4 does not " "support such a platform. Use -f to " "force over.", sysinfo.sysname, sysinfo.release); goto error_free_libreiser4; } } if (!(flags & BF_YES)) { aal_mess("%s %s is detected.", sysinfo.sysname, sysinfo.release); } #endif /* Building list of devices the filesystem will be created on */ for (; optind < argc; optind++) { if (stat(argv[optind], &st) == -1) { if (misc_size2long(argv[optind]) != INVAL_DIG && hint.blocks != 0) { aal_error("Filesystem length is already " "set to %llu.", hint.blocks); continue; } /* Checking device name for validness */ hint.blocks = misc_size2long(argv[optind]); if (hint.blocks != INVAL_DIG) { /* Converting into fs blocksize blocks */ hint.blocks /= (hint.blksize / 1024); /* Just to know that blocks was given. 0 means nothing was specified by user. */ if (!hint.blocks) hint.blocks = 1; } else { aal_error("%s is not a valid size nor an " "existent file.", argv[optind]); goto error_free_libreiser4; } } else { devices = aal_list_append(devices, argv[optind]); } } if (!(flags & BF_YES) && aal_list_len(devices)) { if (!(gauge = aal_gauge_create(aux_gauge_handlers[GT_PROGRESS], NULL, NULL, 0, NULL))) goto error_free_libreiser4; } /* The loop through all devices */ aal_list_foreach_forward(devices, walk) { host_dev = (char *)walk->data; if (stat(host_dev, &st) == -1) { aal_error("Can't stat %s. %s.", host_dev, strerror(errno)); goto error_free_libreiser4; } /* Checking is passed device is a block device. If so, we check also is it whole drive or just a partition. If the device is not a block device, then we emmit exception and propose user to use -f flag to force. */ if (!S_ISBLK(st.st_mode)) { if (!(flags & BF_FORCE)) { aal_error("Device %s is not block " "device. Use -f to force " "over.", host_dev); goto error_free_libreiser4; } } else { if (((IDE_DISK_MAJOR(MAJOR(st.st_rdev)) && MINOR(st.st_rdev) % 64 == 0) || (SCSI_BLK_MAJOR(MAJOR(st.st_rdev)) && MINOR(st.st_rdev) % 16 == 0)) && !(flags & BF_FORCE)) { aal_error("Device %s is an entire " "harddrive, not just one " "partition.", host_dev); goto error_free_libreiser4; } } /* Checking if passed partition is mounted */ if (misc_dev_mounted(host_dev) > 0 && !(flags & BF_FORCE)) { aal_error("Device %s is mounted at the moment. " "Use -f to force over.", host_dev); goto error_free_libreiser4; } /* Generating uuid if it was not specified and if libuuid is in use */ #if defined(HAVE_LIBUUID) && defined(HAVE_UUID_UUID_H) if (uuid_is_null(hint.uuid)) { uuid_generate(hint.uuid); } if (!(flags & BF_YES)) { char uuid[256]; uuid_unparse(hint.uuid, uuid); aal_mess("Uuid %s will be used.", uuid); } #endif /* Opening device */ if (!(device = aal_device_open(&file_ops, host_dev, 512, O_RDWR))) { aal_error("Can't open %s. %s.", host_dev, strerror(errno)); goto error_free_libreiser4; } /* Converting device length into fs blocksize blocks */ dev_len = reiser4_format_len(device, hint.blksize); if (!hint.blocks) hint.blocks = dev_len; if (hint.blocks > dev_len) { aal_error("Filesystem wouldn't fit into device " "%llu blocks long, %llu blocks required.", dev_len, hint.blocks); goto error_free_device; } /* Checking for non-intercative mode */ if (!(flags & BF_YES)) { if (aal_yesno("Reiser4 is going to be created on %s.", host_dev) == EXCEPTION_OPT_NO) { goto error_free_device; } } if (gauge) { aal_gauge_rename(gauge, "Creating reiser4 on %s ... ", host_dev); aal_gauge_touch(gauge); } /* Creating filesystem */ if (!(fs = reiser4_fs_create(device, &hint))) { aal_error("Can't create filesystem on %s.", device->name); goto error_free_device; } /* Creating journal */ if (!(fs->journal = reiser4_journal_create(fs, device))) goto error_free_fs; /* Creating root directory */ if (!(fs->root = reiser4_root_create(fs))) { aal_error("Can't create filesystem " "root directory."); goto error_free_fs; } /* Linking root to itself */ if (reiser4_object_link(fs->root, fs->root, NULL)) { aal_error("Can't link root directory " "to itself."); goto error_free_fs; } if (reiser4_pset_tree(fs->tree, 1)) { aal_error("Can't initialize the fs-global " "object plugin set."); goto error_free_fs; } /* Backup the fs metadata. */ if (!(fs->backup = reiser4_backup_create(fs))) { aal_error("Can't create the fs metadata backup."); goto error_free_fs; } /* Creating lost+found directory */ if (flags & BF_LOST) { reiser4_object_t *object; if (!(object = reiser4_dir_create(fs->root, "lost+found"))) { aal_error("Can't create \"/lost+found\" " "directory."); goto error_free_root; } reiser4_object_close(object); } if (gauge) aal_gauge_done(gauge); /* Zeroing uuid in order to force mkfs to generate it on its own for next device form built device list. */ aal_memset(hint.uuid, 0, sizeof(hint.uuid)); /* Zeroing out label, because all filesystems cannot have the same label. */ aal_memset(hint.label, 0, sizeof(hint.label)); /* Zeroing fs_len in order to force mkfs on next turn to calc its size from actual device length. */ hint.blocks = 0; /* Freeing the root directory & fs.*/ reiser4_object_close(fs->root); reiser4_fs_close(fs); /* Synchronizing device. If device we are using is a file device (libaal/file.c), then function fsync will be called. */ if (aal_device_sync(device)) { aal_error("Can't synchronize device %s.", device->name); goto error_free_device; } aal_device_close(device); } /* Freeing the all used objects */ if (gauge) aal_gauge_free(gauge); aal_list_free(devices, NULL, NULL); /* Deinitializing libreiser4. At the moment only plugins are unloading during this. */ libreiser4_fini(); return NO_ERROR; error_free_root: reiser4_object_close(fs->root); error_free_fs: reiser4_fs_close(fs); error_free_device: aal_device_close(device); error_free_libreiser4: libreiser4_fini(); error: return OPER_ERROR; } reiser4progs-1.0.7.orig/progs/Makefile.am0000644000175000017500000000004611131470543016113 0ustar fzfzSUBDIRS = mkfs debugfs measurefs fsck reiser4progs-1.0.7.orig/progs/debugfs/0000777000175000017500000000000011134133447015504 5ustar fzfzreiser4progs-1.0.7.orig/progs/debugfs/Makefile.in0000644000175000017500000005046211134132301017540 0ustar fzfz# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ sbin_PROGRAMS = debugfs.reiser4$(EXEEXT) subdir = progs/debugfs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(sbin_PROGRAMS) am_debugfs_reiser4_OBJECTS = debugfs_reiser4-debugfs.$(OBJEXT) \ debugfs_reiser4-print.$(OBJEXT) \ debugfs_reiser4-browse.$(OBJEXT) debugfs_reiser4_OBJECTS = $(am_debugfs_reiser4_OBJECTS) am__DEPENDENCIES_1 = debugfs_reiser4_DEPENDENCIES = \ $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/librepair/librepair.la \ $(top_builddir)/libmisc/libmisc.la $(am__DEPENDENCIES_1) debugfs_reiser4_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(debugfs_reiser4_CFLAGS) \ $(CFLAGS) $(debugfs_reiser4_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(debugfs_reiser4_SOURCES) DIST_SOURCES = $(debugfs_reiser4_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) AAL_LIBS = @AAL_LIBS@ AAL_MINIMAL_LIBS = @AAL_MINIMAL_LIBS@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GENERIC_CFLAGS = @GENERIC_CFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MINIMAL_CFLAGS = @MINIMAL_CFLAGS@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROGS_LDFLAGS = @PROGS_LDFLAGS@ PROGS_LIBS = @PROGS_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ debugfs_reiser4_SOURCES = debugfs.c debugfs.h print.c print.h browse.c \ browse.h types.h debugfs_reiser4_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/librepair/librepair.la \ $(top_builddir)/libmisc/libmisc.la \ $(PROGS_LIBS) debugfs_reiser4_LDFLAGS = @PROGS_LDFLAGS@ debugfs_reiser4_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu progs/debugfs/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu progs/debugfs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-sbinPROGRAMS: $(sbin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)" @list='$(sbin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-sbinPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(sbin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \ rm -f "$(DESTDIR)$(sbindir)/$$f"; \ done clean-sbinPROGRAMS: @list='$(sbin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done debugfs.reiser4$(EXEEXT): $(debugfs_reiser4_OBJECTS) $(debugfs_reiser4_DEPENDENCIES) @rm -f debugfs.reiser4$(EXEEXT) $(debugfs_reiser4_LINK) $(debugfs_reiser4_OBJECTS) $(debugfs_reiser4_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debugfs_reiser4-browse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debugfs_reiser4-debugfs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debugfs_reiser4-print.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< debugfs_reiser4-debugfs.o: debugfs.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -MT debugfs_reiser4-debugfs.o -MD -MP -MF $(DEPDIR)/debugfs_reiser4-debugfs.Tpo -c -o debugfs_reiser4-debugfs.o `test -f 'debugfs.c' || echo '$(srcdir)/'`debugfs.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/debugfs_reiser4-debugfs.Tpo $(DEPDIR)/debugfs_reiser4-debugfs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debugfs.c' object='debugfs_reiser4-debugfs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -c -o debugfs_reiser4-debugfs.o `test -f 'debugfs.c' || echo '$(srcdir)/'`debugfs.c debugfs_reiser4-debugfs.obj: debugfs.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -MT debugfs_reiser4-debugfs.obj -MD -MP -MF $(DEPDIR)/debugfs_reiser4-debugfs.Tpo -c -o debugfs_reiser4-debugfs.obj `if test -f 'debugfs.c'; then $(CYGPATH_W) 'debugfs.c'; else $(CYGPATH_W) '$(srcdir)/debugfs.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/debugfs_reiser4-debugfs.Tpo $(DEPDIR)/debugfs_reiser4-debugfs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debugfs.c' object='debugfs_reiser4-debugfs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -c -o debugfs_reiser4-debugfs.obj `if test -f 'debugfs.c'; then $(CYGPATH_W) 'debugfs.c'; else $(CYGPATH_W) '$(srcdir)/debugfs.c'; fi` debugfs_reiser4-print.o: print.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -MT debugfs_reiser4-print.o -MD -MP -MF $(DEPDIR)/debugfs_reiser4-print.Tpo -c -o debugfs_reiser4-print.o `test -f 'print.c' || echo '$(srcdir)/'`print.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/debugfs_reiser4-print.Tpo $(DEPDIR)/debugfs_reiser4-print.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='print.c' object='debugfs_reiser4-print.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -c -o debugfs_reiser4-print.o `test -f 'print.c' || echo '$(srcdir)/'`print.c debugfs_reiser4-print.obj: print.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -MT debugfs_reiser4-print.obj -MD -MP -MF $(DEPDIR)/debugfs_reiser4-print.Tpo -c -o debugfs_reiser4-print.obj `if test -f 'print.c'; then $(CYGPATH_W) 'print.c'; else $(CYGPATH_W) '$(srcdir)/print.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/debugfs_reiser4-print.Tpo $(DEPDIR)/debugfs_reiser4-print.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='print.c' object='debugfs_reiser4-print.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -c -o debugfs_reiser4-print.obj `if test -f 'print.c'; then $(CYGPATH_W) 'print.c'; else $(CYGPATH_W) '$(srcdir)/print.c'; fi` debugfs_reiser4-browse.o: browse.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -MT debugfs_reiser4-browse.o -MD -MP -MF $(DEPDIR)/debugfs_reiser4-browse.Tpo -c -o debugfs_reiser4-browse.o `test -f 'browse.c' || echo '$(srcdir)/'`browse.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/debugfs_reiser4-browse.Tpo $(DEPDIR)/debugfs_reiser4-browse.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='browse.c' object='debugfs_reiser4-browse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -c -o debugfs_reiser4-browse.o `test -f 'browse.c' || echo '$(srcdir)/'`browse.c debugfs_reiser4-browse.obj: browse.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -MT debugfs_reiser4-browse.obj -MD -MP -MF $(DEPDIR)/debugfs_reiser4-browse.Tpo -c -o debugfs_reiser4-browse.obj `if test -f 'browse.c'; then $(CYGPATH_W) 'browse.c'; else $(CYGPATH_W) '$(srcdir)/browse.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/debugfs_reiser4-browse.Tpo $(DEPDIR)/debugfs_reiser4-browse.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='browse.c' object='debugfs_reiser4-browse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(debugfs_reiser4_CFLAGS) $(CFLAGS) -c -o debugfs_reiser4-browse.obj `if test -f 'browse.c'; then $(CYGPATH_W) 'browse.c'; else $(CYGPATH_W) '$(srcdir)/browse.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(sbindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-sbinPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-sbinPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-sbinPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-sbinPROGRAMS install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-sbinPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: reiser4progs-1.0.7.orig/progs/debugfs/debugfs.h0000644000175000017500000000063111131470543017266 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. debugfs.h -- debugs used functions. */ #ifndef DEBUGFS_H #define DEBUGFS_H #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "types.h" #include "browse.h" #include "print.h" #define VERSION_PACK_SIGN "VRSN" #endif reiser4progs-1.0.7.orig/progs/debugfs/browse.h0000644000175000017500000000047011131470543017151 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. browse.h -- filesystem browse code.*/ #ifndef DEBUGFS_BROWSE_H #define DEBUGFS_BROWSE_H #ifdef HAVE_CONFIG_H # include #endif extern errno_t debugfs_browse(reiser4_fs_t *fs, char *filename); #endif reiser4progs-1.0.7.orig/progs/debugfs/debugfs.c0000644000175000017500000003225711131470543017272 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. debugfs.c -- program for debugging reiser4 filesystem. */ #include #include #include #include #include #include #include #include "debugfs.h" #include "aux/aux.h" /* Prints debugfs options */ static void debugfs_print_usage(char *name) { fprintf(stderr, "Usage: %s [ options ] FILE\n", name); fprintf(stderr, "Browsing options:\n" " -k, --cat FILE browses passed file like standard\n" " cat and ls programs.\n" "Print options:\n" " -s, --print-super prints the both super blocks.\n" " -t, --print-tree prints the whole tree.\n" " -j, --print-journal prints journal.\n" " -d, --print-oid prints oid allocator data.\n" " -a, --print-alloc prints block allocator data.\n" " -b, --print-block N prints block by its number.\n" " -n, --print-nodes FILE prints all nodes file lies in.\n" " -i, --print-file FILE prints all items specified file\n" " consists of.\n" "Metadata options:\n" " -P, --pack-metadata fetches filesystem metadata and writes it\n" " to standard output.\n" " -U, --unpack-metadata uses metadata stream from stdandard input\n" " to construct filesystem by it.\n" "Space options:\n" " -O, --occupied-blocks works with occupied blocks only(default).\n" " -F, --free-blocks works with free blocks only.\n" " -W, --whole-partition works with the whole partition.\n" " -B, --bitmap works with blocks marked in the bitmap only.\n" "Plugins options:\n" " -p, --print-profile prints the plugin profile.\n" " -l, --print-plugins prints known plugins.\n" " -o, --override TYPE=PLUGIN overrides the default plugin of the type\n" " \"TYPE\" by the plugin \"PLUGIN\" in the\n" " profile.\n" "Common options:\n" " -?, -h, --help prints program usage.\n" " -V, --version prints current version.\n" " -f, --force makes debugfs to use whole disk, not\n" " -y, --yes assumes an answer 'yes' to all questions.\n" " block device or mounted partition.\n" " -c, --cache N number of nodes in tree buffer cache\n"); } /* Initializes exception streams used by debugfs */ static void debugfs_init(void) { int ex; /* Setting up exception streams. */ for (ex = 0; ex < EXCEPTION_TYPE_LAST; ex++) misc_exception_set_stream(ex, stderr); /* All steams should go to stderr, as in/out are used for pack/unpack and other needs */ misc_exception_set_stream(EXCEPTION_TYPE_MESSAGE, stderr); misc_exception_set_stream(EXCEPTION_TYPE_INFO, stderr); misc_exception_set_stream(EXCEPTION_TYPE_FSCK, NULL); } typedef struct debugfs_backup_hint { uint64_t count; blk_t *blk; aal_gauge_t *gauge; } debugfs_backup_hint_t; enum { NF_DONE = NF_LAST }; extern void cb_gauge_tree_percent(aal_gauge_t *gauge); int main(int argc, char *argv[]) { int c; uint32_t cache; struct stat st; char *host_dev; uint32_t print_flags = 0; uint32_t behav_flags = 0; uint32_t space_flags = 0; char override[4096]; char *cat_filename = NULL; char *print_filename = NULL; aal_device_t *device; reiser4_fs_t *fs = NULL; blk_t blocknr = 0; FILE *file = NULL; char *bm_file = NULL; reiser4_bitmap_t *bitmap = NULL; static struct option long_options[] = { {"version", no_argument, NULL, 'V'}, {"help", no_argument, NULL, 'h'}, {"force", no_argument, NULL, 'f'}, {"yes", no_argument, NULL, 'y'}, {"cat", required_argument, NULL, 'k'}, {"print-tree", no_argument, NULL, 't'}, {"print-journal", no_argument, NULL, 'j'}, {"print-super", no_argument, NULL, 's'}, {"print-alloc", no_argument, NULL, 'a'}, {"print-oid", no_argument, NULL, 'd'}, {"print-block", required_argument, NULL, 'b'}, {"print-nodes", required_argument, NULL, 'n'}, {"print-file", required_argument, NULL, 'i'}, {"pack-metadata", no_argument, NULL, 'P'}, {"unpack-metadata", no_argument, NULL, 'U'}, {"print-profile", no_argument, NULL, 'p'}, {"print-plugins", no_argument, NULL, 'l'}, {"override", required_argument, NULL, 'o'}, {"occupied-blocks", no_argument, NULL, 'O'}, {"free-blocks", no_argument, NULL, 'F'}, {"bitmap", required_argument, NULL, 'B'}, {"whole-partition", no_argument, NULL, 'W'}, {"cache", required_argument, NULL, 'c'}, {0, 0, 0, 0} }; debugfs_init(); memset(override, 0, sizeof(override)); if (argc < 2) { debugfs_print_usage(argv[0]); return USER_ERROR; } /* Parsing parameters */ while ((c = getopt_long(argc, argv, "hVyftb:djk:n:i:o:plsaPUOFWB:c:?", long_options, (int *)0)) != EOF) { switch (c) { case 'h': case '?': debugfs_print_usage(argv[0]); return NO_ERROR; case 'V': misc_print_banner(argv[0]); return NO_ERROR; case 'd': print_flags |= PF_OID; break; case 'a': print_flags |= PF_ALLOC; break; case 's': print_flags |= PF_SUPER; break; case 'j': print_flags |= PF_JOURNAL; break; case 't': print_flags |= PF_TREE; break; case 'b': { print_flags |= PF_BLOCK; /* Parsing block number */ if ((blocknr = misc_str2long(optarg, 10)) == INVAL_DIG) { aal_error("Invalid block number (%s).", optarg); return USER_ERROR; } break; } case 'n': print_flags |= PF_NODES; print_filename = optarg; break; case 'i': print_flags |= PF_ITEMS; print_filename = optarg; break; case 'k': behav_flags |= BF_CAT; cat_filename = optarg; break; case 'c': if ((cache = misc_str2long(optarg, 10)) == INVAL_DIG) { aal_error("Invalid cache value specified (%s).", optarg); return USER_ERROR; } misc_mpressure_setup(cache); break; case 'f': behav_flags |= BF_FORCE; break; case 'y': behav_flags |= BF_YES; break; case 'P': behav_flags |= BF_PACK_META; break; case 'U': behav_flags |= BF_UNPACK_META; break; case 'l': behav_flags |= BF_SHOW_PLUG; break; case 'p': behav_flags |= BF_SHOW_PARM; break; case 'o': aal_strncat(override, optarg, aal_strlen(optarg)); aal_strncat(override, ",", 1); break; case 'O': space_flags = 0; break; case 'F': space_flags |= SF_FREE; break; case 'W': space_flags |= SF_WHOLE; break; case 'B': bm_file = optarg; break; } } if (!(behav_flags & BF_YES)) misc_print_banner(argv[0]); if (libreiser4_init()) { aal_error("Can't initialize libreiser4."); goto error; } /* Overriding default params by passed values. This should be done after libreiser4 is initialized. */ if (aal_strlen(override) > 0) { override[aal_strlen(override) - 1] = '\0'; if (!(behav_flags & BF_YES)) { aal_mess("Overriding the plugin profile by \"%s\".", override); } if (misc_profile_override(override)) goto error_free_libreiser4; } if (behav_flags & BF_SHOW_PARM) misc_profile_print(); if (behav_flags & BF_SHOW_PLUG) misc_plugins_print(); if (optind >= argc) goto error_free_libreiser4; host_dev = argv[optind]; if (stat(host_dev, &st) == -1) { aal_error("Can't stat %s. %s.", host_dev, strerror(errno)); goto error_free_libreiser4; } /* Checking if passed partition is mounted */ if (misc_dev_mounted(host_dev) == MF_RW && !(behav_flags & BF_FORCE)) { aal_error("Device %s is mounted 'rw' at the moment. " "Use -f to force over.", host_dev); goto error_free_libreiser4; } /* Opening device with file_ops and default blocksize */ if (!(device = aal_device_open(&file_ops, host_dev, 512, behav_flags & BF_UNPACK_META ? O_RDWR : O_RDONLY))) { aal_error("Can't open %s. %s.", host_dev, strerror(errno)); goto error_free_libreiser4; } if (behav_flags & BF_UNPACK_META) { aal_stream_t stream; char buf[256]; int i; /* Prepare the bitmap if needed. */ if (bm_file) { if ((file = fopen(bm_file, "w+")) == NULL) { aal_fatal("Can't open the bitmap " "file (%s).", bm_file); goto error_free_device; } if (!(bitmap = reiser4_bitmap_create(0))) { aal_error("Can't allocate a bitmap."); goto error_close_file; } } aal_stream_init(&stream, stdin, &file_stream); aal_stream_read(&stream, buf, 4); if (aal_strncmp(buf, VERSION_PACK_SIGN, 4)) { aal_error("The metadata were packed with the " "reiser4progs version <= 1.0.2."); goto error_free_bitmap; } i = 0; while (1) { if (aal_stream_read(&stream, buf + i, 1) != 1) { aal_error("Can't read from the stream. Is it over?"); goto error_free_bitmap; } if (buf[i] == '\0' || i == 255) break; i++; } if (i == 255) { aal_fatal("Can't detect the reiser4progs version " "the metadata were packed with."); goto error_free_bitmap; } else { aal_info("The metadata were packed with the " "reiser4progs %s.", buf); } if (!(fs = repair_fs_unpack(device, bitmap, &stream))) { aal_error("Can't unpack filesystem."); goto error_free_bitmap; } aal_stream_fini(&stream); if (reiser4_fs_sync(fs)) { aal_error("Can't save unpacked filesystem."); goto error_free_bitmap; } /* Save the bitmap. */ if (bitmap) { aal_stream_init(&stream, file, &file_stream); if (reiser4_bitmap_pack(bitmap, &stream)) { aal_error("Can't pack the bitmap of " "unpacked blocks."); goto error_free_bitmap; } aal_stream_fini(&stream); reiser4_bitmap_close(bitmap); fclose(file); bitmap = NULL; file = NULL; } goto done; } else { /* Open file system on the device */ if (!(fs = reiser4_fs_open(device, 0))) { aal_error("Can't open reiser4 on %s", host_dev); goto error_free_device; } /* Opening the journal */ if (!(fs->journal = reiser4_journal_open(fs, device))) { aal_error("Can't open journal on %s", host_dev); goto error_free_fs; } } if (behav_flags & BF_PACK_META /* || print disk blocks */) { uint64_t len = reiser4_format_get_len(fs->format); aal_stream_t stream; if (bm_file) { /* Read the bitmap from the file. */ if ((file = fopen(bm_file, "r")) == NULL) { aal_fatal("Can't open the bitmap " "file (%s).", bm_file); goto error_free_fs; } aal_stream_init(&stream, file, &file_stream); if (!(bitmap = reiser4_bitmap_unpack(&stream))) { aal_error("Can't unpack the bitmap of " "packed blocks."); goto error_close_file; } aal_stream_fini(&stream); fclose(file); file = NULL; } else { if (!(bitmap = reiser4_bitmap_create(len))) { aal_error("Can't allocate a bitmap."); goto error_free_fs; } /* Used || free blocks - extract allocator to bitmap. */ if (space_flags == 0 || space_flags & SF_FREE) { if (reiser4_alloc_extract(fs->alloc, bitmap)) { aal_error("Can't extract the space " "allocator data to bitmap."); goto error_free_bitmap; } } /* Whole partition || free blocks - invert bitmap. */ if (space_flags & SF_WHOLE || space_flags & SF_FREE) { reiser4_bitmap_invert(bitmap); } } } /* In the case no print flags was specified, debugfs will print super blocks by defaut. */ if (print_flags == 0 && (behav_flags & ~(BF_FORCE | BF_YES)) == 0) print_flags = PF_SUPER; /* Handling print options */ if ((behav_flags & BF_CAT)) { if (debugfs_browse(fs, cat_filename)) goto error_free_bitmap; } if (print_flags & PF_SUPER) { debugfs_print_master(fs); debugfs_print_format(fs); debugfs_print_status(fs); } if (print_flags & PF_OID) debugfs_print_oid(fs); if (print_flags & PF_ALLOC) debugfs_print_alloc(fs); if (print_flags & PF_JOURNAL) debugfs_print_journal(fs); if (print_flags & PF_TREE) debugfs_print_tree(fs); if (print_flags & PF_BLOCK) { if (debugfs_print_block(fs, blocknr)) goto error_free_bitmap; } if (print_flags & PF_NODES || print_flags & PF_ITEMS) { if (debugfs_print_file(fs, print_filename, print_flags)) goto error_free_bitmap; } if (behav_flags & BF_PACK_META) { aal_stream_t stream; aal_stream_init(&stream, stdout, &file_stream); aal_stream_write(&stream, VERSION_PACK_SIGN, 4); aal_stream_write(&stream, VERSION, sizeof(VERSION)); if (repair_fs_pack(fs, bitmap, &stream)) { aal_error("Can't pack filesystem."); goto error_free_bitmap; } aal_stream_fini(&stream); reiser4_bitmap_close(bitmap); bitmap = NULL; } done: /* Closing filesystem itself */ reiser4_fs_close(fs); /* Closing device */ aal_device_close(device); /* Deinitializing libreiser4. At the moment only plugins are unloading while doing this. */ libreiser4_fini(); return NO_ERROR; error_free_bitmap: if (bitmap) { reiser4_bitmap_close(bitmap); } error_close_file: if(file) { fclose(file); } error_free_fs: if (fs) { reiser4_fs_close(fs); } error_free_device: aal_device_close(device); error_free_libreiser4: libreiser4_fini(); error: return OPER_ERROR; } reiser4progs-1.0.7.orig/progs/debugfs/browse.c0000644000175000017500000000511311131470543017143 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. browse.c -- filesystem browse code. */ #include #include #include "debugfs.h" /* If file is a regular one we show its contant here */ static errno_t debugfs_reg_cat(reiser4_object_t *object) { errno_t res; int32_t read; char buff[4096]; if ((res = reiser4_object_reset(object))) { aal_error("Can't reset object %s.", reiser4_print_inode(&object->info.object)); return res; } /* The loop until object_read returns zero bytes read */ while (1) { aal_memset(buff, 0, sizeof(buff)); read = reiser4_object_read(object, buff, sizeof(buff)); if (read <= 0) break; printf(buff); } return 0; } /* If object is the directory, we show its contant here */ static errno_t debugfs_dir_cat(reiser4_object_t *object) { errno_t res; entry_hint_t entry; if ((res = reiser4_object_reset(object))) { aal_error("Can't reset object %s.", reiser4_print_inode(&object->info.object)); return res; } /* The loop until all entry read */ while (reiser4_object_readdir(object, &entry) > 0) { printf("[%s] %s\n", reiser4_print_key(&entry.object), entry.name); } printf("\n"); return 0; } /* Show special device info. */ static errno_t debugfs_spl_cat(reiser4_object_t *object) { errno_t res; sdhint_lw_t lwh; stat_hint_t stath; sdhint_unix_t unixh; aal_memset(&stath, 0, sizeof(stath)); /* Preparing stat data hint. */ stath.extmask = (1 << SDEXT_UNIX_ID | 1 << SDEXT_LW_ID); stath.ext[SDEXT_LW_ID] = &lwh; stath.ext[SDEXT_UNIX_ID] = &unixh; if ((res = reiser4_object_stat(object, &stath))) { aal_error("Can't stat object %s.", reiser4_print_inode(&object->info.object)); return res; } /* Printing @rdev and @mode. */ printf("rdev:\t0x%x\nmode:\t0x%u\n", unixh.rdev, lwh.mode); return 0; } /* Common entry point for --ls and --cat options handling code */ errno_t debugfs_browse(reiser4_fs_t *fs, char *filename) { errno_t res = -EINVAL; reiser4_object_t *object; if (!(object = reiser4_semantic_open(fs->tree, filename, NULL, 1))) { aal_error("Can't open %s.", filename); return -EINVAL; } switch (reiser4_psobj(object)->p.id.group) { case REG_OBJECT: res = debugfs_reg_cat(object); break; case DIR_OBJECT: res = debugfs_dir_cat(object); break; case SYM_OBJECT: res = debugfs_reg_cat(object); break; case SPL_OBJECT: res = debugfs_spl_cat(object); break; default: aal_info("Sorry, browsing of the special " "files is not implemented yet."); } reiser4_object_close(object); return res; } reiser4progs-1.0.7.orig/progs/debugfs/Makefile.am0000644000175000017500000000066611131470543017542 0ustar fzfzsbin_PROGRAMS = debugfs.reiser4 debugfs_reiser4_SOURCES = debugfs.c debugfs.h print.c print.h browse.c \ browse.h types.h debugfs_reiser4_LDADD = $(top_builddir)/libreiser4/libreiser4.la \ $(top_builddir)/librepair/librepair.la \ $(top_builddir)/libmisc/libmisc.la \ $(PROGS_LIBS) debugfs_reiser4_LDFLAGS = @PROGS_LDFLAGS@ debugfs_reiser4_CFLAGS = @GENERIC_CFLAGS@ INCLUDES = -I$(top_srcdir)/include reiser4progs-1.0.7.orig/progs/debugfs/print.h0000644000175000017500000000166111131470543017007 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. print.h -- filesystem print related functions declaration. */ #ifndef DEBUGFS_PRINT_H #define DEBUGFS_PRINT_H #ifdef HAVE_CONFIG_H # include #endif #include extern errno_t debugfs_print_file(reiser4_fs_t *fs, char *filename, uint32_t flags); extern errno_t debugfs_print_block(reiser4_fs_t *fs, blk_t blk); extern void debugfs_print_oid(reiser4_fs_t *fs); extern void debugfs_print_tree(reiser4_fs_t *fs); extern void debugfs_print_alloc(reiser4_fs_t *fs); extern void debugfs_print_master(reiser4_fs_t *fs); extern void debugfs_print_status(reiser4_fs_t *fs); extern void debugfs_print_format(reiser4_fs_t *fs); extern void debugfs_print_journal(reiser4_fs_t *fs); extern void debugfs_print_node(reiser4_node_t *node); extern errno_t debugfs_print_stream(aal_stream_t *stream); #endif reiser4progs-1.0.7.orig/progs/debugfs/types.h0000644000175000017500000000127511131470543017020 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. types.h -- debugfs types. */ #ifndef DEBUGFS_TYPE_H #define DEBUGFS_TYPE_H typedef enum print_flags { PF_SUPER = 1 << 0, PF_JOURNAL = 1 << 1, PF_ALLOC = 1 << 2, PF_OID = 1 << 3, PF_TREE = 1 << 4, PF_BLOCK = 1 << 5, PF_NODES = 1 << 6, PF_ITEMS = 1 << 7, } print_flags_t; typedef enum behav_flags { BF_FORCE = 1 << 0, BF_YES = 1 << 1, BF_CAT = 1 << 2, BF_SHOW_PARM = 1 << 3, BF_SHOW_PLUG = 1 << 4, BF_PACK_META = 1 << 5, BF_UNPACK_META = 1 << 6, } behav_flags_t; typedef enum space_flags { SF_WHOLE = 1 << 0, SF_FREE = 1 << 1 } space_flags_t; #endif reiser4progs-1.0.7.orig/progs/debugfs/print.c0000644000175000017500000001371611131470543017006 0ustar fzfz/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiser4progs/COPYING. print.c -- filesystem print related code. */ #include #include #include #include "debugfs.h" errno_t debugfs_print_stream(aal_stream_t *stream) { char buff[256]; aal_stream_reset(stream); while (stream->offset < stream->size) { uint32_t size; size = (stream->size - stream->offset); if (size > sizeof(buff)) size = sizeof(buff) - size; if ((size = aal_stream_read(stream, buff, size)) <= 0) return size; printf(buff); } return 0; } /* Prints passed @node. */ static errno_t tprint_process_node(reiser4_node_t *node, void *data) { aal_stream_t stream; aal_stream_init(&stream, stdout, &file_stream); repair_node_print(node, &stream); aal_stream_fini(&stream); return 0; } void debugfs_print_node(reiser4_node_t *node) { tprint_process_node(node, NULL); } /* Prints block denoted as blk */ errno_t debugfs_print_block( reiser4_fs_t *fs, /* filesystem for work with */ blk_t blk) /* block number to be printed */ { count_t blocks; reiser4_node_t *node; if (blk >= (blocks = reiser4_format_get_len(fs->format))) { aal_error("Block %llu is out of filesystem " "size %llu-%llu.", blk, (uint64_t)0, (uint64_t)blocks); return -EINVAL; } /* Check if @blk is a filesystem block at all */ fprintf(stdout, "Block %llu is marked as %sused.\n", blk, reiser4_alloc_occupied(fs->alloc, blk, 1) ? "" : "not "); /* Determining what is the object block belong to */ switch (reiser4_fs_belongs(fs, blk)) { case O_MASTER: fprintf(stdout, "It belongs to the fs master super block.\n"); return 0; case O_STATUS: fprintf(stdout, "It belongs to the fs status data.\n"); return 0; case O_FORMAT: fprintf(stdout, "It belongs to the fs disk format data.\n"); return 0; case O_JOURNAL: fprintf(stdout, "It belongs to the fs journal data.\n"); return 0; case O_ALLOC: fprintf(stdout, "It belongs to the fs block allocator data.\n"); return 0; case O_BACKUP: fprintf(stdout, "It belongs to the fs backup data.\n"); return 0; default: break; } if (!(node = reiser4_node_open(fs->tree, blk))) { fprintf(stdout, "It does not look like a formatted one.\n"); return 0; } debugfs_print_node(node); reiser4_node_close(node); return 0; } /* Makes traverse though the whole tree and prints all nodes */ void debugfs_print_tree(reiser4_fs_t *fs) { aal_assert("umka-2486", fs != NULL); reiser4_tree_trav(fs->tree, NULL, tprint_process_node, NULL, NULL, NULL); } /* Prints master super block */ void debugfs_print_master(reiser4_fs_t *fs) { aal_stream_t stream; aal_assert("umka-1299", fs != NULL); aal_stream_init(&stream, stdout, &file_stream); repair_master_print(fs->master, &stream, misc_uuid_unparse); aal_stream_format(&stream, "\n"); aal_stream_fini(&stream); } /* Prints fs status block. */ void debugfs_print_status(reiser4_fs_t *fs) { aal_stream_t stream; aal_assert("umka-2495", fs != NULL); aal_stream_init(&stream, stdout, &file_stream); repair_status_print(fs->status, &stream); aal_stream_format(&stream, "\n"); aal_stream_fini(&stream); } /* Prints format-specific super block */ void debugfs_print_format(reiser4_fs_t *fs) { aal_stream_t stream; if (!fs->format->ent->plug->print) { aal_info("Format print method is not " "implemented."); return; } aal_stream_init(&stream, stdout, &file_stream); repair_format_print(fs->format, &stream); aal_stream_format(&stream, "\n"); aal_stream_fini(&stream); } /* Prints oid allocator */ void debugfs_print_oid(reiser4_fs_t *fs) { aal_stream_t stream; if (!fs->oid->ent->plug->print) { aal_info("Oid allocator print method is " "not implemented."); return; } aal_stream_init(&stream, stdout, &file_stream); repair_oid_print(fs->oid, &stream); aal_stream_format(&stream, "\n"); aal_stream_fini(&stream); } /* Prints block allocator */ void debugfs_print_alloc(reiser4_fs_t *fs) { aal_stream_t stream; aal_stream_init(&stream, stdout, &file_stream); repair_alloc_print(fs->alloc, &stream); aal_stream_format(&stream, "\n"); aal_stream_fini(&stream); } /* Prints journal */ void debugfs_print_journal(reiser4_fs_t *fs) { aal_stream_t stream; if (!fs->journal) return; aal_stream_init(&stream, stdout, &file_stream); repair_journal_print(fs->journal, &stream); aal_stream_format(&stream, "\n"); aal_stream_fini(&stream); } typedef struct fprint_hint { blk_t old; void *data; uint32_t flags; } fprint_hint_t; /* Prints item at passed @place */ static errno_t fprint_process_place( reiser4_place_t *place, /* next file block */ void *data) /* user-specified data */ { fprint_hint_t *hint = (fprint_hint_t *)data; if (place_blknr(place) == hint->old) return 0; hint->old = place_blknr(place); debugfs_print_node(place->node); return 0; } /* Prints all items belong to the specified file */ errno_t debugfs_print_file( reiser4_fs_t *fs, /* fs to be used */ char *filename, /* file name to be used */ uint32_t flags) /* some flags */ { errno_t res = 0; fprint_hint_t hint; reiser4_object_t *object; if (!(object = reiser4_semantic_open(fs->tree, filename, NULL, 0))) return -EINVAL; /* If --print-file option is specified, we show only items belong to the file. If no, that we show all items whihc lie in the same block as the item belong to the file denoted by @filename. */ if (PF_ITEMS & flags) { aal_stream_t stream; aal_stream_init(&stream, stdout, &file_stream); repair_object_print(object, &stream); aal_stream_fini(&stream); } else { place_func_t place_func; hint.old = 0; hint.data = fs; hint.flags = flags; place_func = fprint_process_place; if ((res = reiser4_object_metadata(object, place_func, &hint))) { aal_error("Can't print object %s metadata.", reiser4_print_inode(&object->info.object)); } } reiser4_object_close(object); return res; } reiser4progs-1.0.7.orig/THANKS0000644000175000017500000000016211131470543013637 0ustar fzfzIn not important order: * Andrew Clausen for lots of great ideas. * Whole namesys team for advices and testing.