OSDN Git Service

* java/net/natPlainDatagramSocketImpl.cc (close): New function.
[pf3gnuchains/gcc-fork.git] / libjava / Makefile.in
index f575753..834ed17 100644 (file)
@@ -67,6 +67,7 @@ AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
 AR = @AR@
 AS = @AS@
 CC = @CC@
+CHECKREFSPEC = @CHECKREFSPEC@
 COMPPATH = @COMPPATH@
 CXX = @CXX@
 CXXCPP = @CXXCPP@
@@ -103,24 +104,28 @@ OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PLATFORMOBJS = @PLATFORMOBJS@
 RANLIB = @RANLIB@
 STRIP = @STRIP@
 SYSDEP_SOURCES = @SYSDEP_SOURCES@
 SYSTEMSPEC = @SYSTEMSPEC@
+SYS_ZLIBS = @SYS_ZLIBS@
 THREADDEPS = @THREADDEPS@
 THREADINCS = @THREADINCS@
+THREADLDFLAGS = @THREADLDFLAGS@
 THREADLIBS = @THREADLIBS@
 THREADOBJS = @THREADOBJS@
 THREADSPEC = @THREADSPEC@
 VERSION = @VERSION@
-ZDEPS = @ZDEPS@
 ZINCS = @ZINCS@
 ZLIBS = @ZLIBS@
 ZLIBSPEC = @ZLIBSPEC@
 ZLIBTESTSPEC = @ZLIBTESTSPEC@
+glibjava_CXX = @glibjava_CXX@
 here = @here@
 libgcj_basedir = @libgcj_basedir@
 mkinstalldirs = @mkinstalldirs@
+tool_include_dir = @tool_include_dir@
 
 AUTOMAKE_OPTIONS = foreign
 @TESTSUBDIR_TRUE@SUBDIRS = \
@@ -160,9 +165,9 @@ bin_SCRIPTS = addr2name.awk
 
 GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8
 
-GCJCOMPILE = $(LIBTOOL) --tag=GCJ --mode=compile $(GCJ_WITH_FLAGS) -fassume-compiled -fclasspath=$(here) -L$(here) $(JC1FLAGS) -MD -MT $@ -MF $(@:.lo=.d) -c
+GCJCOMPILE = $(LIBTOOL) --tag=GCJ --mode=compile $(GCJ_WITH_FLAGS) -fclasspath= -fbootclasspath=$(here) $(JC1FLAGS) -MD -MT $@ -MF $(@:.lo=.d) -c
 GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
-LIBLINK = $(LIBTOOL) --tag=CC --mode=link $(CC) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
+LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
 
 LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 
@@ -199,24 +204,26 @@ javao_files = $(java_source_files:.java=.lo) \
 
 x_javao_files = $(x_java_source_files:.java=.lo)
 
-libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \
+libgcj_la_SOURCES = prims.cc jni.cc exception.cc \
        resolve.cc defineclass.cc interpret.cc name-finder.cc verify.cc \
        $(nat_source_files)
 
 EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
+       win32-threads.cc posix.cc win32.cc \
        $(c_source_files) $(java_source_files) $(built_java_source_files)
 
 libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) \
-       $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
+       $(c_files) $(GCOBJS) $(THREADOBJS) $(PLATFORMOBJS) $(LIBLTDL) \
+       $(LIBFFI) $(ZLIBS) $(GCLIBS)
 
 
 libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \
-       $(THREADOBJS)
+       $(THREADOBJS) $(PLATFORMOBJS)
 
 # Include THREADLIBS here to ensure that the correct version of
 # certain linuxthread functions get linked:
-libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) \
-       $(GCLIBS) $(ZLIBS) \
+libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
+       $(LIBLTDL) $(SYS_ZLIBS) \
        -version-info `grep -v '^\#' $(srcdir)/libtool-version`
 
 libgcj_la_LINK = $(LIBLINK)
@@ -260,37 +267,37 @@ CONVERT_DIR = gnu/gcj/convert
 jv_convert_SOURCES = 
 EXTRA_jv_convert_SOURCES = $(convert_source_files)
 jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
-       -rpath $(toolexeclibdir) -shared-libgcc
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
 
 jv_convert_LINK = $(GCJLINK)
-jv_convert_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
+jv_convert_LDADD = libgcj.la -L$(here)/.libs
 jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) \
-       $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec
+       libgcj.la libgcj.spec
 
 
 gij_SOURCES = gij.cc
-gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc
+gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
 gij_LINK = $(GCJLINK)
-gij_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
-gij_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec
+gij_LDADD = libgcj.la -L$(here)/.libs
+gij_DEPENDENCIES = libgcj.la libgcj.spec
 
 rmic_SOURCES = 
 EXTRA_rmic_SOURCES = $(rmi_java_source_files)
 rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \
-       -rpath $(toolexeclibdir) -shared-libgcc
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
 
 rmic_LINK = $(GCJLINK)
-rmic_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
-rmic_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec
+rmic_LDADD = libgcj.la -L$(here)/.libs
+rmic_DEPENDENCIES = libgcj.la libgcj.spec
 
 rmiregistry_SOURCES = 
 EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files)
 rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \
-       -rpath $(toolexeclibdir) -shared-libgcc
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
 
 rmiregistry_LINK = $(GCJLINK)
-rmiregistry_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
-rmiregistry_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec
+rmiregistry_LDADD = libgcj.la -L$(here)/.libs
+rmiregistry_DEPENDENCIES = libgcj.la libgcj.spec
 
 gen_from_JIS_SOURCES = 
 EXTRA_gen_from_JIS_SOURCES = $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \
@@ -400,6 +407,7 @@ java/awt/Label.java \
 java/awt/LayoutManager.java \
 java/awt/LayoutManager2.java \
 java/awt/List.java \
+java/awt/MediaTracker.java \
 java/awt/Menu.java \
 java/awt/MenuBar.java \
 java/awt/MenuComponent.java \
@@ -412,6 +420,8 @@ java/awt/Panel.java \
 java/awt/Point.java \
 java/awt/Polygon.java \
 java/awt/PopupMenu.java        \
+java/awt/PrintGraphics.java \
+java/awt/PrintJob.java \
 java/awt/Rectangle.java        \
 java/awt/RenderingHints.java \
 java/awt/ScrollPane.java \
@@ -428,6 +438,14 @@ java/awt/color/ColorSpace.java \
 java/awt/color/ICC_ColorSpace.java \
 java/awt/color/ICC_Profile.java        \
 java/awt/datatransfer/Clipboard.java \
+java/awt/datatransfer/ClipboardOwner.java \
+java/awt/datatransfer/DataFlavor.java \
+java/awt/datatransfer/FlavorMap.java \
+java/awt/datatransfer/MimeTypeParseException.java \
+java/awt/datatransfer/StringSelection.java \
+java/awt/datatransfer/SystemFlavorMap.java \
+java/awt/datatransfer/Transferable.java        \
+java/awt/datatransfer/UnsupportedFlavorException.java \
 java/awt/event/AWTEventListener.java \
 java/awt/event/ActionEvent.java        \
 java/awt/event/ActionListener.java \
@@ -836,6 +854,7 @@ java/lang/SecurityException.java \
 java/lang/SecurityManager.java \
 java/lang/Short.java \
 java/lang/StackOverflowError.java \
+java/lang/StrictMath.java \
 java/lang/String.java \
 java/lang/StringBuffer.java \
 java/lang/StringIndexOutOfBoundsException.java \
@@ -1015,6 +1034,7 @@ gnu/java/io/NullOutputStream.java \
 gnu/java/io/ObjectIdentityWrapper.java \
 gnu/java/lang/ArrayHelper.java \
 gnu/java/lang/ClassHelper.java \
+gnu/java/lang/CharData.java \
 gnu/java/lang/reflect/TypeSignature.java \
 gnu/java/locale/Calendar.java \
 gnu/java/locale/Calendar_de.java \
@@ -1654,7 +1674,7 @@ X_CFLAGS = @X_CFLAGS@
 X_LIBS = @X_LIBS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
-libgcj_la_OBJECTS =  prims.lo posix.lo jni.lo exception.lo resolve.lo \
+libgcj_la_OBJECTS =  prims.lo jni.lo exception.lo resolve.lo \
 defineclass.lo interpret.lo name-finder.lo verify.lo gnu/gcj/natCore.lo \
 gnu/gcj/convert/JIS0208_to_Unicode.lo \
 gnu/gcj/convert/JIS0212_to_Unicode.lo gnu/gcj/convert/Unicode_to_JIS.lo \
@@ -1828,7 +1848,8 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/gnu/java/io/ClassLoaderObjectInputStream.P \
 .deps/gnu/java/io/NullOutputStream.P \
 .deps/gnu/java/io/ObjectIdentityWrapper.P \
-.deps/gnu/java/lang/ArrayHelper.P .deps/gnu/java/lang/ClassHelper.P \
+.deps/gnu/java/lang/ArrayHelper.P .deps/gnu/java/lang/CharData.P \
+.deps/gnu/java/lang/ClassHelper.P \
 .deps/gnu/java/lang/reflect/TypeSignature.P \
 .deps/gnu/java/locale/Calendar.P .deps/gnu/java/locale/Calendar_de.P \
 .deps/gnu/java/locale/Calendar_en.P .deps/gnu/java/locale/Calendar_nl.P \
@@ -2023,12 +2044,14 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/java/awt/Insets.P .deps/java/awt/ItemSelectable.P \
 .deps/java/awt/Label.P .deps/java/awt/LayoutManager.P \
 .deps/java/awt/LayoutManager2.P .deps/java/awt/List.P \
-.deps/java/awt/Menu.P .deps/java/awt/MenuBar.P \
-.deps/java/awt/MenuComponent.P .deps/java/awt/MenuContainer.P \
-.deps/java/awt/MenuItem.P .deps/java/awt/MenuShortcut.P \
-.deps/java/awt/Paint.P .deps/java/awt/PaintContext.P \
-.deps/java/awt/Panel.P .deps/java/awt/Point.P .deps/java/awt/Polygon.P \
-.deps/java/awt/PopupMenu.P .deps/java/awt/Rectangle.P \
+.deps/java/awt/MediaTracker.P .deps/java/awt/Menu.P \
+.deps/java/awt/MenuBar.P .deps/java/awt/MenuComponent.P \
+.deps/java/awt/MenuContainer.P .deps/java/awt/MenuItem.P \
+.deps/java/awt/MenuShortcut.P .deps/java/awt/Paint.P \
+.deps/java/awt/PaintContext.P .deps/java/awt/Panel.P \
+.deps/java/awt/Point.P .deps/java/awt/Polygon.P \
+.deps/java/awt/PopupMenu.P .deps/java/awt/PrintGraphics.P \
+.deps/java/awt/PrintJob.P .deps/java/awt/Rectangle.P \
 .deps/java/awt/RenderingHints.P .deps/java/awt/ScrollPane.P \
 .deps/java/awt/Scrollbar.P .deps/java/awt/Shape.P \
 .deps/java/awt/SystemColor.P .deps/java/awt/TextArea.P \
@@ -2038,6 +2061,14 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/java/awt/color/ICC_ColorSpace.P \
 .deps/java/awt/color/ICC_Profile.P \
 .deps/java/awt/datatransfer/Clipboard.P \
+.deps/java/awt/datatransfer/ClipboardOwner.P \
+.deps/java/awt/datatransfer/DataFlavor.P \
+.deps/java/awt/datatransfer/FlavorMap.P \
+.deps/java/awt/datatransfer/MimeTypeParseException.P \
+.deps/java/awt/datatransfer/StringSelection.P \
+.deps/java/awt/datatransfer/SystemFlavorMap.P \
+.deps/java/awt/datatransfer/Transferable.P \
+.deps/java/awt/datatransfer/UnsupportedFlavorException.P \
 .deps/java/awt/event/AWTEventListener.P \
 .deps/java/awt/event/ActionEvent.P \
 .deps/java/awt/event/ActionListener.P \
@@ -2238,8 +2269,8 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/java/lang/Runtime.P .deps/java/lang/RuntimeException.P \
 .deps/java/lang/RuntimePermission.P .deps/java/lang/SecurityException.P \
 .deps/java/lang/SecurityManager.P .deps/java/lang/Short.P \
-.deps/java/lang/StackOverflowError.P .deps/java/lang/String.P \
-.deps/java/lang/StringBuffer.P \
+.deps/java/lang/StackOverflowError.P .deps/java/lang/StrictMath.P \
+.deps/java/lang/String.P .deps/java/lang/StringBuffer.P \
 .deps/java/lang/StringIndexOutOfBoundsException.P \
 .deps/java/lang/System.P .deps/java/lang/Thread.P \
 .deps/java/lang/ThreadDeath.P .deps/java/lang/ThreadGroup.P \
@@ -2670,7 +2701,8 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/org/xml/sax/helpers/XMLFilterImpl.P \
 .deps/org/xml/sax/helpers/XMLReaderAdapter.P \
 .deps/org/xml/sax/helpers/XMLReaderFactory.P .deps/posix-threads.P \
-.deps/posix.P .deps/prims.P .deps/resolve.P .deps/verify.P
+.deps/posix.P .deps/prims.P .deps/resolve.P .deps/verify.P \
+.deps/win32-threads.P .deps/win32.P
 SOURCES = $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(libgcjx_la_SOURCES) $(EXTRA_libgcjx_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(rmic_SOURCES) $(EXTRA_rmic_SOURCES) $(rmiregistry_SOURCES) $(EXTRA_rmiregistry_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES)
 OBJECTS = $(libgcj_la_OBJECTS) $(libgcjx_la_OBJECTS) $(jv_convert_OBJECTS) $(gij_OBJECTS) $(rmic_OBJECTS) $(rmiregistry_OBJECTS) $(gen_from_JIS_OBJECTS)
 
@@ -3204,8 +3236,8 @@ libgcj.jar: $(built_java_source_files) $(java_source_files) $(x_java_source_file
        @set fnord $(MAKEFLAGS); amf=$$2; fail=no; \
        javac="$(JAVAC)"; \
        cat tmp-list | (while read f; do \
-         echo $$javac $(JCFLAGS) -classpath $(here):$(srcdir) -d $(here) $$f; \
-         $$javac $(JCFLAGS) -classpath $(here):$(srcdir) -d $(here) $$f \
+         echo $$javac $(JCFLAGS) -classpath \'\' -bootclasspath $(here):$(srcdir) -d $(here) $$f; \
+         $$javac $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) -d $(here) $$f \
            || case "$$amf" in *=*) exit 1;; *k*) fail=yes ;; *) exit 1;; esac; \
        done; \
        test "$$fail" = no)
@@ -3217,6 +3249,10 @@ libgcj.jar: $(built_java_source_files) $(java_source_files) $(x_java_source_file
 clean-local:
        find . -name '*.class' -print | xargs rm -f
 
+# Just remove the objects from C++ sources, for testing the C++ compiler.
+clean-nat:
+       rm -f $(nat_files) $(x_nat_files)
+
 .class.lo:
        $(GCJCOMPILE) -o $@ $<
 
@@ -3239,7 +3275,7 @@ $(javao_files) $(x_javao_files): %.lo: %.java
 libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES)
        @: $(shell echo Creating list of files to link...) $(shell rm -f libgcj.objectlist || :) $(shell touch libgcj.objectlist) $(foreach object,$(libgcj_la_OBJECTS) $(libgcj_la_LIBADD),$(shell echo $(object) >> libgcj.objectlist))
        $(libgcj_la_LINK) -objectlist libgcj.objectlist \
-       @LIBFFI@ \
+       @GCLIBS@ @LIBFFI@ @ZLIBS@ \
        -rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(LIBS)
 
 libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES)
@@ -3248,18 +3284,18 @@ libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES)
        -rpath $(toolexeclibdir) $(libgcjx_la_LDFLAGS) $(LIBS)
 
 .class.h:
-       $(GCJH) -classpath $(top_builddir) $(basename $<)
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) $(basename $<)
 
 $(ordinary_nat_headers) $(x_nat_headers): %.h: %.class
 
 java/lang/ClassLoader.h: java/lang/ClassLoader.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
                -friend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
                -friend 'void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \
                $(basename $<)
 
 java/lang/Thread.h: java/lang/Thread.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
                -prepend 'class _Jv_JNIEnv;' \
                -prepend '#define _JV_NOT_OWNER 1' \
                -prepend '#define _JV_INTERRUPTED 2' \
@@ -3272,7 +3308,7 @@ java/lang/Thread.h: java/lang/Thread.class
                $(basename $<)
 
 java/lang/String.h: java/lang/String.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
            -friend 'jchar* _Jv_GetStringChars (jstring str);' \
            -friend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \
            -friend 'jstring* _Jv_StringGetSlot (jstring);' \
@@ -3282,21 +3318,21 @@ java/lang/String.h: java/lang/String.class
            $(basename $<)
 
 java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
            -friend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \
            -friend 'class java::lang::Class;' \
            -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
            $(basename $<)
 
 java/lang/reflect/Field.h: java/lang/reflect/Field.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
            -friend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \
            -friend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \
            -friend 'class java::lang::Class;' \
            $(basename $<)
 
 java/lang/reflect/Method.h: java/lang/reflect/Method.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
            -friend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \
            -friend 'class java::lang::Class;' \
            -friend 'class java::io::ObjectInputStream;' \
@@ -3304,16 +3340,16 @@ java/lang/reflect/Method.h: java/lang/reflect/Method.class
            $(basename $<)
 
 gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
            -friend 'class ::java::lang::ClassLoader;' \
            $(basename $<)
 
 java/io/ObjectInputStream$$GetField.h: java/io/ObjectInputStream.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
        'java/io/ObjectInputStream$$GetField'
 
 java/io/ObjectOutputStream$$PutField.h: java/io/ObjectOutputStream.class
-       $(GCJH) -classpath $(top_builddir) \
+       $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
        'java/io/ObjectOutputStream$$PutField'
 
 $(extra_headers):