From cb6a8938edfc1a971dc82e1117824b2f212f5890 Mon Sep 17 00:00:00 2001 From: sthen Date: Mon, 22 Jun 2009 22:37:31 +0000 Subject: [PATCH] Import llvm-gcc4, not yet linked to the build. This is a work in progress, largely based on the gcc port in ports/lang/gcc/4.2. Requested by jsg@. It's somewhat usable on i386 (shared lib versions not yet properly under control). Build on amd64 currently fails with -fPIC problems. -- -- lvm-gcc is the LLVM C front end. It is a modified version of gcc that compiles C/C++/ObjC programs into native objects, LLVM bitcode or LLVM assembly language, depending upon the options. By default, llvm-gcc compiles to native objects just like GCC does. If the -emit-llvm option is given then it will generate LLVM bitcode files instead. If -S (assembly) is also given, then it will generate LLVM assembly. Being derived from the GNU Compiler Collection, llvm-gcc has many of gcc's features and accepts most of gcc's options. It handles a number of gcc's extensions to the C programming language. $CVS: ---------------------------------------------------------------------- --- lang/llvm-gcc4/Makefile | 83 +++ lang/llvm-gcc4/distinfo | 5 + .../patches/patch-boehm-gc_Makefile_in | 30 + .../patches/patch-boehm-gc_configure | 63 ++ .../patches/patch-boehm-gc_dyn_load_c | 48 ++ .../patch-boehm-gc_include_gc_config_h_in | 13 + .../patch-boehm-gc_include_gc_config_macros_h | 24 + ...ch-boehm-gc_include_gc_pthread_redirects_h | 25 + .../patch-boehm-gc_include_private_gcconfig_h | 356 +++++++++ ...hm-gc_include_private_openbsd_stop_world_h | 16 + .../patches/patch-boehm-gc_mach_dep_c | 21 + lang/llvm-gcc4/patches/patch-boehm-gc_misc_c | 12 + .../patch-boehm-gc_openbsd_stop_world_c | 188 +++++ .../llvm-gcc4/patches/patch-boehm-gc_os_dep_c | 190 +++++ .../patch-boehm-gc_pthread_stop_world_c | 13 + .../patches/patch-boehm-gc_pthread_support_c | 22 + .../patches/patch-boehm-gc_tests_test_c | 13 + .../patches/patch-boehm-gc_threadlibs_c | 13 + lang/llvm-gcc4/patches/patch-configure | 12 + .../patches/patch-fixincludes_Makefile_in | 14 + .../patches/patch-gcc_ada_Makefile_in | 18 + lang/llvm-gcc4/patches/patch-gcc_ada_adaint_c | 21 + lang/llvm-gcc4/patches/patch-gcc_ada_env_c | 13 + .../patches/patch-gcc_ada_gnatchop_adb | 12 + .../patches/patch-gcc_ada_gnatlink_adb | 12 + lang/llvm-gcc4/patches/patch-gcc_ada_make_adb | 12 + .../patches/patch-gcc_ada_mlib-utl_adb | 12 + lang/llvm-gcc4/patches/patch-gcc_c-aux-info_c | 245 +++++++ lang/llvm-gcc4/patches/patch-gcc_c-common_c | 37 + lang/llvm-gcc4/patches/patch-gcc_c-format_c | 97 +++ lang/llvm-gcc4/patches/patch-gcc_c-incpath_c | 32 + lang/llvm-gcc4/patches/patch-gcc_collect2_c | 76 ++ .../patches/patch-gcc_config_exec-stack_h | 44 ++ lang/llvm-gcc4/patches/patch-gcc_config_gcc | 93 +++ lang/llvm-gcc4/patches/patch-gcc_config_host | 14 + .../patches/patch-gcc_config_host-openbsd_c | 111 +++ .../patch-gcc_config_i386_driver-i386_c | 21 + .../patches/patch-gcc_config_i386_openbsd64_h | 125 ++++ .../patches/patch-gcc_config_i386_openbsd_h | 25 + .../patch-gcc_config_i386_openbsdelf_h | 26 + .../patches/patch-gcc_config_m68k_openbsd_h | 25 + .../patches/patch-gcc_config_mips_openbsd_h | 25 + .../patch-gcc_config_openbsd-libpthread_h | 27 + .../patches/patch-gcc_config_openbsd_h | 82 +++ .../patch-gcc_config_rs6000_openbsd1_h | 28 + .../patches/patch-gcc_config_rs6000_openbsd_h | 136 ++++ .../patches/patch-gcc_config_rs6000_t-openbsd | 59 ++ .../patches/patch-gcc_config_t-openbsd | 13 + .../patches/patch-gcc_config_vax_openbsd_h | 23 + .../patches/patch-gcc_config_x-openbsd | 8 + lang/llvm-gcc4/patches/patch-gcc_coverage_c | 12 + lang/llvm-gcc4/patches/patch-gcc_cp_call_c | 21 + lang/llvm-gcc4/patches/patch-gcc_cp_decl2_c | 12 + lang/llvm-gcc4/patches/patch-gcc_cp_g++spec_c | 12 + lang/llvm-gcc4/patches/patch-gcc_cp_parser_c | 12 + lang/llvm-gcc4/patches/patch-gcc_dbxout_c | 12 + lang/llvm-gcc4/patches/patch-gcc_diagnostic_c | 12 + lang/llvm-gcc4/patches/patch-gcc_gcc_c | 210 ++++++ lang/llvm-gcc4/patches/patch-gcc_gensupport_c | 21 + .../patches/patch-gcc_objc_objc-act_c | 12 + lang/llvm-gcc4/patches/patch-gcc_omp-low_c | 12 + lang/llvm-gcc4/patches/patch-gcc_passes_c | 23 + lang/llvm-gcc4/patches/patch-gcc_prefix_c | 35 + lang/llvm-gcc4/patches/patch-gcc_read-rtl_c | 12 + .../patch-gcc_testsuite_ada_acats_run_acats | 14 + .../patch-gcc_testsuite_ada_acats_run_all_sh | 12 + ...patch-gcc_testsuite_gcc_dg_format_format_h | 17 + .../patches/patch-gcc_tree-complex_c | 12 + lang/llvm-gcc4/patches/patch-gcc_tree-dump_c | 12 + .../patches/patch-gcc_tree-mudflap_c | 12 + .../llvm-gcc4/patches/patch-gcc_tree-nested_c | 12 + .../patches/patch-gcc_tree-vect-transform_c | 12 + lang/llvm-gcc4/patches/patch-gcc_tree_c | 17 + .../patch-gcc_unwind-dw2-fde-openbsd_c | 14 + lang/llvm-gcc4/patches/patch-gcc_unwind-dw2_c | 51 ++ lang/llvm-gcc4/patches/patch-gcc_varasm_c | 12 + lang/llvm-gcc4/patches/patch-libffi_configure | 50 ++ .../patch-libffi_src_powerpc_ffitarget_h | 11 + ...atch-libiberty_testsuite_test-expandargv_c | 11 + .../llvm-gcc4/patches/patch-libjava_configure | 14 + .../patches/patch-libjava_configure_host | 16 + .../patches/patch-libjava_libltdl_configure | 13 + .../patches/patch-libmudflap_mf-runtime_c | 11 + .../patches/patch-libmudflap_mf-runtime_h | 12 + .../patches/patch-libstdc++-v3_acinclude_m4 | 86 +++ ...+-v3_config_locale_generic_time_members_cc | 20 + ...bstdc++-v3_include_c_compatibility_wchar_h | 46 ++ ...ch-libstdc++-v3_include_c_std_std_cwchar_h | 62 ++ ...h-libstdc++-v3_include_c_std_std_cwctype_h | 19 + ...-libstdc++-v3_include_ext_numeric_traits_h | 105 +++ .../patch-libstdc++-v3_include_tr1_cwctype | 12 + .../patch-libstdc++-v3_libsupc++_Makefile_in | 21 + lang/llvm-gcc4/patches/patch-libtool_m4 | 14 + lang/llvm-gcc4/patches/patch-ltcf-c_sh | 30 + lang/llvm-gcc4/patches/patch-ltcf-cxx_sh | 57 ++ lang/llvm-gcc4/patches/patch-ltcf-gcj_sh | 19 + lang/llvm-gcc4/patches/patch-ltconfig | 40 ++ lang/llvm-gcc4/pkg/DESCR | 12 + lang/llvm-gcc4/pkg/PFRAG.shared | 3 + lang/llvm-gcc4/pkg/PLIST | 680 ++++++++++++++++++ 100 files changed, 4612 insertions(+) create mode 100644 lang/llvm-gcc4/Makefile create mode 100644 lang/llvm-gcc4/distinfo create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_Makefile_in create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_configure create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_dyn_load_c create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_config_h_in create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_config_macros_h create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_pthread_redirects_h create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_include_private_gcconfig_h create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_include_private_openbsd_stop_world_h create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_mach_dep_c create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_misc_c create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_openbsd_stop_world_c create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_os_dep_c create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_pthread_stop_world_c create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_pthread_support_c create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_tests_test_c create mode 100644 lang/llvm-gcc4/patches/patch-boehm-gc_threadlibs_c create mode 100644 lang/llvm-gcc4/patches/patch-configure create mode 100644 lang/llvm-gcc4/patches/patch-fixincludes_Makefile_in create mode 100644 lang/llvm-gcc4/patches/patch-gcc_ada_Makefile_in create mode 100644 lang/llvm-gcc4/patches/patch-gcc_ada_adaint_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_ada_env_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_ada_gnatchop_adb create mode 100644 lang/llvm-gcc4/patches/patch-gcc_ada_gnatlink_adb create mode 100644 lang/llvm-gcc4/patches/patch-gcc_ada_make_adb create mode 100644 lang/llvm-gcc4/patches/patch-gcc_ada_mlib-utl_adb create mode 100644 lang/llvm-gcc4/patches/patch-gcc_c-aux-info_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_c-common_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_c-format_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_c-incpath_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_collect2_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_exec-stack_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_gcc create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_host create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_host-openbsd_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_i386_driver-i386_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsd64_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsd_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsdelf_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_m68k_openbsd_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_mips_openbsd_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_openbsd-libpthread_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_openbsd_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_rs6000_openbsd1_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_rs6000_openbsd_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_rs6000_t-openbsd create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_t-openbsd create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_vax_openbsd_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_config_x-openbsd create mode 100644 lang/llvm-gcc4/patches/patch-gcc_coverage_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_cp_call_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_cp_decl2_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_cp_g++spec_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_cp_parser_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_dbxout_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_diagnostic_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_gcc_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_gensupport_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_objc_objc-act_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_omp-low_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_passes_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_prefix_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_read-rtl_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_testsuite_ada_acats_run_acats create mode 100644 lang/llvm-gcc4/patches/patch-gcc_testsuite_ada_acats_run_all_sh create mode 100644 lang/llvm-gcc4/patches/patch-gcc_testsuite_gcc_dg_format_format_h create mode 100644 lang/llvm-gcc4/patches/patch-gcc_tree-complex_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_tree-dump_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_tree-mudflap_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_tree-nested_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_tree-vect-transform_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_tree_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_unwind-dw2-fde-openbsd_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_unwind-dw2_c create mode 100644 lang/llvm-gcc4/patches/patch-gcc_varasm_c create mode 100644 lang/llvm-gcc4/patches/patch-libffi_configure create mode 100644 lang/llvm-gcc4/patches/patch-libffi_src_powerpc_ffitarget_h create mode 100644 lang/llvm-gcc4/patches/patch-libiberty_testsuite_test-expandargv_c create mode 100644 lang/llvm-gcc4/patches/patch-libjava_configure create mode 100644 lang/llvm-gcc4/patches/patch-libjava_configure_host create mode 100644 lang/llvm-gcc4/patches/patch-libjava_libltdl_configure create mode 100644 lang/llvm-gcc4/patches/patch-libmudflap_mf-runtime_c create mode 100644 lang/llvm-gcc4/patches/patch-libmudflap_mf-runtime_h create mode 100644 lang/llvm-gcc4/patches/patch-libstdc++-v3_acinclude_m4 create mode 100644 lang/llvm-gcc4/patches/patch-libstdc++-v3_config_locale_generic_time_members_cc create mode 100644 lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_compatibility_wchar_h create mode 100644 lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_std_std_cwchar_h create mode 100644 lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_std_std_cwctype_h create mode 100644 lang/llvm-gcc4/patches/patch-libstdc++-v3_include_ext_numeric_traits_h create mode 100644 lang/llvm-gcc4/patches/patch-libstdc++-v3_include_tr1_cwctype create mode 100644 lang/llvm-gcc4/patches/patch-libstdc++-v3_libsupc++_Makefile_in create mode 100644 lang/llvm-gcc4/patches/patch-libtool_m4 create mode 100644 lang/llvm-gcc4/patches/patch-ltcf-c_sh create mode 100644 lang/llvm-gcc4/patches/patch-ltcf-cxx_sh create mode 100644 lang/llvm-gcc4/patches/patch-ltcf-gcj_sh create mode 100644 lang/llvm-gcc4/patches/patch-ltconfig create mode 100644 lang/llvm-gcc4/pkg/DESCR create mode 100644 lang/llvm-gcc4/pkg/PFRAG.shared create mode 100644 lang/llvm-gcc4/pkg/PLIST diff --git a/lang/llvm-gcc4/Makefile b/lang/llvm-gcc4/Makefile new file mode 100644 index 00000000000..02a03677f56 --- /dev/null +++ b/lang/llvm-gcc4/Makefile @@ -0,0 +1,83 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2009/06/22 22:37:31 sthen Exp $ + +# XXX WORK IN PROGRESS. + +#ONLY_FOR_ARCHS = alpha i386 m68k sparc sparc64 powerpc vax amd64 + +ONLY_FOR_ARCHS = i386 +# amd64 has an -fPIC problem +# others unknown at this time + +COMMENT = gcc4 front-end for LLVM + +LLVM_V = 2.6pre20090621 +DISTNAME = llvm-gcc-4.2-${LLVM_V}.source +PKGNAME = ${DISTNAME:S/.source//:S/gcc-/gcc/} +EXTRACT_SUFX = .tar.bz2 + +SHARED_LIBS = ssp 0.0 \ + stdc++ 6.9 # XXX not controllable yet + +CATEGORIES = lang devel + +HOMEPAGE = http://www.llvm.org/ + +# GPL +PERMIT_PACKAGE_CDROM = Yes +PERMIT_PACKAGE_FTP = Yes +PERMIT_DISTFILES_CDROM =Yes +PERMIT_DISTFILES_FTP = Yes + +WANTLIB += c m pthread +USE_LIBTOOL = yes + +MASTER_SITES = http://spacehopper.org/mirrors/ +#MASTER_SITES = http://llvm.org/releases/${LLVM_V}/ + +MODULES = gcc4 +LIB_DEPENDS = elf::devel/libelf +BUILD_DEPENDS = :llvm-${LLVM_V}:devel/llvm \ + ::devel/bison +MODGCC4_LANGS = c c++ +MODGCC4_ARCHES =* + +USE_GMAKE = Yes +CONFIGURE_STYLE = gnu +TARGLIB = ${PREFIX}/lib/llvm-gcc-${LLVM_V} +CONFIG = ${MACHINE_ARCH}-unknown-openbsd${OSREV} +SUBST_VARS = CONFIG LLVM_V +CONFIGURE_SCRIPT = ../configure +CONFIGURE_ARGS = --verbose \ + --enable-llvm=${LOCALBASE} \ + --disable-nls \ + --with-system-zlib \ + --disable-libmudflap \ + --disable-libgomp \ + --disable-tls \ + --enable-threads=posix \ + --program-prefix=llvm- \ + --enable-languages=c,c++ \ + --with-libiconv-prefix=${LOCALBASE} \ + --libdir=${TARGLIB} \ + --with-gxx-include-dir=${TARGLIB}/include/c++ \ + --libexecdir=${TARGLIB} \ + --infodir=${PREFIX}/llvm-gcc +CONFIGURE_ARGS += --enable-cpp +CONFIGURE_ARGS += --with-gnu-as +CONFIGURE_ARGS += --with-gnu-ld +CONFIGURE_ARGS += ${CONFIGURE_SHARED} + +CONFIGURE_ARGS += --enable-checking + +MODGNU_CONFIG_GUESS_DIRS = ${WRKSRC} ${WRKSRC}/gcc + +WRKDIST = ${WRKDIR}/${DISTNAME:S/.source//} +WRKSRC = ${WRKDIST}/obj + +post-extract: + @mkdir -p ${WRKSRC}/gcc + +post-install: + @chown -R ${BINOWN}:${BINGRP} ${PREFIX}/lib/llvm-gcc-${LLVM_V}/gcc/${MACHINE_ARCH}-unknown-openbsd4.5/4.2.1/include + +.include diff --git a/lang/llvm-gcc4/distinfo b/lang/llvm-gcc4/distinfo new file mode 100644 index 00000000000..6b611b162be --- /dev/null +++ b/lang/llvm-gcc4/distinfo @@ -0,0 +1,5 @@ +MD5 (llvm-gcc-4.2-2.6pre20090621.source.tar.bz2) = IJvZoqVFsEIEbAy7hCGL7w== +RMD160 (llvm-gcc-4.2-2.6pre20090621.source.tar.bz2) = iGSvxfQ7YcORbn+Y07O01CN6+28= +SHA1 (llvm-gcc-4.2-2.6pre20090621.source.tar.bz2) = HmvqmdcbGQ2/cPWh/0H2XdkoupA= +SHA256 (llvm-gcc-4.2-2.6pre20090621.source.tar.bz2) = gdpsY4dy69YSjbH4shnJa+zSEqMhS91BooAIUeT6GZA= +SIZE (llvm-gcc-4.2-2.6pre20090621.source.tar.bz2) = 41507560 diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_Makefile_in b/lang/llvm-gcc4/patches/patch-boehm-gc_Makefile_in new file mode 100644 index 00000000000..c68a692062b --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_Makefile_in @@ -0,0 +1,30 @@ +$OpenBSD: patch-boehm-gc_Makefile_in,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/Makefile.in.orig Thu Nov 8 22:56:19 2007 ++++ boehm-gc/Makefile.in Mon Jun 22 00:53:45 2009 +@@ -83,6 +83,7 @@ CONFIG_CLEAN_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) + am__DEPENDENCIES_1 = + @POWERPC_DARWIN_TRUE@am__objects_1 = powerpc_darwin_mach_dep.lo ++@OPENBSD_THREADS_TRUE@am__objects_1 = openbsd_stop_world.lo + am_libgcjgc_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo checksums.lo \ + dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo \ + headers.lo malloc.lo mallocx.lo mark.lo mark_rts.lo misc.lo \ +@@ -191,6 +192,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + POWERPC_DARWIN_FALSE = @POWERPC_DARWIN_FALSE@ + POWERPC_DARWIN_TRUE = @POWERPC_DARWIN_TRUE@ ++OPENBSD_THREADS_FALSE = @OPENBSD_THREADS_FALSE@ ++OPENBSD_THREADS_TRUE = @OPENBSD_THREADS_TRUE@ + RANLIB = @RANLIB@ + SET_MAKE = @SET_MAKE@ + SHELL = @SHELL@ +@@ -259,8 +262,8 @@ AUTOMAKE_OPTIONS = cygnus subdir-objects + ACLOCAL_AMFLAGS = -I .. -I ../config + SUBDIRS = include + noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la +-@POWERPC_DARWIN_FALSE@asm_libgcjgc_sources = + @POWERPC_DARWIN_TRUE@asm_libgcjgc_sources = powerpc_darwin_mach_dep.s ++@OPENBSD_THREADS_TRUE@asm_libgcjgc_sources = openbsd_stop_world.c.s + libgcjgc_la_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \ + dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c \ + malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \ diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_configure b/lang/llvm-gcc4/patches/patch-boehm-gc_configure new file mode 100644 index 00000000000..a4a1fdaf9e1 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_configure @@ -0,0 +1,63 @@ +$OpenBSD: patch-boehm-gc_configure,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/configure.orig Mon May 19 10:28:07 2008 ++++ boehm-gc/configure Tue Apr 21 17:28:23 2009 +@@ -309,7 +309,7 @@ ac_includes_default="\ + # 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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical mkinstalldirs INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CFLAGS CXXFLAGS CCAS CCASFLAGS AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GC_CFLAGS LN_S LIBTOOL CXXCPP CPPFLAGS THREADLIBS POWERPC_DARWIN_TRUE POWERPC_DARWIN_FALSE extra_ldflags_libgc EXTRA_TEST_LIBS target_all CPLUSPLUS_TRUE CPLUSPLUS_FALSE AM_CPPFLAGS addobjs addincludes addlibs addtests CPP EGREP MY_CFLAGS toolexecdir toolexeclibdir LIBOBJS LTLIBOBJS' ++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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical mkinstalldirs INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CFLAGS CXXFLAGS CCAS CCASFLAGS AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GC_CFLAGS LN_S LIBTOOL CXXCPP CPPFLAGS THREADLIBS POWERPC_DARWIN_TRUE POWERPC_DARWIN_FALSE OPENBSD_THREADS_TRUE OPENBSD_THREADS_FALSE extra_ldflags_libgc EXTRA_TEST_LIBS target_all CPLUSPLUS_TRUE CPLUSPLUS_FALSE AM_CPPFLAGS addobjs addincludes addlibs addtests CPP EGREP MY_CFLAGS toolexecdir toolexeclibdir LIBOBJS LTLIBOBJS' + ac_subst_files='' + + # Initialize some variables set by options. +@@ -5451,6 +5451,15 @@ _ACEOF + { echo "$as_me:$LINENO: WARNING: \"Only HP-UX 11 POSIX threads are supported.\"" >&5 + echo "$as_me: WARNING: \"Only HP-UX 11 POSIX threads are supported.\"" >&2;} + ;; ++ *-*-openbsd*) ++ cat >>confdefs.h <<\_ACEOF ++#define GC_OPENBSD_THREADS 1 ++_ACEOF ++ ++ THREADDLLIBS=-pthread ++ INCLUDES="$INCLUDES -pthread" ++ openbsd_threads=true ++ ;; + *-*-kfreebsd*-gnu) + cat >>confdefs.h <<\_ACEOF + #define GC_FREEBSD_THREADS 1 +@@ -5630,7 +5639,15 @@ else + POWERPC_DARWIN_FALSE= + fi + ++if test x$openbsd_threads = xtrue; then ++ OPENBSD_THREADS_TRUE= ++ OPENBSD_THREADS_FALSE='#' ++else ++ OPENBSD_THREADS_TRUE='#' ++ OPENBSD_THREADS_FALSE= ++fi + ++ + # Darwin needs a few extra special tests to deal with variation in the + # system headers. + case "$host" in +@@ -6887,6 +6904,9 @@ _ACEOF + sparc-*-netbsd*) + machdep="sparc_netbsd_mach_dep.lo" + ;; ++ sparc*-*-openbsd*) ++ machdep="sparc_mach_dep.lo" ++ ;; + sparc-sun-solaris2.3) + machdep="sparc_mach_dep.lo" + +@@ -8482,6 +8502,8 @@ s,@CPPFLAGS@,$CPPFLAGS,;t t + s,@THREADLIBS@,$THREADLIBS,;t t + s,@POWERPC_DARWIN_TRUE@,$POWERPC_DARWIN_TRUE,;t t + s,@POWERPC_DARWIN_FALSE@,$POWERPC_DARWIN_FALSE,;t t ++s,@OPENBSD_THREADS_TRUE@,$OPENBSD_THREADS_TRUE,;t t ++s,@OPENBSD_THREADS_FALSE@,$OPENBSD_THREADS_FALSE,;t t + s,@extra_ldflags_libgc@,$extra_ldflags_libgc,;t t + s,@EXTRA_TEST_LIBS@,$EXTRA_TEST_LIBS,;t t + s,@target_all@,$target_all,;t t diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_dyn_load_c b/lang/llvm-gcc4/patches/patch-boehm-gc_dyn_load_c new file mode 100644 index 00000000000..27219b2973a --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_dyn_load_c @@ -0,0 +1,48 @@ +$OpenBSD: patch-boehm-gc_dyn_load_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/dyn_load.c.orig Mon Sep 18 14:45:08 2006 ++++ boehm-gc/dyn_load.c Thu Jan 29 17:20:51 2009 +@@ -57,6 +57,7 @@ + !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \ + !defined(RS6000) && !defined(SCO_ELF) && !defined(DGUX) && \ + !(defined(FREEBSD) && defined(__ELF__)) && \ ++ !(defined(OPENBSD) && (defined(__ELF__) || defined(M68K))) && \ + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \ + !defined(DARWIN) + --> We only know how to find data segments of dynamic libraries for the +@@ -87,9 +88,9 @@ + + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ + (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ ++ (defined(OPENBSD) && defined(__ELF__)) || \ + (defined(NETBSD) && defined(__ELF__)) || defined(HURD) + # include +-# include + # include + #endif + +@@ -103,7 +104,7 @@ + # define ElfW(type) Elf64_##type + # endif + # else +-# ifdef NETBSD ++# if defined(NETBSD) || defined(OPENBSD) + # if ELFSIZE == 32 + # define ElfW(type) Elf32_##type + # else +@@ -298,6 +299,7 @@ void GC_register_dynamic_libraries() + + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ + (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ ++ (defined(OPENBSD) && defined(__ELF__)) || \ + (defined(NETBSD) && defined(__ELF__)) || defined(HURD) + + +@@ -481,7 +483,7 @@ GC_bool GC_register_main_static_data() + /* This doesn't necessarily work in all cases, e.g. with preloaded + * dynamic libraries. */ + +-#if defined(NETBSD) ++#if defined(NETBSD) || defined(OPENBSD) + # include + /* for compatibility with 1.4.x */ + # ifndef DT_DEBUG diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_config_h_in b/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_config_h_in new file mode 100644 index 00000000000..cfc0a22469f --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_config_h_in @@ -0,0 +1,13 @@ +$OpenBSD: patch-boehm-gc_include_gc_config_h_in,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/include/gc_config.h.in.orig Thu Mar 12 12:32:48 2009 ++++ boehm-gc/include/gc_config.h.in Thu Mar 12 12:33:31 2009 +@@ -30,6 +30,9 @@ + /* support FreeBSD threads */ + #undef GC_FREEBSD_THREADS + ++/* support OpenBSD threads */ ++#undef GC_OPENBSD_THREADS ++ + /* include support for gcj */ + #undef GC_GCJ_SUPPORT + diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_config_macros_h b/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_config_macros_h new file mode 100644 index 00000000000..bc6d937a182 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_config_macros_h @@ -0,0 +1,24 @@ +$OpenBSD: patch-boehm-gc_include_gc_config_macros_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/include/gc_config_macros.h.orig Thu Mar 5 17:41:35 2009 ++++ boehm-gc/include/gc_config_macros.h Thu Mar 5 17:42:12 2009 +@@ -21,7 +21,8 @@ + defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \ + defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \ + defined(GC_AIX_THREADS) || \ +- (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) ++ (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \ ++ defined(GC_OPENBSD_THREADS) + # define GC_PTHREADS + # endif + +@@ -49,6 +50,10 @@ + # endif + # if defined(__APPLE__) && defined(__MACH__) && defined(__ppc__) + # define GC_DARWIN_THREADS ++# define GC_PTHREADS ++# endif ++# if !defined(GC_PTHREADS) && defined(__OpenBSD__) ++# define GC_OPENBSD_THREADS + # define GC_PTHREADS + # endif + # if !defined(GC_PTHREADS) && defined(__FreeBSD__) diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_pthread_redirects_h b/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_pthread_redirects_h new file mode 100644 index 00000000000..b663c41be1b --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_include_gc_pthread_redirects_h @@ -0,0 +1,25 @@ +$OpenBSD: patch-boehm-gc_include_gc_pthread_redirects_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/include/gc_pthread_redirects.h.orig Thu Mar 12 17:49:44 2009 ++++ boehm-gc/include/gc_pthread_redirects.h Thu Mar 12 17:56:49 2009 +@@ -52,7 +52,7 @@ + int GC_pthread_create(pthread_t *new_thread, + const pthread_attr_t *attr, + void *(*start_routine)(void *), void *arg); +-#ifndef GC_DARWIN_THREADS ++#if !defined(GC_DARWIN_THREADS) && !defined(GC_OPENBSD_THREADS) + int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset); + #endif + int GC_pthread_join(pthread_t thread, void **retval); +@@ -72,8 +72,11 @@ + # define pthread_join GC_pthread_join + # define pthread_detach GC_pthread_detach + +-#ifndef GC_DARWIN_THREADS ++#if !defined(GC_DARWIN_THREADS) && !defined(GC_OPENBSD_THREADS) + # define pthread_sigmask GC_pthread_sigmask ++#endif ++ ++#ifndef GC_DARWIN_THREADS + # define dlopen GC_dlopen + #endif + diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_include_private_gcconfig_h b/lang/llvm-gcc4/patches/patch-boehm-gc_include_private_gcconfig_h new file mode 100644 index 00000000000..be687ddc732 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_include_private_gcconfig_h @@ -0,0 +1,356 @@ +$OpenBSD: patch-boehm-gc_include_private_gcconfig_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/include/private/gcconfig.h.orig Thu Nov 8 22:56:19 2007 ++++ boehm-gc/include/private/gcconfig.h Mon Jun 22 00:53:47 2009 +@@ -62,7 +62,7 @@ + /* Determine the machine type: */ + # if defined(__arm__) || defined(__thumb__) + # define ARM32 +-# if !defined(LINUX) && !defined(NETBSD) ++# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD) + # define NOSYS + # define mach_type_known + # endif +@@ -77,14 +77,18 @@ + # define HP + # define mach_type_known + # endif +-# if defined(OPENBSD) && defined(m68k) +-# define M68K +-# define mach_type_known +-# endif + # if defined(OPENBSD) && defined(__sparc__) + # define SPARC + # define mach_type_known + # endif ++# if defined(OPENBSD) && defined(__arm__) ++# define ARM32 ++# define mach_type_known ++# endif ++# if defined(OPENBSD) && defined(__sh__) ++# define SH ++# define mach_type_known ++# endif + # if defined(NETBSD) && (defined(m68k) || defined(__m68k__)) + # define M68K + # define mach_type_known +@@ -101,7 +105,7 @@ + # define SH + # define mach_type_known + # endif +-# if defined(vax) ++# if defined(vax) || defined(__vax__) + # define VAX + # ifdef ultrix + # define ULTRIX +@@ -119,7 +123,7 @@ + # if defined(nec_ews) || defined(_nec_ews) + # define EWS4800 + # endif +-# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD) ++# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD) && !defined(OPENBSD) + # if defined(ultrix) || defined(__ultrix) + # define ULTRIX + # else +@@ -205,7 +209,7 @@ + # if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \ + || defined(hppa) || defined(__hppa__) + # define HP_PA +-# if !defined(LINUX) && !defined(HPUX) ++# if !defined(LINUX) && !defined(HPUX) && !defined(OPENBSD) + # define HPUX + # endif + # define mach_type_known +@@ -226,6 +230,10 @@ + # define I386 + # define mach_type_known + # endif ++# if defined(OPENBSD) && defined(__amd64__) ++# define X86_64 ++# define mach_type_known ++# endif + # if defined(LINUX) && defined(__x86_64__) + # define X86_64 + # define mach_type_known +@@ -297,6 +305,11 @@ + # define MACOS + # define mach_type_known + # endif ++# if defined(__OpenBSD__) && (defined(__powerpc__)) ++# define POWERPC ++# define OPENBSD ++# define mach_type_known ++# endif + # if defined(macosx) || (defined(__APPLE__) && defined(__MACH__)) + # define DARWIN + # if defined(__ppc__) || defined(__ppc64__) +@@ -646,18 +659,6 @@ + # ifdef M68K + # define MACH_TYPE "M68K" + # define ALIGNMENT 2 +-# ifdef OPENBSD +-# define OS_TYPE "OPENBSD" +-# define HEURISTIC2 +-# ifdef __ELF__ +-# define DATASTART GC_data_start +-# define DYNAMIC_LOADING +-# else +- extern char etext[]; +-# define DATASTART ((ptr_t)(etext)) +-# endif +-# define USE_GENERIC_PUSH_REGS +-# endif + # ifdef NETBSD + # define OS_TYPE "NETBSD" + # define HEURISTIC2 +@@ -831,6 +832,24 @@ + should be looked into some more */ + # define NO_PTHREAD_TRYLOCK + # endif ++# ifdef OPENBSD ++# define OS_TYPE "OPENBSD" ++# define ALIGNMENT 4 ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 268 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)(__data_start)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON ++# endif + # ifdef FREEBSD + # define ALIGNMENT 4 + # define OS_TYPE "FREEBSD" +@@ -989,9 +1008,20 @@ + # endif + # ifdef OPENBSD + # define OS_TYPE "OPENBSD" +-# define STACKBOTTOM ((ptr_t) 0xf8000000) +- extern int etext[]; +-# define DATASTART ((ptr_t)(etext)) ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 232 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)(__data_start)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON + # endif + # ifdef NETBSD + # define OS_TYPE "NETBSD" +@@ -1245,6 +1275,20 @@ + # endif + # ifdef OPENBSD + # define OS_TYPE "OPENBSD" ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 176 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)(__data_start)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON + # endif + # ifdef FREEBSD + # define OS_TYPE "FREEBSD" +@@ -1280,7 +1324,7 @@ + # ifdef BSDI + # define OS_TYPE "BSDI" + # endif +-# if defined(OPENBSD) || defined(NETBSD) \ ++# if defined(NETBSD) \ + || defined(THREE86BSD) || defined(BSDI) + # define HEURISTIC2 + extern char etext[]; +@@ -1458,8 +1502,25 @@ + # define STACKBOTTOM ((ptr_t) 0x7ffff000) + # endif /* _ELF_ */ + # endif ++# ifdef OPENBSD ++# define OS_TYPE "OPENBSD" ++# define ALIGNMENT 4 ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 808 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int _fdata[]; ++# define DATASTART ((ptr_t)(_fdata)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON ++# endif + # endif +- + # ifdef RS6000 + # define MACH_TYPE "RS6000" + # ifdef ALIGNMENT +@@ -1505,7 +1566,7 @@ + # define ALIGNMENT 4 + # define ALIGN_DOUBLE + # endif +-# if !defined(GC_HPUX_THREADS) && !defined(GC_LINUX_THREADS) ++# if !defined(GC_HPUX_THREADS) && !defined(GC_LINUX_THREADS) && !defined(OPENBSD) + # ifndef LINUX /* For now. */ + # define MPROTECT_VDB + # endif +@@ -1557,6 +1618,23 @@ + extern int _end[]; + # define DATAEND (&_end) + # endif /* LINUX */ ++# ifdef OPENBSD ++# define OS_TYPE "OPENBSD" ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 520 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)(__data_start)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON ++# endif + # endif /* HP_PA */ + + # ifdef ALPHA +@@ -1581,15 +1659,21 @@ + # endif + # ifdef OPENBSD + # define OS_TYPE "OPENBSD" +-# define HEURISTIC2 +-# ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */ +-# define DATASTART GC_data_start +-# define ELFCLASS32 32 +-# define ELFCLASS64 64 +-# define ELF_CLASS ELFCLASS64 +-# else /* ECOFF, until OpenBSD/Alpha 2.7 */ +-# define DATASTART ((ptr_t) 0x140000000) +-# endif ++# define ELF_CLASS ELFCLASS64 ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 816 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)(__data_start)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON + # endif + # ifdef FREEBSD + # define OS_TYPE "FREEBSD" +@@ -1769,6 +1853,7 @@ + # ifdef CX_UX + # define OS_TYPE "CX_UX" + # define DATASTART ((((word)etext + 0x3fffff) & ~0x3fffff) + 0x10000) ++# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */ + # endif + # ifdef DGUX + # define OS_TYPE "DGUX" +@@ -1879,6 +1964,24 @@ + # define OS_TYPE "MSWINCE" + # define DATAEND /* not needed */ + # endif ++# ifdef OPENBSD ++# define ALIGNMENT 4 ++# define OS_TYPE "OPENBSD" ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 176 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)(__data_start)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON ++# endif + # ifdef NOSYS + /* __data_start is usually defined in the target linker script. */ + extern int __data_start[]; +@@ -1926,6 +2029,23 @@ + # define USE_GENERIC_PUSH_REGS + # define DYNAMIC_LOADING + # endif ++# ifdef OPENBSD ++# define OS_TYPE "OPENBSD" ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 332 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)(__data_start)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON ++# endif + # endif + + # ifdef SH4 +@@ -1958,6 +2078,24 @@ + # define CPP_WORDSZ 64 + # ifndef HBLKSIZE + # define HBLKSIZE 4096 ++# endif ++# ifdef OPENBSD ++# define OS_TYPE "OPENBSD" ++# define ELF_CLASS ELFCLASS64 ++# ifdef GC_OPENBSD_THREADS ++# define UTHREAD_SP_OFFSET 400 ++# else ++# include ++# include ++# define STACKBOTTOM USRSTACK ++# endif ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)(__data_start)) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# define DYNAMIC_LOADING ++# define USE_MMAP ++# define USE_MMAP_ANON + # endif + # define CACHE_LINE_SIZE 64 + # define USE_GENERIC_PUSH_REGS diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_include_private_openbsd_stop_world_h b/lang/llvm-gcc4/patches/patch-boehm-gc_include_private_openbsd_stop_world_h new file mode 100644 index 00000000000..93ae1b0b409 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_include_private_openbsd_stop_world_h @@ -0,0 +1,16 @@ +$OpenBSD: patch-boehm-gc_include_private_openbsd_stop_world_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/include/private/openbsd_stop_world.h.orig Thu Mar 5 17:44:00 2009 ++++ boehm-gc/include/private/openbsd_stop_world.h Thu Mar 5 17:44:00 2009 +@@ -0,0 +1,12 @@ ++#ifndef GC_OPENBSD_STOP_WORLD_H ++#define GC_OPENBSD_STOP_WORLD_H ++ ++#if !defined(GC_OPENBSD_THREADS) ++#error openbsd_stop_world.h included without GC_OPENBSD_THREADS defined ++#endif ++ ++struct thread_stop_info { ++ ptr_t stack_ptr; /* Valid only when stopped. */ ++}; ++ ++#endif diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_mach_dep_c b/lang/llvm-gcc4/patches/patch-boehm-gc_mach_dep_c new file mode 100644 index 00000000000..90c2542a337 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_mach_dep_c @@ -0,0 +1,21 @@ +$OpenBSD: patch-boehm-gc_mach_dep_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/mach_dep.c.orig Mon Mar 16 17:49:33 2009 ++++ boehm-gc/mach_dep.c Mon Mar 16 17:51:42 2009 +@@ -27,7 +27,7 @@ + # endif + # endif + +-#if defined(RS6000) || defined(POWERPC) ++#if (defined(RS6000) || defined(POWERPC)) && !defined(OPENBSD) + # include + #endif + +@@ -417,7 +417,7 @@ ptr_t arg; + /* the stack. */ + __builtin_unwind_init(); + # else /* !HAVE_BUILTIN_UNWIND_INIT */ +-# if defined(RS6000) || defined(POWERPC) ++# if (defined(RS6000) || defined(POWERPC)) && !defined(OPENBSD) + /* FIXME: RS6000 means AIX. */ + /* This should probably be used in all Posix/non-gcc */ + /* settings. We defer that change to minimize risk. */ diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_misc_c b/lang/llvm-gcc4/patches/patch-boehm-gc_misc_c new file mode 100644 index 00000000000..b9f2e0e58d9 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_misc_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-boehm-gc_misc_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/misc.c.orig Thu Jan 29 17:29:56 2009 ++++ boehm-gc/misc.c Thu Jan 29 17:30:08 2009 +@@ -660,7 +660,7 @@ void GC_init_inner() + # if defined(SEARCH_FOR_DATA_START) + GC_init_linux_data_start(); + # endif +-# if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__) ++# if defined(NETBSD) && defined(__ELF__) + GC_init_netbsd_elf(); + # endif + # if defined(GC_PTHREADS) || defined(GC_SOLARIS_THREADS) \ diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_openbsd_stop_world_c b/lang/llvm-gcc4/patches/patch-boehm-gc_openbsd_stop_world_c new file mode 100644 index 00000000000..7adf22b1410 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_openbsd_stop_world_c @@ -0,0 +1,188 @@ +$OpenBSD: patch-boehm-gc_openbsd_stop_world_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/openbsd_stop_world.c.orig Thu Mar 12 15:07:24 2009 ++++ boehm-gc/openbsd_stop_world.c Thu Mar 12 18:07:50 2009 +@@ -0,0 +1,184 @@ ++#include "private/pthread_support.h" ++ ++/* derived from pthread_stop_world.c */ ++ ++# if defined(GC_OPENBSD_THREADS) ++ ++/* We hold allocation lock. Should do exactly the right thing if the */ ++/* world is stopped. Should not fail if it isn't. */ ++void GC_push_all_stacks() ++{ ++ GC_bool found_me = FALSE; ++ size_t nthreads = 0; ++ int i; ++ GC_thread p; ++ ptr_t lo, hi; ++ pthread_t me = pthread_self(); ++ ++ if (!GC_thr_initialized) GC_thr_init(); ++# if DEBUG_THREADS ++ GC_printf1("Pushing stacks from thread 0x%x\n", (unsigned) me); ++# endif ++ for (i = 0; i < THREAD_TABLE_SZ; i++) { ++ for (p = GC_threads[i]; p != 0; p = p -> next) { ++ if (p -> flags & FINISHED) continue; ++ ++nthreads; ++ if (pthread_equal(p -> id, me)) { ++# ifdef SPARC ++ lo = (ptr_t)GC_save_regs_in_stack(); ++# else ++ lo = GC_approx_sp(); ++# endif ++ found_me = TRUE; ++ } else { ++ lo = p -> stop_info.stack_ptr; ++ } ++ if ((p -> flags & MAIN_THREAD) == 0) { ++ hi = p -> stack_end; ++ } else { ++ /* The original stack. */ ++ hi = GC_stackbottom; ++ } ++# if DEBUG_THREADS ++ GC_printf3("Stack for thread 0x%x = [%p,%p)\n", ++ (unsigned)(p -> id), lo, hi); ++# endif ++ if (0 == lo) ABORT("GC_push_all_stacks: sp not set!\n"); ++# ifdef STACK_GROWS_UP ++ /* We got them backwards! */ ++ GC_push_all_stack(hi, lo); ++# else ++ GC_push_all_stack(lo, hi); ++# endif ++ } ++ } ++ if (GC_print_stats) { ++ GC_printf1("Pushed %d thread stacks\n", nthreads); ++ } ++ if (!found_me && !GC_in_thread_creation) ++ ABORT("Collecting from unknown thread."); ++} ++ ++/* We hold the allocation lock. Suspend all threads that might */ ++/* still be running. */ ++void GC_suspend_all() ++{ ++ int i; ++ GC_thread p; ++ int result; ++ pthread_t my_thread = pthread_self(); ++ ++ for (i = 0; i < THREAD_TABLE_SZ; i++) { ++ for (p = GC_threads[i]; p != 0; p = p -> next) { ++ if (!pthread_equal(p -> id, my_thread)) { ++ if (p -> flags & FINISHED) continue; ++ if (p -> thread_blocked) /* Will wait */ continue; ++# if DEBUG_THREADS ++ GC_printf1("Suspending thread 0x%x\n", ++ (unsigned)(p -> id)); ++# endif ++ ++ if (pthread_suspend_np(p -> id) != 0) ++ ABORT("pthread_suspend_np failed"); ++ ++ /* ++ * This will only work for userland pthreads. It will ++ * fail badly on rthreads. Perhaps we should consider ++ * a pthread_sp_np() function that returns the stack ++ * pointer for a suspended thread and implement in ++ * both pthreads and rthreads. ++ */ ++ p -> stop_info.stack_ptr = *(ptr_t*)((char *)p -> id + UTHREAD_SP_OFFSET); ++ } ++ } ++ } ++} ++ ++void GC_stop_world() ++{ ++ int i; ++ ++ GC_ASSERT(I_HOLD_LOCK()); ++# if DEBUG_THREADS ++ GC_printf1("Stopping the world from 0x%x\n", (unsigned)pthread_self()); ++# endif ++ ++ /* Make sure all free list construction has stopped before we start. */ ++ /* No new construction can start, since free list construction is */ ++ /* required to acquire and release the GC lock before it starts, */ ++ /* and we have the lock. */ ++# ifdef PARALLEL_MARK ++ GC_acquire_mark_lock(); ++ GC_ASSERT(GC_fl_builder_count == 0); ++ /* We should have previously waited for it to become zero. */ ++# endif /* PARALLEL_MARK */ ++ ++ GC_suspend_all(); ++ ++# ifdef PARALLEL_MARK ++ GC_release_mark_lock(); ++# endif ++ #if DEBUG_THREADS ++ GC_printf1("World stopped from 0x%x\n", (unsigned)pthread_self()); ++ #endif ++} ++ ++/* Caller holds allocation lock, and has held it continuously since */ ++/* the world stopped. */ ++void GC_start_world() ++{ ++ pthread_t my_thread = pthread_self(); ++ register int i; ++ register GC_thread p; ++ register int result; ++ ++# if DEBUG_THREADS ++ GC_printf0("World starting\n"); ++# endif ++ ++ for (i = 0; i < THREAD_TABLE_SZ; i++) { ++ for (p = GC_threads[i]; p != 0; p = p -> next) { ++ if (!pthread_equal(p -> id, my_thread)) { ++ if (p -> flags & FINISHED) continue; ++ if (p -> thread_blocked) continue; ++ #if DEBUG_THREADS ++ GC_printf1("Resuming thread 0x%x\n", ++ (unsigned)(p -> id)); ++ #endif ++ ++ if (pthread_resume_np(p -> id) != 0) ++ ABORT("pthread_kill failed"); ++ } ++ } ++ } ++# if DEBUG_THREADS ++ GC_printf0("World started\n"); ++# endif ++} ++ ++void GC_stop_init() { ++} ++ ++void GC_suspend_thread(pthread_t thread) { ++ if (thread == pthread_self()) { ++ ABORT("attempting to suspend self"); ++ } else { ++ GC_thread t = GC_lookup_thread(thread); ++ if (t == NULL) ++ ABORT("attempting to suspend unknown thread"); ++ ++ if (pthread_suspend_np(t -> id) != 0) ++ ABORT("pthread_suspend_np failed"); ++ } ++} ++ ++void GC_resume_thread(pthread_t thread) { ++ GC_thread t = GC_lookup_thread(thread); ++ if (t == NULL) ++ ABORT("attempting to resume unknown thread"); ++ ++ if (pthread_resume_np(t -> id) != 0) ++ ABORT("pthread_resume_np failed"); ++} ++ ++#endif diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_os_dep_c b/lang/llvm-gcc4/patches/patch-boehm-gc_os_dep_c new file mode 100644 index 00000000000..8272dcc05c3 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_os_dep_c @@ -0,0 +1,190 @@ +$OpenBSD: patch-boehm-gc_os_dep_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/os_dep.c.orig Tue Jan 16 14:44:17 2007 ++++ boehm-gc/os_dep.c Thu Mar 5 17:11:21 2009 +@@ -380,7 +380,7 @@ static void *tiny_sbrk(ptrdiff_t increment) + #define sbrk tiny_sbrk + # endif /* ECOS */ + +-#if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__) ++#if defined(NETBSD) && defined(__ELF__) + ptr_t GC_data_start; + + void GC_init_netbsd_elf() +@@ -393,6 +393,103 @@ static void *tiny_sbrk(ptrdiff_t increment) + } + #endif + ++#if defined(OPENBSD) ++ static struct sigaction old_segv_act; ++ sigjmp_buf GC_jmp_buf_openbsd; ++ ++# if defined(GC_OPENBSD_THREADS) ++# include ++ sigset_t __syscall(quad_t, ...); ++# endif ++ ++ /* ++ * Dont use GC_find_limit() because siglongjmp out of the ++ * signal handler by-passes our userland pthreads lib, leaving ++ * SIGSEGV and SIGPROF masked. Instead use this custom one ++ * that works-around the issues. ++ */ ++ ++ /*ARGSUSED*/ ++ void GC_fault_handler_openbsd(int sig) ++ { ++ siglongjmp(GC_jmp_buf_openbsd, 1); ++ } ++ ++ /* Return the first nonaddressible location > p or bound */ ++ /* Requires allocation lock. */ ++ ptr_t GC_find_limit_openbsd(ptr_t p, ptr_t bound) ++ { ++ static volatile ptr_t result; ++ /* Safer if static, since otherwise it may not be */ ++ /* preserved across the longjmp. Can safely be */ ++ /* static since it's only called with the */ ++ /* allocation lock held. */ ++ struct sigaction act; ++ size_t pgsz = (size_t)sysconf(_SC_PAGESIZE); ++ ++ GC_ASSERT(I_HOLD_LOCK()); ++ ++ act.sa_handler = GC_fault_handler_openbsd; ++ sigemptyset(&act.sa_mask); ++ act.sa_flags = SA_NODEFER | SA_RESTART; ++ sigaction(SIGSEGV, &act, &old_segv_act); ++ ++ if (sigsetjmp(GC_jmp_buf_openbsd, 1) == 0) { ++ result = (ptr_t)(((word)(p)) & ~(pgsz-1)); ++ for (;;) { ++ result += pgsz; ++ if (result >= bound) { ++ result = bound; ++ break; ++ } ++ GC_noop1((word)(*result)); ++ } ++ } ++ ++# if defined(GC_OPENBSD_THREADS) ++ /* due to the siglongjump we need to manually unmask SIGPROF */ ++ __syscall(SYS_sigprocmask, SIG_UNBLOCK, sigmask(SIGPROF)); ++# endif ++ ++ sigaction(SIGSEGV, &old_segv_act, 0); ++ ++ return(result); ++ } ++ ++ /* Return first addressable location > p or bound */ ++ /* Requires allocation lock. */ ++ ptr_t GC_skip_hole_openbsd(ptr_t p, ptr_t bound) ++ { ++ static volatile ptr_t result; ++ struct sigaction act; ++ size_t pgsz = (size_t)sysconf(_SC_PAGESIZE); ++ static volatile int firstpass; ++ ++ GC_ASSERT(I_HOLD_LOCK()); ++ ++ act.sa_handler = GC_fault_handler_openbsd; ++ sigemptyset(&act.sa_mask); ++ act.sa_flags = SA_NODEFER | SA_RESTART; ++ sigaction(SIGSEGV, &act, &old_segv_act); ++ ++ firstpass = 1; ++ result = (ptr_t)(((word)(p)) & ~(pgsz-1)); ++ if (sigsetjmp(GC_jmp_buf_openbsd, 1) != 0 || firstpass) { ++ firstpass = 0; ++ result += pgsz; ++ if (result >= bound) { ++ result = bound; ++ } else ++ GC_noop1((word)(*result)); ++ } ++ ++ sigaction(SIGSEGV, &old_segv_act, 0); ++ ++ return(result); ++ } ++#endif ++ ++ + # ifdef OS2 + + # include +@@ -1007,7 +1104,8 @@ ptr_t GC_get_stack_base() + #endif /* FREEBSD_STACKBOTTOM */ + + #if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \ +- && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) ++ && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \ ++ && !defined(GC_OPENBSD_THREADS) + + ptr_t GC_get_stack_base() + { +@@ -1067,6 +1165,23 @@ ptr_t GC_get_stack_base() + + # endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !NOSYS, !ECOS */ + ++#if defined(GC_OPENBSD_THREADS) ++ ++/* Find the stack using pthread_stackseg_np() */ ++ ++# include ++# include ++# include ++ ++#define HAVE_GET_STACK_BASE ++ ++ptr_t GC_get_stack_base() ++{ ++ stack_t stack; ++ pthread_stackseg_np(pthread_self(), &stack); ++ return stack.ss_sp; ++} ++#endif /* GC_OPENBSD_THREADS */ + /* + * Register static data segment(s) as roots. + * If more data segments are added later then they need to be registered +@@ -1434,6 +1549,31 @@ int * etext_addr; + + #else /* !OS2 && !Windows && !AMIGA */ + ++#if defined(OPENBSD) ++ ++/* ++ * Depending on arch alignment there can be multiple holes ++ * between DATASTART & DATAEND. Scan from DATASTART - DATAEND ++ * and register each region. ++ */ ++void GC_register_data_segments(void) ++{ ++ ptr_t region_start, region_end; ++ ++ region_start = DATASTART; ++ ++ for(;;) { ++ region_end = GC_find_limit_openbsd(region_start, DATAEND); ++ GC_add_roots_inner(region_start, region_end, FALSE); ++ if (region_end < DATAEND) ++ region_start = GC_skip_hole_openbsd(region_end, DATAEND); ++ else ++ break; ++ } ++} ++ ++# else /* !OS2 && !Windows && !AMIGA && !OPENBSD */ ++ + void GC_register_data_segments() + { + # if !defined(PCR) && !defined(SRC_M3) && !defined(MACOS) +@@ -1491,6 +1631,7 @@ void GC_register_data_segments() + /* change. */ + } + ++# endif /* ! OPENBSD */ + # endif /* ! AMIGA */ + # endif /* ! MSWIN32 && ! MSWINCE*/ + # endif /* ! OS2 */ diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_pthread_stop_world_c b/lang/llvm-gcc4/patches/patch-boehm-gc_pthread_stop_world_c new file mode 100644 index 00000000000..81bd69d7462 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_pthread_stop_world_c @@ -0,0 +1,13 @@ +$OpenBSD: patch-boehm-gc_pthread_stop_world_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/pthread_stop_world.c.orig Thu Mar 5 17:50:41 2009 ++++ boehm-gc/pthread_stop_world.c Thu Mar 5 17:51:12 2009 +@@ -1,7 +1,8 @@ + #include "private/pthread_support.h" + + #if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \ +- && !defined(GC_WIN32_THREADS) && !defined(GC_DARWIN_THREADS) ++ && !defined(GC_WIN32_THREADS) && !defined(GC_DARWIN_THREADS) \ ++ && !defined(GC_OPENBSD_THREADS) + + #include + #include diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_pthread_support_c b/lang/llvm-gcc4/patches/patch-boehm-gc_pthread_support_c new file mode 100644 index 00000000000..ee9613b5dd3 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_pthread_support_c @@ -0,0 +1,22 @@ +$OpenBSD: patch-boehm-gc_pthread_support_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/pthread_support.c.orig Thu Nov 8 22:56:19 2007 ++++ boehm-gc/pthread_support.c Mon Jun 22 00:53:48 2009 +@@ -891,6 +891,9 @@ void GC_thr_init() + GC_nprocs = sysconf(_SC_NPROC_ONLN); + if (GC_nprocs <= 0) GC_nprocs = 1; + # endif ++# if defined(GC_OPENBSD_THREADS) ++ GC_nprocs = 1; ++# endif + # if defined(GC_DARWIN_THREADS) || defined(GC_FREEBSD_THREADS) + int ncpus = 1; + size_t len = sizeof(ncpus); +@@ -965,7 +968,7 @@ void GC_init_parallel() + } + + +-#if !defined(GC_DARWIN_THREADS) ++#if !defined(GC_DARWIN_THREADS) && !defined(GC_OPENBSD_THREADS) + int WRAP_FUNC(pthread_sigmask)(int how, const sigset_t *set, sigset_t *oset) + { + sigset_t fudged_set; diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_tests_test_c b/lang/llvm-gcc4/patches/patch-boehm-gc_tests_test_c new file mode 100644 index 00000000000..b54b00d4a1f --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_tests_test_c @@ -0,0 +1,13 @@ +$OpenBSD: patch-boehm-gc_tests_test_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/tests/test.c.orig Thu Mar 5 17:57:38 2009 ++++ boehm-gc/tests/test.c Thu Mar 5 17:58:02 2009 +@@ -1799,7 +1799,8 @@ main() + + pthread_attr_init(&attr); + # if defined(GC_IRIX_THREADS) || defined(GC_FREEBSD_THREADS) \ +- || defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS) ++ || defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS) \ ++ || defined(GC_OPENBSD_THREADS) + pthread_attr_setstacksize(&attr, 1000000); + # endif + n_tests = 0; diff --git a/lang/llvm-gcc4/patches/patch-boehm-gc_threadlibs_c b/lang/llvm-gcc4/patches/patch-boehm-gc_threadlibs_c new file mode 100644 index 00000000000..9204ad5c3ed --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-boehm-gc_threadlibs_c @@ -0,0 +1,13 @@ +$OpenBSD: patch-boehm-gc_threadlibs_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- boehm-gc/threadlibs.c.orig Thu Mar 5 17:58:11 2009 ++++ boehm-gc/threadlibs.c Thu Mar 5 17:58:54 2009 +@@ -15,6 +15,9 @@ int main() + || defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS) + printf("-lpthread\n"); + # endif ++# if defined(GC_OPENBSD_THREADS) ++ printf("-pthread\n"); ++# endif + # if defined(GC_FREEBSD_THREADS) + # if (__FREEBSD_version >= 500000) + printf("-lpthread\n"); diff --git a/lang/llvm-gcc4/patches/patch-configure b/lang/llvm-gcc4/patches/patch-configure new file mode 100644 index 00000000000..d16bae49a38 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-configure @@ -0,0 +1,12 @@ +$OpenBSD: patch-configure,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- configure.orig Wed May 13 14:10:04 2009 ++++ configure Mon Jun 22 00:53:49 2009 +@@ -1266,6 +1266,8 @@ case "${target}" in + skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib" + noconfigdirs="$noconfigdirs target-libgloss" + ;; ++ *-*-openbsd*) ++ ;; + *-*-netbsd*) + # Skip some stuff on all NetBSD configurations. + noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss" diff --git a/lang/llvm-gcc4/patches/patch-fixincludes_Makefile_in b/lang/llvm-gcc4/patches/patch-fixincludes_Makefile_in new file mode 100644 index 00000000000..8c290d368cc --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-fixincludes_Makefile_in @@ -0,0 +1,14 @@ +$OpenBSD: patch-fixincludes_Makefile_in,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- fixincludes/Makefile.in.orig Wed Oct 11 01:48:09 2006 ++++ fixincludes/Makefile.in Sun Mar 18 23:58:41 2007 +@@ -169,8 +169,8 @@ $(srcdir)/aclocal.m4: @MAINT@ $(srcdir)/../gcc/aclocal + cp $(srcdir)/../gcc/aclocal.m4 . + + check : all +- autogen -T $(srcdir)/check.tpl $(srcdir)/inclhack.def +- $(SHELL) ./check.sh $(srcdir)/tests/base ++ -autogen -T $(srcdir)/check.tpl $(srcdir)/inclhack.def ++ -$(SHELL) ./check.sh $(srcdir)/tests/base + @rm -f ./check.sh + + install : all diff --git a/lang/llvm-gcc4/patches/patch-gcc_ada_Makefile_in b/lang/llvm-gcc4/patches/patch-gcc_ada_Makefile_in new file mode 100644 index 00000000000..efd8e226d8b --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_ada_Makefile_in @@ -0,0 +1,18 @@ +$OpenBSD: patch-gcc_ada_Makefile_in,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/ada/Makefile.in.orig Fri Sep 7 13:14:39 2007 ++++ gcc/ada/Makefile.in Mon Jun 22 00:56:18 2009 +@@ -117,12 +117,12 @@ TEXI2DVI = texi2dvi + TEXI2PDF = texi2pdf + GNATBIND = $(STAGE_PREFIX)gnatbind + GNATBIND_FLAGS = -static -x +-ADA_CFLAGS = ++ADA_CFLAGS = -O1 + ADAFLAGS = -W -Wall -gnatpg -gnata + SOME_ADAFLAGS =-gnata + FORCE_DEBUG_ADAFLAGS = -g + GNATLIBFLAGS = -gnatpg -nostdinc +-GNATLIBCFLAGS = -g -O2 ++GNATLIBCFLAGS = -g -O1 + # LLVM local begin + GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \ + -DIN_RTS -DIN_TARGET_LIBS diff --git a/lang/llvm-gcc4/patches/patch-gcc_ada_adaint_c b/lang/llvm-gcc4/patches/patch-gcc_ada_adaint_c new file mode 100644 index 00000000000..06e8cc65c63 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_ada_adaint_c @@ -0,0 +1,21 @@ +$OpenBSD: patch-gcc_ada_adaint_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/ada/adaint.c.orig Wed Feb 15 10:30:39 2006 ++++ gcc/ada/adaint.c Sun Mar 18 23:58:42 2007 +@@ -794,7 +794,7 @@ __gnat_open_new_temp (char *path, int fmode) + + strcpy (path, "GNAT-XXXXXX"); + +-#if (defined (__FreeBSD__) || defined (linux)) && !defined (__vxworks) ++#if (defined (__FreeBSD__) || defined (__OpenBSD__) || defined (linux)) && !defined (__vxworks) + return mkstemp (path); + #elif defined (__Lynx__) + mktemp (path); +@@ -884,7 +884,7 @@ __gnat_tmp_name (char *tmp_filename) + free (pname); + } + +-#elif defined (linux) || defined (__FreeBSD__) ++#elif defined (linux) || defined (__FreeBSD__) || defined(__OpenBSD__) + #define MAX_SAFE_PATH 1000 + char *tmpdir = getenv ("TMPDIR"); + diff --git a/lang/llvm-gcc4/patches/patch-gcc_ada_env_c b/lang/llvm-gcc4/patches/patch-gcc_ada_env_c new file mode 100644 index 00000000000..577cf11ace6 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_ada_env_c @@ -0,0 +1,13 @@ +$OpenBSD: patch-gcc_ada_env_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/ada/env.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/ada/env.c Mon Jun 22 00:57:07 2009 +@@ -288,7 +288,8 @@ void __gnat_clearenv (void) { + index++; + } + #elif defined (__MINGW32__) || defined (__FreeBSD__) || defined (__APPLE__) \ +- || (defined (__vxworks) && defined (__RTP__)) || defined (__CYGWIN__) ++ || (defined (__vxworks) && defined (__RTP__)) || defined (__CYGWIN__) \ ++ || defined(__OpenBSD__) + /* On Windows, FreeBSD and MacOS there is no function to clean all the + environment but there is a "clean" way to unset a variable. So go + through the environ table and call __gnat_unsetenv on all entries */ diff --git a/lang/llvm-gcc4/patches/patch-gcc_ada_gnatchop_adb b/lang/llvm-gcc4/patches/patch-gcc_ada_gnatchop_adb new file mode 100644 index 00000000000..fa4b389b01d --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_ada_gnatchop_adb @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_ada_gnatchop_adb,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/ada/gnatchop.adb.orig Thu Feb 10 14:49:13 2005 ++++ gcc/ada/gnatchop.adb Tue Feb 22 19:38:40 2005 +@@ -45,7 +45,7 @@ procedure Gnatchop is + Config_File_Name : constant String_Access := new String'("gnat.adc"); + -- The name of the file holding the GNAT configuration pragmas + +- Gcc : String_Access := new String'("gcc"); ++ Gcc : String_Access := new String'("egcc"); + -- May be modified by switch --GCC= + + Gcc_Set : Boolean := False; diff --git a/lang/llvm-gcc4/patches/patch-gcc_ada_gnatlink_adb b/lang/llvm-gcc4/patches/patch-gcc_ada_gnatlink_adb new file mode 100644 index 00000000000..7db99152f52 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_ada_gnatlink_adb @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_ada_gnatlink_adb,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/ada/gnatlink.adb.orig Wed Feb 15 10:35:23 2006 ++++ gcc/ada/gnatlink.adb Sun Jul 23 11:24:01 2006 +@@ -131,7 +131,7 @@ procedure Gnatlink is + -- This table collects the arguments to be passed to compile the binder + -- generated file. + +- Gcc : String_Access := Program_Name ("gcc"); ++ Gcc : String_Access := Program_Name ("egcc"); + + Read_Mode : constant String := "r" & ASCII.Nul; + diff --git a/lang/llvm-gcc4/patches/patch-gcc_ada_make_adb b/lang/llvm-gcc4/patches/patch-gcc_ada_make_adb new file mode 100644 index 00000000000..89b081ab766 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_ada_make_adb @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_ada_make_adb,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/ada/make.adb.orig Tue Nov 15 15:00:29 2005 ++++ gcc/ada/make.adb Sat Mar 4 14:34:45 2006 +@@ -601,7 +601,7 @@ package body Make is + -- Compiler, Binder & Linker Data and Subprograms -- + ---------------------------------------------------- + +- Gcc : String_Access := Program_Name ("gcc"); ++ Gcc : String_Access := Program_Name ("egcc"); + Gnatbind : String_Access := Program_Name ("gnatbind"); + Gnatlink : String_Access := Program_Name ("gnatlink"); + -- Default compiler, binder, linker programs diff --git a/lang/llvm-gcc4/patches/patch-gcc_ada_mlib-utl_adb b/lang/llvm-gcc4/patches/patch-gcc_ada_mlib-utl_adb new file mode 100644 index 00000000000..7a750281880 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_ada_mlib-utl_adb @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_ada_mlib-utl_adb,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/ada/mlib-utl.adb.orig Tue Jun 6 14:37:36 2006 ++++ gcc/ada/mlib-utl.adb Sat Jul 22 18:05:51 2006 +@@ -38,7 +38,7 @@ package body MLib.Utl is + + Initialized : Boolean := False; + +- Gcc_Name : constant String := Osint.Program_Name ("gcc").all; ++ Gcc_Name : constant String := Osint.Program_Name ("egcc").all; + Gcc_Exec : OS_Lib.String_Access; + + Ar_Name : OS_Lib.String_Access; diff --git a/lang/llvm-gcc4/patches/patch-gcc_c-aux-info_c b/lang/llvm-gcc4/patches/patch-gcc_c-aux-info_c new file mode 100644 index 00000000000..4d515ca488a --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_c-aux-info_c @@ -0,0 +1,245 @@ +$OpenBSD: patch-gcc_c-aux-info_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/c-aux-info.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/c-aux-info.c Mon Jun 22 00:53:51 2009 +@@ -91,14 +91,14 @@ affix_data_type (const char *param) + add a blank after the data-type of course. */ + + if (p == type_or_decl) +- return concat (data_type, " ", type_or_decl, NULL); ++ return concat (data_type, " ", type_or_decl, (void *)0); + + saved = *p; + *p = '\0'; +- qualifiers_then_data_type = concat (type_or_decl, data_type, NULL); ++ qualifiers_then_data_type = concat (type_or_decl, data_type, (void *)0); + *p = saved; + return reconcat (qualifiers_then_data_type, +- qualifiers_then_data_type, " ", p, NULL); ++ qualifiers_then_data_type, " ", p, (void *)0); + } + + /* Given a tree node which represents some "function type", generate the +@@ -123,13 +123,13 @@ gen_formal_list_for_type (tree fntype, formals_style s + const char *this_type; + + if (*formal_list) +- formal_list = concat (formal_list, ", ", NULL); ++ formal_list = concat (formal_list, ", ", (void *)0); + + this_type = gen_type ("", TREE_VALUE (formal_type), ansi); + formal_list + = ((strlen (this_type)) +- ? concat (formal_list, affix_data_type (this_type), NULL) +- : concat (formal_list, data_type, NULL)); ++ ? concat (formal_list, affix_data_type (this_type), (void *)0) ++ : concat (formal_list, data_type, (void *)0)); + + formal_type = TREE_CHAIN (formal_type); + } +@@ -178,10 +178,10 @@ gen_formal_list_for_type (tree fntype, formals_style s + petered out to a NULL (i.e. without being terminated by a + void_type_node) then we need to tack on an ellipsis. */ + if (!formal_type) +- formal_list = concat (formal_list, ", ...", NULL); ++ formal_list = concat (formal_list, ", ...", (void *)0); + } + +- return concat (" (", formal_list, ")", NULL); ++ return concat (" (", formal_list, ")", (void *)0); + } + + /* For the generation of an ANSI prototype for a function definition, we have +@@ -237,23 +237,23 @@ gen_formal_list_for_func_def (tree fndecl, formals_sty + const char *this_formal; + + if (*formal_list && ((style == ansi) || (style == k_and_r_names))) +- formal_list = concat (formal_list, ", ", NULL); ++ formal_list = concat (formal_list, ", ", (void *)0); + this_formal = gen_decl (formal_decl, 0, style); + if (style == k_and_r_decls) +- formal_list = concat (formal_list, this_formal, "; ", NULL); ++ formal_list = concat (formal_list, this_formal, "; ", (void *)0); + else +- formal_list = concat (formal_list, this_formal, NULL); ++ formal_list = concat (formal_list, this_formal, (void *)0); + formal_decl = TREE_CHAIN (formal_decl); + } + if (style == ansi) + { + if (!DECL_ARGUMENTS (fndecl)) +- formal_list = concat (formal_list, "void", NULL); ++ formal_list = concat (formal_list, "void", (void *)0); + if (deserves_ellipsis (TREE_TYPE (fndecl))) +- formal_list = concat (formal_list, ", ...", NULL); ++ formal_list = concat (formal_list, ", ...", (void *)0); + } + if ((style == ansi) || (style == k_and_r_names)) +- formal_list = concat (" (", formal_list, ")", NULL); ++ formal_list = concat (" (", formal_list, ")", (void *)0); + return formal_list; + } + +@@ -312,14 +312,14 @@ gen_type (const char *ret_val, tree t, formals_style s + { + case POINTER_TYPE: + if (TYPE_READONLY (t)) +- ret_val = concat ("const ", ret_val, NULL); ++ ret_val = concat ("const ", ret_val, (void *)0); + if (TYPE_VOLATILE (t)) +- ret_val = concat ("volatile ", ret_val, NULL); ++ ret_val = concat ("volatile ", ret_val, (void *)0); + +- ret_val = concat ("*", ret_val, NULL); ++ ret_val = concat ("*", ret_val, (void *)0); + + if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE || TREE_CODE (TREE_TYPE (t)) == FUNCTION_TYPE) +- ret_val = concat ("(", ret_val, ")", NULL); ++ ret_val = concat ("(", ret_val, ")", (void *)0); + + ret_val = gen_type (ret_val, TREE_TYPE (t), style); + +@@ -327,17 +327,17 @@ gen_type (const char *ret_val, tree t, formals_style s + + case ARRAY_TYPE: + if (!COMPLETE_TYPE_P (t) || TREE_CODE (TYPE_SIZE (t)) != INTEGER_CST) +- ret_val = gen_type (concat (ret_val, "[]", NULL), ++ ret_val = gen_type (concat (ret_val, "[]", (void *)0), + TREE_TYPE (t), style); + else if (int_size_in_bytes (t) == 0) +- ret_val = gen_type (concat (ret_val, "[0]", NULL), ++ ret_val = gen_type (concat (ret_val, "[0]", (void *)0), + TREE_TYPE (t), style); + else + { + int size = (int_size_in_bytes (t) / int_size_in_bytes (TREE_TYPE (t))); + char buff[10]; + sprintf (buff, "[%d]", size); +- ret_val = gen_type (concat (ret_val, buff, NULL), ++ ret_val = gen_type (concat (ret_val, buff, (void *)0), + TREE_TYPE (t), style); + } + break; +@@ -345,7 +345,7 @@ gen_type (const char *ret_val, tree t, formals_style s + case FUNCTION_TYPE: + ret_val = gen_type (concat (ret_val, + gen_formal_list_for_type (t, style), +- NULL), ++ (void *)0), + TREE_TYPE (t), style); + break; + +@@ -374,13 +374,13 @@ gen_type (const char *ret_val, tree t, formals_style s + while (chain_p) + { + data_type = concat (data_type, gen_decl (chain_p, 0, ansi), +- NULL); ++ (void *)0); + chain_p = TREE_CHAIN (chain_p); +- data_type = concat (data_type, "; ", NULL); ++ data_type = concat (data_type, "; ", (void *)0); + } +- data_type = concat ("{ ", data_type, "}", NULL); ++ data_type = concat ("{ ", data_type, "}", (void *)0); + } +- data_type = concat ("struct ", data_type, NULL); ++ data_type = concat ("struct ", data_type, (void *)0); + break; + + case UNION_TYPE: +@@ -393,13 +393,13 @@ gen_type (const char *ret_val, tree t, formals_style s + while (chain_p) + { + data_type = concat (data_type, gen_decl (chain_p, 0, ansi), +- NULL); ++ (void *)0); + chain_p = TREE_CHAIN (chain_p); +- data_type = concat (data_type, "; ", NULL); ++ data_type = concat (data_type, "; ", (void *)0); + } +- data_type = concat ("{ ", data_type, "}", NULL); ++ data_type = concat ("{ ", data_type, "}", (void *)0); + } +- data_type = concat ("union ", data_type, NULL); ++ data_type = concat ("union ", data_type, (void *)0); + break; + + case ENUMERAL_TYPE: +@@ -412,14 +412,14 @@ gen_type (const char *ret_val, tree t, formals_style s + while (chain_p) + { + data_type = concat (data_type, +- IDENTIFIER_POINTER (TREE_PURPOSE (chain_p)), NULL); ++ IDENTIFIER_POINTER (TREE_PURPOSE (chain_p)), (void *)0); + chain_p = TREE_CHAIN (chain_p); + if (chain_p) +- data_type = concat (data_type, ", ", NULL); ++ data_type = concat (data_type, ", ", (void *)0); + } +- data_type = concat ("{ ", data_type, " }", NULL); ++ data_type = concat ("{ ", data_type, " }", (void *)0); + } +- data_type = concat ("enum ", data_type, NULL); ++ data_type = concat ("enum ", data_type, (void *)0); + break; + + case TYPE_DECL: +@@ -431,7 +431,7 @@ gen_type (const char *ret_val, tree t, formals_style s + /* Normally, `unsigned' is part of the deal. Not so if it comes + with a type qualifier. */ + if (TYPE_UNSIGNED (t) && TYPE_QUALS (t)) +- data_type = concat ("unsigned ", data_type, NULL); ++ data_type = concat ("unsigned ", data_type, (void *)0); + break; + + case REAL_TYPE: +@@ -451,11 +451,11 @@ gen_type (const char *ret_val, tree t, formals_style s + } + } + if (TYPE_READONLY (t)) +- ret_val = concat ("const ", ret_val, NULL); ++ ret_val = concat ("const ", ret_val, (void *)0); + if (TYPE_VOLATILE (t)) +- ret_val = concat ("volatile ", ret_val, NULL); ++ ret_val = concat ("volatile ", ret_val, (void *)0); + if (TYPE_RESTRICT (t)) +- ret_val = concat ("restrict ", ret_val, NULL); ++ ret_val = concat ("restrict ", ret_val, (void *)0); + return ret_val; + } + +@@ -494,9 +494,9 @@ gen_decl (tree decl, int is_func_definition, formals_s + generate the qualifiers here. */ + + if (TREE_THIS_VOLATILE (decl)) +- ret_val = concat ("volatile ", ret_val, NULL); ++ ret_val = concat ("volatile ", ret_val, (void *)0); + if (TREE_READONLY (decl)) +- ret_val = concat ("const ", ret_val, NULL); ++ ret_val = concat ("const ", ret_val, (void *)0); + + data_type = ""; + +@@ -515,7 +515,7 @@ gen_decl (tree decl, int is_func_definition, formals_s + if (TREE_CODE (decl) == FUNCTION_DECL && is_func_definition) + { + ret_val = concat (ret_val, gen_formal_list_for_func_def (decl, ansi), +- NULL); ++ (void *)0); + + /* Since we have already added in the formals list stuff, here we don't + add the whole "type" of the function we are considering (which +@@ -532,11 +532,11 @@ gen_decl (tree decl, int is_func_definition, formals_s + ret_val = affix_data_type (ret_val); + + if (TREE_CODE (decl) != FUNCTION_DECL && C_DECL_REGISTER (decl)) +- ret_val = concat ("register ", ret_val, NULL); ++ ret_val = concat ("register ", ret_val, (void *)0); + if (TREE_PUBLIC (decl)) +- ret_val = concat ("extern ", ret_val, NULL); ++ ret_val = concat ("extern ", ret_val, (void *)0); + if (TREE_CODE (decl) == FUNCTION_DECL && !TREE_PUBLIC (decl)) +- ret_val = concat ("static ", ret_val, NULL); ++ ret_val = concat ("static ", ret_val, (void *)0); + + return ret_val; + } diff --git a/lang/llvm-gcc4/patches/patch-gcc_c-common_c b/lang/llvm-gcc4/patches/patch-gcc_c-common_c new file mode 100644 index 00000000000..27181ceb73b --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_c-common_c @@ -0,0 +1,37 @@ +$OpenBSD: patch-gcc_c-common_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/c-common.c.orig Mon May 4 17:45:55 2009 ++++ gcc/c-common.c Mon Jun 22 00:58:03 2009 +@@ -641,6 +641,8 @@ static tree handle_cleanup_attribute (tree *, tree, tr + static tree handle_warn_unused_result_attribute (tree *, tree, tree, int, + bool *); + static tree handle_sentinel_attribute (tree *, tree, tree, int, bool *); ++static tree handle_bounded_attribute (tree *, tree, tree, int, bool *); ++ + /* APPLE LOCAL radar 5932809 - copyable byref blocks */ + static tree handle_blocks_attribute (tree *, tree, tree, int, bool *); + +@@ -738,6 +740,8 @@ const struct attribute_spec c_common_attribute_table[] + /* APPLE LOCAL end "unavailable" attribute --ilr */ + { "vector_size", 1, 1, false, true, false, + handle_vector_size_attribute }, ++ { "bounded", 3, 4, false, true, false, ++ handle_bounded_attribute }, + { "visibility", 1, 1, false, false, false, + handle_visibility_attribute }, + { "tls_model", 1, 1, true, false, false, +@@ -5807,6 +5811,15 @@ handle_vector_size_attribute (tree *node, tree name, t + *node = reconstruct_complex_type (*node, new_type); + + return NULL_TREE; ++} ++ ++static tree ++handle_bounded_attribute (tree *ARG_UNUSED (node), tree ARG_UNUSED (name), ++ tree ARG_UNUSED (args), ++ int ARG_UNUSED (flags), bool *no_add_attrs) ++{ ++ *no_add_attrs = true; ++ return NULL_TREE; + } + + /* Handle the "nonnull" attribute. */ diff --git a/lang/llvm-gcc4/patches/patch-gcc_c-format_c b/lang/llvm-gcc4/patches/patch-gcc_c-format_c new file mode 100644 index 00000000000..19830e0cf8d --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_c-format_c @@ -0,0 +1,97 @@ +$OpenBSD: patch-gcc_c-format_c,v 1.1.1.1 2009/06/22 22:37:31 sthen Exp $ + +teach gcc 4.2 about the kprintf/syslog formats from OpenBSD gcc 3.3.5; +this makes gcc whinge less when compiling the kernel. + +--- gcc/c-format.c.orig Mon Jun 22 00:38:01 2009 ++++ gcc/c-format.c Mon Jun 22 00:38:04 2009 +@@ -60,6 +60,7 @@ set_Wformat (int setting) + format_type_error. Target-specific format types do not have + matching enum values. */ + enum format_type { printf_format_type, asm_fprintf_format_type, ++ kprintf_format_type, syslog_format_type, + gcc_diag_format_type, gcc_tdiag_format_type, + gcc_cdiag_format_type, + gcc_cxxdiag_format_type, gcc_gfc_format_type, +@@ -335,6 +336,15 @@ static const format_length_info gcc_diag_length_specs[ + { NULL, 0, 0, NULL, 0, 0 } + }; + ++static const format_length_info kprintf_length_specs[] = ++{ ++ { "h", FMT_LEN_h, STD_C89, NULL, 0, 0 }, ++ { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C9L }, ++ { "q", FMT_LEN_ll, STD_EXT, NULL, 0, 0 }, ++ { "L", FMT_LEN_L, STD_C89, NULL, 0, 0 }, ++ { NULL, 0, 0, NULL, 0, 0 } ++}; ++ + /* The custom diagnostics all accept the same length specifiers. */ + #define gcc_tdiag_length_specs gcc_diag_length_specs + #define gcc_cdiag_length_specs gcc_diag_length_specs +@@ -556,6 +566,46 @@ static const format_char_info asm_fprintf_char_table[] + { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + }; + ++static const format_char_info kprint_char_table[] = ++{ ++ /* C89 conversion specifiers. */ ++ { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i", NULL }, ++ { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i", NULL }, ++ { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0'I", "i", NULL }, ++ { "c", 0, STD_C89, { T89_I, BADLEN, BADLEN, T94_WI, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL }, ++ { "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, T94_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL }, ++ { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "c", NULL }, ++/* Kernel bitmap formatting */ ++ { "b", 1, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "", NULL }, ++/* Kernel recursive format */ ++ { ":", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "", NULL }, ++/* Kernel debugger auto-radix printing */ ++ { "nrz", 0, STD_C89, { T89_I, T89_I, T89_I, T89_L, T9L_LL, TEX_LL, BADLEN, BADLEN, BADLEN }, "-wp0# +", "", NULL }, ++ { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } ++}; ++ ++static const format_char_info syslog_char_table[] = ++{ ++ /* C89 conversion specifiers. */ ++ { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i", NULL }, ++ { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i", NULL }, ++ { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0'I", "i", NULL }, ++ { "fgG", 0, STD_C89, { T89_D, BADLEN, BADLEN, T99_D, BADLEN, T89_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#'", "", NULL }, ++ { "eE", 0, STD_C89, { T89_D, BADLEN, BADLEN, T99_D, BADLEN, T89_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "", NULL }, ++ { "c", 0, STD_C89, { T89_I, BADLEN, BADLEN, T94_WI, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL }, ++ { "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, T94_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL }, ++ { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "c", NULL }, ++ { "n", 1, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, T99_SST, T99_PD, T99_IM }, "", "W", NULL }, ++ /* C99 conversion specifiers. */ ++ { "F", 0, STD_C99, { T99_D, BADLEN, BADLEN, T99_D, BADLEN, T99_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#'", "", NULL }, ++ { "aA", 0, STD_C99, { T99_D, BADLEN, BADLEN, T99_D, BADLEN, T99_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "", NULL }, ++ /* X/Open conversion specifiers. */ ++ { "C", 0, STD_EXT, { TEX_WI, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL }, ++ { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R", NULL }, ++ { "m", 0, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "", NULL }, ++ { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } ++}; ++ + static const format_char_info gcc_diag_char_table[] = + { + /* C89 conversion specifiers. */ +@@ -741,6 +791,18 @@ static const format_kind_info format_types_orig[] = + FMT_FLAG_ARG_CONVERT|FMT_FLAG_EMPTY_PREC_OK, + 'w', 0, 'p', 0, 'L', + NULL, NULL ++ }, ++ { "kprintf", kprintf_length_specs, kprint_char_table, " +#0-'I", NULL, ++ printf_flag_specs, printf_flag_pairs, ++ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, ++ 'w', 0, 'p', 0, 'L', ++ &integer_type_node, &integer_type_node ++ }, ++ { "syslog", printf_length_specs, syslog_char_table, " +#0-'I", NULL, ++ printf_flag_specs, printf_flag_pairs, ++ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, ++ 'w', 0, 'p', 0, 'L', ++ &integer_type_node, &integer_type_node + }, + { "gcc_diag", gcc_diag_length_specs, gcc_diag_char_table, "q+", NULL, + gcc_diag_flag_specs, gcc_diag_flag_pairs, diff --git a/lang/llvm-gcc4/patches/patch-gcc_c-incpath_c b/lang/llvm-gcc4/patches/patch-gcc_c-incpath_c new file mode 100644 index 00000000000..aa6d4d411a8 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_c-incpath_c @@ -0,0 +1,32 @@ +$OpenBSD: patch-gcc_c-incpath_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/c-incpath.c.orig Sun Feb 15 04:17:54 2009 ++++ gcc/c-incpath.c Mon Jun 22 00:59:21 2009 +@@ -163,9 +163,9 @@ add_standard_paths (const char *sysroot, const char *i + continue; + if (!strncmp (p->fname, cpp_GCC_INCLUDE_DIR, len)) + { +- char *str = concat (iprefix, p->fname + len, NULL); ++ char *str = concat (iprefix, p->fname + len, (void *)0); + if (p->multilib && imultilib) +- str = concat (str, dir_separator_str, imultilib, NULL); ++ str = concat (str, dir_separator_str, imultilib, (void *)0); + add_path (str, SYSTEM, p->cxx_aware, false); + } + } +@@ -184,14 +184,14 @@ add_standard_paths (const char *sysroot, const char *i + #ifdef ENABLE_LLVM + str = TARGET_BUILD_SYSROOT_PATH(sysroot, p->fname); + #else +- str = concat (sysroot, p->fname, NULL); ++ str = concat (sysroot, p->fname, (void *)0); + #endif + /* LLVM LOCAL end sysroot */ + else + str = update_path (p->fname, p->component); + + if (p->multilib && imultilib) +- str = concat (str, dir_separator_str, imultilib, NULL); ++ str = concat (str, dir_separator_str, imultilib, (void *)0); + + add_path (str, SYSTEM, p->cxx_aware, false); + } diff --git a/lang/llvm-gcc4/patches/patch-gcc_collect2_c b/lang/llvm-gcc4/patches/patch-gcc_collect2_c new file mode 100644 index 00000000000..f03ef8fd386 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_collect2_c @@ -0,0 +1,76 @@ +$OpenBSD: patch-gcc_collect2_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/collect2.c.orig Tue Sep 2 22:45:01 2008 ++++ gcc/collect2.c Mon Jun 22 00:59:51 2009 +@@ -759,19 +759,19 @@ main (int argc, char **argv) + qualify the program name with the target machine. */ + + const char *const full_ld_suffix = +- concat(target_machine, "-", ld_suffix, NULL); ++ concat(target_machine, "-", ld_suffix, (char *)0); + const char *const full_nm_suffix = +- concat (target_machine, "-", nm_suffix, NULL); ++ concat (target_machine, "-", nm_suffix, (char *)0); + const char *const full_gnm_suffix = +- concat (target_machine, "-", gnm_suffix, NULL); ++ concat (target_machine, "-", gnm_suffix, (char *)0); + #ifdef LDD_SUFFIX + const char *const full_ldd_suffix = +- concat (target_machine, "-", ldd_suffix, NULL); ++ concat (target_machine, "-", ldd_suffix, (char *)0); + #endif + const char *const full_strip_suffix = +- concat (target_machine, "-", strip_suffix, NULL); ++ concat (target_machine, "-", strip_suffix, (char *)0); + const char *const full_gstrip_suffix = +- concat (target_machine, "-", gstrip_suffix, NULL); ++ concat (target_machine, "-", gstrip_suffix, (char *)0); + #else + const char *const full_ld_suffix = ld_suffix; + const char *const full_nm_suffix = nm_suffix; +@@ -968,7 +968,7 @@ main (int argc, char **argv) + /* APPLE LOCAL begin mainline 4.3 2006-12-13 CROSS_DIRECTORY_STRUCTURE 4697325 */ + #ifdef CROSS_DIRECTORY_STRUCTURE + /* APPLE LOCAL end mainline 4.3 2006-12-13 CROSS_DIRECTORY_STRUCTURE 4697325 */ +- c_file_name = concat (target_machine, "-gcc", NULL); ++ c_file_name = concat (target_machine, "-gcc", (char *)0); + #else + c_file_name = "gcc"; + #endif +@@ -1246,7 +1246,7 @@ main (int argc, char **argv) + + if (exports.first) + { +- char *buf = concat ("-bE:", export_file, NULL); ++ char *buf = concat ("-bE:", export_file, (char *)0); + + *ld1++ = buf; + *ld2++ = buf; +@@ -1411,7 +1411,7 @@ main (int argc, char **argv) + /* Tell the linker that we have initializer and finalizer functions. */ + #ifdef LD_INIT_SWITCH + #ifdef COLLECT_EXPORT_LIST +- *ld2++ = concat (LD_INIT_SWITCH, ":", initname, ":", fininame, NULL); ++ *ld2++ = concat (LD_INIT_SWITCH, ":", initname, ":", fininame, (char *)0); + #else + *ld2++ = LD_INIT_SWITCH; + *ld2++ = initname; +@@ -1426,7 +1426,7 @@ main (int argc, char **argv) + /* If we did not add export flag to link arguments before, add it to + second link phase now. No new exports should have been added. */ + if (! exports.first) +- *ld2++ = concat ("-bE:", export_file, NULL); ++ *ld2++ = concat ("-bE:", export_file, (char *)0); + + #ifndef LD_INIT_SWITCH + add_to_list (&exports, initname); +@@ -1823,8 +1823,8 @@ write_c_file_stat (FILE *stream, const char *name ATTR + notice ("\nwrite_c_file - output name is %s, prefix is %s\n", + output_file, prefix); + +- initname = concat ("_GLOBAL__FI_", prefix, NULL); +- fininame = concat ("_GLOBAL__FD_", prefix, NULL); ++ initname = concat ("_GLOBAL__FI_", prefix, (char *)0); ++ fininame = concat ("_GLOBAL__FD_", prefix, (char *)0); + + free (prefix); + diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_exec-stack_h b/lang/llvm-gcc4/patches/patch-gcc_config_exec-stack_h new file mode 100644 index 00000000000..ae454728ae7 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_exec-stack_h @@ -0,0 +1,44 @@ +$OpenBSD: patch-gcc_config_exec-stack_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/exec-stack.h.orig Wed Oct 18 13:49:09 2006 ++++ gcc/config/exec-stack.h Wed Oct 18 13:49:04 2006 +@@ -0,0 +1,40 @@ ++/* Enable stack execute around trampoline address. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC 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. ++ ++GNU CC 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 GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#undef FINALIZE_TRAMPOLINE ++#define FINALIZE_TRAMPOLINE(TRAMP) \ ++ emit_library_call(gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"), \ ++ 0, VOIDmode, 1, memory_address (SImode, (TRAMP)), Pmode) ++ ++#undef TRANSFER_FROM_TRAMPOLINE ++#define TRANSFER_FROM_TRAMPOLINE \ ++extern void __enable_execute_stack (void *); \ ++void \ ++__enable_execute_stack (addr) \ ++ void *addr; \ ++{ \ ++ long size = getpagesize (); \ ++ long mask = ~(size-1); \ ++ char *page = (char *) (((long) addr) & mask); \ ++ char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \ ++ \ ++ if (mprotect (page, end - page, PROT_READ | PROT_WRITE | PROT_EXEC) < 0) \ ++ perror ("mprotect of trampoline code"); \ ++} diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_gcc b/lang/llvm-gcc4/patches/patch-gcc_config_gcc new file mode 100644 index 00000000000..5759f36a687 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_gcc @@ -0,0 +1,93 @@ +--- gcc/config.gcc.orig Tue Jun 16 19:53:18 2009 ++++ gcc/config.gcc Mon Jun 22 00:53:54 2009 +@@ -598,6 +598,11 @@ case ${target} in + *-*-openbsd2.*|*-*-openbsd3.[012]) + tm_defines="${tm_defines} HAS_LIBC_R=1" ;; + esac ++ case ${target} in ++ *-*-openbsd[1-3].*|*-*-openbsd4.[012]) ;; ++ *) ++ default_use_cxa_atexit=yes ;; ++ esac + ;; + *-*-rtems*) + case ${enable_threads} in +@@ -664,7 +669,7 @@ alpha*-*-netbsd*) + ;; + alpha*-*-openbsd*) + tm_defines="${tm_defines} OBSD_NO_DYNAMIC_LIBRARIES OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT" +- tm_file="alpha/alpha.h openbsd.h alpha/openbsd.h" ++ tm_file="alpha/alpha.h alpha/elf.h openbsd.h openbsd-libpthread.h alpha/openbsd.h" + # default x-alpha is only appropriate for dec-osf. + target_cpu_default="MASK_GAS" + tmake_file="alpha/t-alpha alpha/t-ieee" +@@ -1139,10 +1144,15 @@ i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123]) + ;; + i[34567]86-*-openbsd*) + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h" +- tm_file="${tm_file} openbsd.h i386/openbsdelf.h" ++ tm_file="${tm_file} openbsd.h openbsd-libpthread.h i386/openbsdelf.h" + gas=yes + gnu_ld=yes + ;; ++x86_64-*-openbsd*) ++ tm_file="i386/biarch64.h i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos.h openbsd.h openbsd-libpthread.h i386/x86-64.h i386/openbsd64.h" ++ tm_file="${tm_file} exec-stack.h" ++ tmake_file="t-libc-ok t-openbsd i386/t-openbsd" ++ ;; + i[34567]86-*-coff*) + tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/i386-coff.h" + use_fixproto=yes +@@ -1542,7 +1552,7 @@ m68010-*-netbsdelf* | m68k*-*-netbsdelf*) + m68k*-*-openbsd*) + # needed to unconfuse gdb + tm_defines="${tm_defines} OBSD_OLD_GAS TARGET_DEFAULT=(MASK_68020|MASK_68881|MASK_BITFIELD)" +- tm_file="m68k/m68k.h openbsd.h m68k/openbsd.h" ++ tm_file="m68k/m68k.h openbsd.h openbsd-libpthread.h m68k/openbsd.h" + tmake_file="t-libc-ok t-openbsd m68k/t-openbsd" + # we need collect2 until our bug is fixed... + use_collect2=yes +@@ -1632,7 +1642,7 @@ mips*-*-linux*) # Linux MIPS, either endian. + mips*-*-openbsd*) + tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS" + target_cpu_default="MASK_ABICALLS" +- tm_file="mips/mips.h openbsd.h mips/openbsd.h mips/sdb.h" ++ tm_file="mips/mips.h openbsd.h openbsd-libpthread.h mips/openbsd.h mips/sdb.h" + case ${target} in + mips*el-*-openbsd*) + tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=0";; +@@ -1762,11 +1772,11 @@ pdp11-*-bsd) + pdp11-*-*) + use_fixproto=yes + ;; +-# port not yet contributed +-#powerpc-*-openbsd*) +-# tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit " +-# extra_headers= +-# ;; ++powerpc-*-openbsd*) ++ tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-libpthread.h freebsd-spec.h rs6000/sysv4.h rs6000/openbsd.h" ++ tmake_file="${tmake_file} rs6000/t-openbsd" ++ extra_options="${extra_options} rs6000/sysv4.opt" ++ ;; + powerpc64-*-linux*) + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" + test x$with_cpu != x || cpu_is_64bit=yes +@@ -2240,7 +2250,7 @@ sparc-*-netbsdelf*) + extra_options="${extra_options} sparc/long-double-switch.opt" + ;; + sparc64-*-openbsd*) +- tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h" ++ tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h openbsd.h openbsd-libpthread.h sparc/openbsd64.h" + extra_options="${extra_options} sparc/little-endian.opt" + gas=yes gnu_ld=yes + with_cpu=ultrasparc +@@ -2506,7 +2516,7 @@ vax-*-netbsd*) + use_collect2=yes + ;; + vax-*-openbsd*) +- tm_file="vax/vax.h vax/openbsd1.h openbsd.h vax/openbsd.h" ++ tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-libpthread.h vax/openbsd.h" + use_collect2=yes + ;; + vax-*-ultrix*) # VAXen running ultrix diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_host b/lang/llvm-gcc4/patches/patch-gcc_config_host new file mode 100644 index 00000000000..6b2e06b67ef --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_host @@ -0,0 +1,14 @@ +$OpenBSD: patch-gcc_config_host,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config.host.orig Tue Nov 25 22:26:23 2008 ++++ gcc/config.host Mon Jun 22 00:53:54 2009 +@@ -214,6 +214,10 @@ case ${host} in + out_host_hook_obj=host-solaris.o + host_xmake_file="${host_xmake_file} x-solaris" + ;; ++ *-*-openbsd*) ++ out_host_hook_obj=host-openbsd.o ++ host_xmake_file="${host_xmake_file} x-openbsd" ++ ;; + *-*-linux*) + out_host_hook_obj=host-linux.o + host_xmake_file="${host_xmake_file} x-linux" diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_host-openbsd_c b/lang/llvm-gcc4/patches/patch-gcc_config_host-openbsd_c new file mode 100644 index 00000000000..4b6ff3a4640 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_host-openbsd_c @@ -0,0 +1,111 @@ +$OpenBSD: patch-gcc_config_host-openbsd_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/host-openbsd.c.orig Wed Apr 23 07:42:45 2008 ++++ gcc/config/host-openbsd.c Wed Apr 23 17:57:19 2008 +@@ -0,0 +1,107 @@ ++/* OpenBSD host-specific hook definitions. ++ Copyright (C) 2005 Free Software Foundation, Inc. ++ ++ This file is part of GCC. ++ ++ GCC 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. ++ ++ GCC 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 GCC; see the file COPYING. If not, write to the ++ Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++ MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++#include "config.h" ++#include "system.h" ++#include "coretypes.h" ++#include "hosthooks.h" ++#include "hosthooks-def.h" ++ ++#undef HOST_HOOKS_GT_PCH_GET_ADDRESS ++#define HOST_HOOKS_GT_PCH_GET_ADDRESS openbsd_gt_pch_get_address ++ ++#undef HOST_HOOKS_GT_PCH_USE_ADDRESS ++#define HOST_HOOKS_GT_PCH_USE_ADDRESS openbsd_gt_pch_use_address ++ ++/* Return the address of the PCH address space, if the PCH will fit in it. */ ++ ++void * ++openbsd_gt_pch_get_address (size_t size, int fd ATTRIBUTE_UNUSED) ++{ ++ void *base, *addr; ++ size_t pgsz; ++ ++ if (size > INT_MAX) ++ return NULL; ++ ++ pgsz = sysconf(_SC_PAGESIZE); ++ if (pgsz == (size_t)-1) ++ return NULL; ++ ++ base = sbrk(0); ++ ++ /* round up to nearest page */ ++ base = (void *)(((long)base + (pgsz - 1)) & ~(pgsz - 1)); ++ if (brk(base) != 0) ++ return NULL; ++ ++ /* attempt to allocate size */ ++ addr = sbrk(size); ++ if (addr == (void *)-1) ++ return NULL; ++ ++ /* deallocate the memory */ ++ if (brk(base) != 0) ++ return NULL; ++ ++ /* confirm addr is as expected */ ++ if (addr != base) ++ return NULL; ++ ++ return base; ++} ++ ++/* Return 0 if we can reserve the PCH address space. */ ++ ++int ++openbsd_gt_pch_use_address (void *base, size_t size, int fd ATTRIBUTE_UNUSED, size_t off ATTRIBUTE_UNUSED) ++{ ++ void *addr; ++ ++ if (size == 0) ++ return -1; ++ ++ /* sanity check base address */ ++ addr = sbrk(0); ++ if (addr == (void *)-1 || base < addr) ++ return -1; ++ ++ /* set base for sbrk */ ++ if (brk(base) != 0) ++ return -1; ++ ++ /* attempt to get the memory */ ++ addr = sbrk(size); ++ if (addr == (void *)-1) ++ return -1; ++ ++ /* sanity check the result */ ++ if (addr != base) { ++ brk(base); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER; diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_i386_driver-i386_c b/lang/llvm-gcc4/patches/patch-gcc_config_i386_driver-i386_c new file mode 100644 index 00000000000..c42973890fd --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_i386_driver-i386_c @@ -0,0 +1,21 @@ +$OpenBSD: patch-gcc_config_i386_driver-i386_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/i386/driver-i386.c.orig Thu Dec 4 05:19:42 2008 ++++ gcc/config/i386/driver-i386.c Mon Jun 22 00:53:54 2009 +@@ -271,7 +271,7 @@ const char *host_detect_local_cpu (int argc, const cha + } + + done: +- return concat ("-m", argv[0], "=", cpu, NULL); ++ return concat ("-m", argv[0], "=", cpu, (void *)0); + } + #else + /* If we aren't compiling with GCC we just provide a minimal +@@ -297,7 +297,7 @@ const char *host_detect_local_cpu (int argc, const cha + else + cpu = "generic"; + +- return concat ("-m", argv[0], "=", cpu, NULL); ++ return concat ("-m", argv[0], "=", cpu, (void *)0); + } + #endif /* GCC_VERSION */ + /* LLVM LOCAL fix bootstrap failure on ppc host */ diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsd64_h b/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsd64_h new file mode 100644 index 00000000000..4d22ef6edb8 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsd64_h @@ -0,0 +1,125 @@ +$OpenBSD: patch-gcc_config_i386_openbsd64_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/i386/openbsd64.h.orig Wed Oct 18 13:48:08 2006 ++++ gcc/config/i386/openbsd64.h Wed Oct 18 13:48:02 2006 +@@ -0,0 +1,121 @@ ++/* Configuration for an OpenBSD x86-64 target. ++ ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC 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. ++ ++GNU CC 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 GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#undef TARGET_VERSION ++#define TARGET_VERSION fprintf (stderr, " (OpenBSD/x86-64 ELF)") ++ ++/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using ++ libraries compiled with the native cc, so undef it. */ ++#undef NO_DOLLAR_IN_LABEL ++ ++/* Override the default comment-starter of "/". */ ++#undef ASM_COMMENT_START ++#define ASM_COMMENT_START "#" ++ ++/* Run-time target specifications */ ++ ++#define TARGET_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ OPENBSD_OS_CPP_BUILTINS_ELF(); \ ++ if (TARGET_64BIT) \ ++ OPENBSD_OS_CPP_BUILTINS_LP64(); \ ++ } \ ++ while (0) ++ ++/* As an elf system, we need crtbegin/crtend stuff. */ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC "\ ++ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \ ++ crtbegin%O%s} %{shared:crtbeginS%O%s}" ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" ++ ++/* Layout of source language data types. */ ++ ++/* This must agree with */ ++#undef SIZE_TYPE ++#define SIZE_TYPE "long unsigned int" ++ ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE "long int" ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "int" ++ ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++/* Assembler format: overall framework. */ ++ ++#undef ASM_APP_ON ++#define ASM_APP_ON "#APP\n" ++ ++#undef ASM_APP_OFF ++#define ASM_APP_OFF "#NO_APP\n" ++ ++#undef SET_ASM_OP ++#define SET_ASM_OP "\t.set\t" ++ ++/* The following macros were originally stolen from i386v4.h. ++ These have to be defined to get PIC code correct. */ ++ ++/* Assembler format: dispatch tables. */ ++ ++/* Assembler format: sections. */ ++ ++/* Stack & calling: aggregate returns. */ ++ ++/* Don't default to pcc-struct-return, because gcc is the only compiler, and ++ we want to retain compatibility with older gcc versions. */ ++#define DEFAULT_PCC_STRUCT_RETURN 0 ++ ++/* Assembler format: alignment output. */ ++ ++/* Stack & calling: profiling. */ ++ ++/* OpenBSD's profiler recovers all information from the stack pointer. ++ The icky part is not here, but in machine/profile.h. */ ++#undef FUNCTION_PROFILER ++#define FUNCTION_PROFILER(FILE, LABELNO) \ ++ fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE); ++ ++/* Assembler format: exception region output. */ ++ ++/* Assembler format: alignment output. */ ++ ++/* Note that we pick up ASM_OUTPUT_MAX_SKIP_ALIGN from i386/gas.h */ ++ ++/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */ ++ ++#undef LINK_SPEC ++#define LINK_SPEC \ ++ "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \ ++ %{shared:-shared} %{R*} \ ++ %{static:-Bstatic} \ ++ %{!static:-Bdynamic} \ ++ %{assert*} \ ++ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" ++ ++#define OBSD_HAS_CORRECT_SPECS ++ ++#undef JUMP_TABLES_IN_TEXT_SECTION ++#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic) diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsd_h b/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsd_h new file mode 100644 index 00000000000..18ec01ea711 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsd_h @@ -0,0 +1,25 @@ +$OpenBSD: patch-gcc_config_i386_openbsd_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/i386/openbsd.h.orig Fri Aug 3 18:23:08 2007 ++++ gcc/config/i386/openbsd.h Mon Jun 22 00:53:55 2009 +@@ -41,16 +41,19 @@ Boston, MA 02110-1301, USA. */ + + /* This must agree with */ + #undef SIZE_TYPE +-#define SIZE_TYPE "unsigned int" ++#define SIZE_TYPE "long unsigned int" + + #undef PTRDIFF_TYPE +-#define PTRDIFF_TYPE "int" ++#define PTRDIFF_TYPE "long int" + + #undef WCHAR_TYPE + #define WCHAR_TYPE "int" + + #undef WCHAR_TYPE_SIZE + #define WCHAR_TYPE_SIZE 32 ++ ++#undef WINT_TYPE ++#define WINT_TYPE "int" + + /* Assembler format: overall framework. */ + diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsdelf_h b/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsdelf_h new file mode 100644 index 00000000000..ccae406fcfa --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_i386_openbsdelf_h @@ -0,0 +1,26 @@ +$OpenBSD: patch-gcc_config_i386_openbsdelf_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/i386/openbsdelf.h.orig Fri Aug 3 18:23:08 2007 ++++ gcc/config/i386/openbsdelf.h Mon Jun 22 00:53:55 2009 +@@ -56,10 +56,10 @@ Boston, MA 02110-1301, USA. */ + + /* This must agree with */ + #undef SIZE_TYPE +-#define SIZE_TYPE "unsigned int" ++#define SIZE_TYPE "long unsigned int" + + #undef PTRDIFF_TYPE +-#define PTRDIFF_TYPE "int" ++#define PTRDIFF_TYPE "long int" + + #undef WCHAR_TYPE + #define WCHAR_TYPE "int" +@@ -110,9 +110,6 @@ Boston, MA 02110-1301, USA. */ + fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE); + + /* Assembler format: exception region output. */ +- +-/* our configuration still doesn't handle dwarf2 correctly */ +-#define DWARF2_UNWIND_INFO 0 + + /* Assembler format: alignment output. */ + diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_m68k_openbsd_h b/lang/llvm-gcc4/patches/patch-gcc_config_m68k_openbsd_h new file mode 100644 index 00000000000..2644c331a1f --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_m68k_openbsd_h @@ -0,0 +1,25 @@ +$OpenBSD: patch-gcc_config_m68k_openbsd_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/m68k/openbsd.h.orig Wed Jul 11 22:32:42 2007 ++++ gcc/config/m68k/openbsd.h Mon Jun 22 00:53:55 2009 +@@ -44,16 +44,19 @@ Boston, MA 02110-1301, USA. */ + + /* This must agree with */ + #undef SIZE_TYPE +-#define SIZE_TYPE "unsigned int" ++#define SIZE_TYPE "long unsigned int" + + #undef PTRDIFF_TYPE +-#define PTRDIFF_TYPE "int" ++#define PTRDIFF_TYPE "long int" + + #undef WCHAR_TYPE + #define WCHAR_TYPE "int" + + #undef WCHAR_TYPE_SIZE + #define WCHAR_TYPE_SIZE 32 ++ ++#undef WINT_TYPE ++#define WINT_TYPE "int" + + /* Storage layout. */ + diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_mips_openbsd_h b/lang/llvm-gcc4/patches/patch-gcc_config_mips_openbsd_h new file mode 100644 index 00000000000..821cce35cfc --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_mips_openbsd_h @@ -0,0 +1,25 @@ +$OpenBSD: patch-gcc_config_mips_openbsd_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/mips/openbsd.h.orig Wed Jul 11 22:32:42 2007 ++++ gcc/config/mips/openbsd.h Mon Jun 22 00:53:55 2009 +@@ -58,16 +58,19 @@ Boston, MA 02110-1301, USA. */ + + /* This must agree with . */ + #undef SIZE_TYPE +-#define SIZE_TYPE "unsigned int" ++#define SIZE_TYPE "long unsigned int" + + #undef PTRDIFF_TYPE +-#define PTRDIFF_TYPE "int" ++#define PTRDIFF_TYPE "long int" + + #undef WCHAR_TYPE + #define WCHAR_TYPE "int" + + #undef WCHAR_TYPE_SIZE + #define WCHAR_TYPE_SIZE 32 ++ ++#undef WINT_TYPE ++#define WINT_TYPE "int" + + /* Controlling the compilation driver. */ + diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_openbsd-libpthread_h b/lang/llvm-gcc4/patches/patch-gcc_config_openbsd-libpthread_h new file mode 100644 index 00000000000..298deb476cd --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_openbsd-libpthread_h @@ -0,0 +1,27 @@ +$OpenBSD: patch-gcc_config_openbsd-libpthread_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/openbsd-libpthread.h.orig Wed Oct 18 13:46:36 2006 ++++ gcc/config/openbsd-libpthread.h Wed Oct 18 13:46:50 2006 +@@ -0,0 +1,23 @@ ++/* LIB_SPEC appropriate for OpenBSD. Include -lpthread if -pthread is ++ specified on the command line. */ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC 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. ++ ++GNU CC 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 GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#define OBSD_LIB_SPEC "%{!shared:%{pthread:-lpthread} -lc}" ++ diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_openbsd_h b/lang/llvm-gcc4/patches/patch-gcc_config_openbsd_h new file mode 100644 index 00000000000..7dcc248a296 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_openbsd_h @@ -0,0 +1,82 @@ +$OpenBSD: patch-gcc_config_openbsd_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/openbsd.h.orig Wed Jul 11 22:32:42 2007 ++++ gcc/config/openbsd.h Mon Jun 22 00:53:56 2009 +@@ -73,6 +73,37 @@ Boston, MA 02110-1301, USA. */ + + /* Controlling the compilation driver. */ + /* TARGET_OS_CPP_BUILTINS() common to all OpenBSD targets. */ ++#define OPENBSD_OS_CPP_BUILTINS_COMMON() \ ++ do \ ++ { \ ++ builtin_define ("__OpenBSD__"); \ ++ builtin_define ("__unix__"); \ ++ builtin_define ("__ANSI_COMPAT"); \ ++ builtin_assert ("system=unix"); \ ++ builtin_assert ("system=bsd"); \ ++ builtin_assert ("system=OpenBSD"); \ ++ } \ ++ while (0) ++ ++/* TARGET_OS_CPP_BUILTINS() common to all OpenBSD ELF targets. */ ++#define OPENBSD_OS_CPP_BUILTINS_ELF() \ ++ do \ ++ { \ ++ OPENBSD_OS_CPP_BUILTINS_COMMON(); \ ++ builtin_define ("__ELF__"); \ ++ } \ ++ while (0) ++ ++/* TARGET_OS_CPP_BUILTINS() common to all LP64 OpenBSD targets. */ ++#define OPENBSD_OS_CPP_BUILTINS_LP64() \ ++ do \ ++ { \ ++ builtin_define ("_LP64"); \ ++ builtin_define ("__LP64__"); \ ++ } \ ++ while (0) ++ ++/* XXX old stuff TARGET_OS_CPP_BUILTINS() common to all OpenBSD targets. */ + #define OPENBSD_OS_CPP_BUILTINS() \ + do \ + { \ +@@ -96,16 +127,9 @@ Boston, MA 02110-1301, USA. */ + #define OBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}" + #endif + +-/* LIB_SPEC appropriate for OpenBSD. */ +-#ifdef HAS_LIBC_R +-/* -lc(_r)?(_p)?, select _r for threads, and _p for p or pg. */ +-# define OBSD_LIB_SPEC "%{!shared:-lc%{pthread:_r}%{p:_p}%{!p:%{pg:_p}}}" +-#else +-/* Include -lpthread if -pthread is specified on the command line. */ +-# define OBSD_LIB_SPEC "%{!shared:%{pthread:-lpthread%{p:_p}%{!p:%{pg:_p}}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}" +-#endif ++#undef LIB_SPEC ++#define LIB_SPEC OBSD_LIB_SPEC + +- + #ifndef OBSD_HAS_CORRECT_SPECS + + #ifndef OBSD_NO_DYNAMIC_LIBRARIES +@@ -140,6 +164,10 @@ Boston, MA 02110-1301, USA. */ + "%{g:%{!nostdlib:-L/usr/lib/debug}} %{!shared:%{!nostdlib:%{!r*:%{!e*:-e start}}}} %{shared:-Bshareable -x} -dc -dp %{R*} %{static:-Bstatic} %{assert*}" + #endif + ++#if defined(HAVE_LD_EH_FRAME_HDR) ++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++#endif ++ + #undef LIB_SPEC + #define LIB_SPEC OBSD_LIB_SPEC + #endif +@@ -282,10 +310,6 @@ do { \ + /* Storage layout. */ + + +-/* Otherwise, since we support weak, gthr.h erroneously tries to use +- #pragma weak. */ +-#define GTHREAD_USE_WEAK 0 +- + /* bug work around: we don't want to support #pragma weak, but the current + code layout needs HANDLE_PRAGMA_WEAK asserted for __attribute((weak)) to + work. On the other hand, we don't define HANDLE_PRAGMA_WEAK directly, diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_openbsd1_h b/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_openbsd1_h new file mode 100644 index 00000000000..9290ea017fd --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_openbsd1_h @@ -0,0 +1,28 @@ +$OpenBSD: patch-gcc_config_rs6000_openbsd1_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/rs6000/openbsd1.h.orig Tue Jun 12 14:05:16 2007 ++++ gcc/config/rs6000/openbsd1.h Tue Jun 12 14:05:16 2007 +@@ -0,0 +1,24 @@ ++/* Configuration file for an rs6000 OpenBSD target. ++ Copyright (C) 1999 Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC 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. ++ ++GNU CC 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 GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#define OBSD_HAS_CORRECT_SPECS ++#define OBSD_HAS_DECLARE_FUNCTION_NAME ++#define OBSD_HAS_DECLARE_FUNCTION_SIZE ++#define OBSD_HAS_DECLARE_OBJECT diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_openbsd_h b/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_openbsd_h new file mode 100644 index 00000000000..76963b1a6fc --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_openbsd_h @@ -0,0 +1,136 @@ +$OpenBSD: patch-gcc_config_rs6000_openbsd_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/rs6000/openbsd.h.orig Sat Jun 9 17:11:08 2007 ++++ gcc/config/rs6000/openbsd.h Sat Jun 9 18:24:52 2007 +@@ -0,0 +1,132 @@ ++/* Configuration file for an rs6000 OpenBSD target. ++ Copyright (C) 1999 Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC 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. ++ ++GNU CC 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 GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++/* XXX need to check ASM_WEAKEN_LABEL/ASM_GLOBALIZE_LABEL. */ ++ ++/* Run-time target specifications. */ ++#undef TARGET_OS_CPP_BUILTINS /* FIXME: sysv4.h should not define this! */ ++#define TARGET_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ OPENBSD_OS_CPP_BUILTINS_ELF(); \ ++ builtin_define ("__PPC"); \ ++ builtin_define ("__PPC__"); \ ++ builtin_define ("__powerpc"); \ ++ builtin_define ("__powerpc__"); \ ++ builtin_assert ("cpu=powerpc"); \ ++ builtin_assert ("machine=powerpc"); \ ++ } \ ++ while (0) ++ ++/* Override the default from rs6000.h to avoid conflicts with macros ++ defined in OpenBSD header files. */ ++ ++#undef RS6000_CPU_CPP_ENDIAN_BUILTINS ++#define RS6000_CPU_CPP_ENDIAN_BUILTINS() \ ++ do \ ++ { \ ++ if (BYTES_BIG_ENDIAN) \ ++ { \ ++ builtin_define ("__BIG_ENDIAN__"); \ ++ builtin_assert ("machine=bigendian"); \ ++ } \ ++ else \ ++ { \ ++ builtin_define ("__LITTLE_ENDIAN__"); \ ++ builtin_assert ("machine=littleendian"); \ ++ } \ ++ } \ ++ while (0) ++ ++#undef CPP_OS_DEFAULT_SPEC ++#define CPP_OS_DEFAULT_SPEC "%(cpp_os_openbsd)" ++ ++#undef LINKER_NAME ++#define LINKER_NAME "ld" ++ ++#undef LINK_SPEC ++#define LINK_SPEC "%{shared:-shared} \ ++ %{!shared: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}} \ ++ %{static:-static}}" ++ ++#undef LIB_DEFAULT_SPEC ++#define LIB_DEFAULT_SPEC "%(lib_openbsd)" ++ ++#undef STARTFILE_DEFAULT_SPEC ++#define STARTFILE_DEFAULT_SPEC "%(startfile_openbsd)" ++ ++#undef ENDFILE_DEFAULT_SPEC ++#define ENDFILE_DEFAULT_SPEC "%(endfile_openbsd)" ++ ++#undef LINK_START_DEFAULT_SPEC ++#define LINK_START_DEFAULT_SPEC "%(link_start_openbsd)" ++ ++#undef LINK_OS_DEFAULT_SPEC ++#define LINK_OS_DEFAULT_SPEC "%(link_os_openbsd)" ++ ++#undef TARGET_VERSION ++#define TARGET_VERSION fprintf (stderr, " (PowerPC OpenBSD)"); ++ ++/* Default ABI to use */ ++#undef RS6000_ABI_NAME ++#define RS6000_ABI_NAME "openbsd" ++ ++/* Define this macro as a C expression for the initializer of an ++ array of string to tell the driver program which options are ++ defaults for this target and thus do not need to be handled ++ specially when using `MULTILIB_OPTIONS'. ++ ++ Do not define this macro if `MULTILIB_OPTIONS' is not defined in ++ the target makefile fragment or if none of the options listed in ++ `MULTILIB_OPTIONS' are set by default. *Note Target Fragment::. */ ++ ++#undef MULTILIB_DEFAULTS ++#define MULTILIB_DEFAULTS { "mbig", "mcall-openbsd" } ++ ++/* collect2 support (Macros for initialization). */ ++ ++ ++/* Don't tell collect2 we use COFF as we don't have (yet ?) a dynamic ld ++ library with the proper functions to handle this -> collect2 will ++ default to using nm. */ ++#undef OBJECT_FORMAT_COFF ++ ++/* Some code gets optimized incorrectly by move_movables() in loop.c */ ++#define BROKEN_MOVE_MOVABLES_P ++ ++/* This must agree with */ ++#undef SIZE_TYPE ++#define SIZE_TYPE "long unsigned int" ++ ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE "long int" ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "int" ++ ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++#undef TRAMPOLINE_SIZE ++#define TRAMPOLINE_SIZE 40 ++ diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_t-openbsd b/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_t-openbsd new file mode 100644 index 00000000000..622aabd280c --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_rs6000_t-openbsd @@ -0,0 +1,59 @@ +$OpenBSD: patch-gcc_config_rs6000_t-openbsd,v 1.1.1.1 2009/06/22 22:37:31 sthen Exp $ +--- gcc/config/rs6000/t-openbsd.orig Tue Jun 12 12:23:22 2007 ++++ gcc/config/rs6000/t-openbsd Tue Jun 12 12:18:16 2007 +@@ -0,0 +1,55 @@ ++# include t-rs6000 too ++# this is taken from t-ppccomm ++# but crt* removed. ++ ++ ++LIB2FUNCS_EXTRA = tramp.S ++ ++# This one can't end up in shared libgcc ++LIB2FUNCS_STATIC_EXTRA = eabi.S ++ ++# We want fine grained libraries, so use the new code to build the ++# floating point emulation libraries. ++FPBIT = fp-bit.c ++DPBIT = dp-bit.c ++ ++ ++dp-bit.c: $(srcdir)/config/fp-bit.c ++ cat $(srcdir)/config/fp-bit.c > dp-bit.c ++ ++fp-bit.c: $(srcdir)/config/fp-bit.c ++ echo '#define FLOAT' > fp-bit.c ++ cat $(srcdir)/config/fp-bit.c >> fp-bit.c ++ ++eabi.S: $(srcdir)/config/rs6000/eabi.asm ++ cat $(srcdir)/config/rs6000/eabi.asm > eabi.S ++ ++tramp.S: $(srcdir)/config/rs6000/tramp.asm ++ cat $(srcdir)/config/rs6000/tramp.asm > tramp.S ++ ++# Switch synonyms ++MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \ ++ msoft-float=mcpu?403 \ ++ msoft-float=mcpu?ec603e \ ++ msoft-float=mcpu?801 \ ++ msoft-float=mcpu?821 \ ++ msoft-float=mcpu?823 \ ++ msoft-float=mcpu?860 ++MULTILIB_MATCHES_ENDIAN = mlittle=mlittle-endian mbig=mbig-endian ++MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux mcall-sysv=mcall-netbsd ++ ++LIBGCC = stmp-multilib ++INSTALL_LIBGCC = install-multilib ++EXTRA_MULTILIB_PARTS = crtsavres$(objext) ++ ++crtsavres.S: $(srcdir)/config/rs6000/crtsavres.asm ++ cat $(srcdir)/config/rs6000/crtsavres.asm >crtsavres.S ++ ++$(T)crtsavres$(objext): crtsavres.S ++ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtsavres.S -o $(T)crtsavres$(objext) ++ ++# It is important that crtbegin.o, etc., aren't surprised by stuff in .sdata. ++CRTSTUFF_T_CFLAGS = -msdata=none ++# Make sure crt*.o are built with -fPIC even if configured with ++# --enable-shared --disable-multilib ++CRTSTUFF_T_CFLAGS_S = -fPIC -msdata=none diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_t-openbsd b/lang/llvm-gcc4/patches/patch-gcc_config_t-openbsd new file mode 100644 index 00000000000..ed1d0647711 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_t-openbsd @@ -0,0 +1,13 @@ +$OpenBSD: patch-gcc_config_t-openbsd,v 1.1.1.1 2009/06/22 22:37:31 sthen Exp $ +--- gcc/config/t-openbsd.orig Tue Sep 23 20:56:00 2003 ++++ gcc/config/t-openbsd Sat Apr 11 14:22:32 2009 +@@ -1,2 +1,8 @@ + # We don't need GCC's own include files. +-USER_H = ++USER_H = $(EXTRA_HEADERS) ++# Use unwind-dw2-fde-glibc ++LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-openbsd.c \ ++ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c ++LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c \ ++ unwind-dw2-fde-glibc.c ++ diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_vax_openbsd_h b/lang/llvm-gcc4/patches/patch-gcc_config_vax_openbsd_h new file mode 100644 index 00000000000..65e8ae3b04c --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_vax_openbsd_h @@ -0,0 +1,23 @@ +$OpenBSD: patch-gcc_config_vax_openbsd_h,v 1.1.1.1 2009/06/22 22:37:31 sthen Exp $ +--- gcc/config/vax/openbsd.h.orig Wed Jul 11 22:32:42 2007 ++++ gcc/config/vax/openbsd.h Mon Jun 22 00:53:58 2009 +@@ -34,13 +34,17 @@ Boston, MA 02110-1301, USA. */ + + /* This must agree with */ + #undef SIZE_TYPE +-#define SIZE_TYPE "unsigned int" ++#define SIZE_TYPE "long unsigned int" + + #undef PTRDIFF_TYPE +-#define PTRDIFF_TYPE "int" ++#define PTRDIFF_TYPE "long int" + + #undef WCHAR_TYPE + #define WCHAR_TYPE "int" + + #undef WCHAR_TYPE_SIZE + #define WCHAR_TYPE_SIZE 32 ++ ++#undef WINT_TYPE ++#define WINT_TYPE "int" ++ diff --git a/lang/llvm-gcc4/patches/patch-gcc_config_x-openbsd b/lang/llvm-gcc4/patches/patch-gcc_config_x-openbsd new file mode 100644 index 00000000000..ee4b06acab8 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_config_x-openbsd @@ -0,0 +1,8 @@ +$OpenBSD: patch-gcc_config_x-openbsd,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/config/x-openbsd.orig Mon Jan 31 14:50:47 2005 ++++ gcc/config/x-openbsd Mon Jan 31 14:51:13 2005 +@@ -0,0 +1,4 @@ ++host-openbsd.o : $(srcdir)/config/host-openbsd.c $(CONFIG_H) $(SYSTEM_H) \ ++ coretypes.h hosthooks.h hosthooks-def.h $(HOOKS_H) ++ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ ++ $(srcdir)/config/host-openbsd.c diff --git a/lang/llvm-gcc4/patches/patch-gcc_coverage_c b/lang/llvm-gcc4/patches/patch-gcc_coverage_c new file mode 100644 index 00000000000..029195daeb6 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_coverage_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_coverage_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/coverage.c.orig Mon Nov 3 07:33:15 2008 ++++ gcc/coverage.c Mon Jun 22 00:53:58 2009 +@@ -810,7 +810,7 @@ build_gcov_info (void) + fields = field; + filename = getpwd (); + filename = (filename && da_file_name[0] != '/' +- ? concat (filename, "/", da_file_name, NULL) ++ ? concat (filename, "/", da_file_name, (void *)0) + : da_file_name); + filename_len = strlen (filename); + filename_string = build_string (filename_len + 1, filename); diff --git a/lang/llvm-gcc4/patches/patch-gcc_cp_call_c b/lang/llvm-gcc4/patches/patch-gcc_cp_call_c new file mode 100644 index 00000000000..f86b2a13d20 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_cp_call_c @@ -0,0 +1,21 @@ +$OpenBSD: patch-gcc_cp_call_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/cp/call.c.orig Mon Nov 3 07:33:15 2008 ++++ gcc/cp/call.c Mon Jun 22 00:53:58 2009 +@@ -5414,7 +5414,7 @@ name_as_c_string (tree name, tree type, bool *free_p) + || name == base_dtor_identifier + || name == deleting_dtor_identifier) + { +- pretty_name = concat ("~", pretty_name, NULL); ++ pretty_name = concat ("~", pretty_name, (void *)0); + /* Remember that we need to free the memory allocated. */ + *free_p = true; + } +@@ -5424,7 +5424,7 @@ name_as_c_string (tree name, tree type, bool *free_p) + pretty_name = concat ("operator ", + type_as_string (TREE_TYPE (name), + TFF_PLAIN_IDENTIFIER), +- NULL); ++ (void *)0); + /* Remember that we need to free the memory allocated. */ + *free_p = true; + } diff --git a/lang/llvm-gcc4/patches/patch-gcc_cp_decl2_c b/lang/llvm-gcc4/patches/patch-gcc_cp_decl2_c new file mode 100644 index 00000000000..733565d7a72 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_cp_decl2_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_cp_decl2_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/cp/decl2.c.orig Mon Nov 3 02:04:09 2008 ++++ gcc/cp/decl2.c Mon Jun 22 00:53:58 2009 +@@ -3317,7 +3317,7 @@ build_java_method_aliases (void) + oid = DECL_ASSEMBLER_NAME (fndecl); + oname = IDENTIFIER_POINTER (oid); + gcc_assert (oname[0] == '_' && oname[1] == 'Z'); +- nname = ACONCAT (("_ZGA", oname+2, NULL)); ++ nname = ACONCAT (("_ZGA", oname+2, (char *)0)); + nid = get_identifier (nname); + + alias = make_alias_for (fndecl, nid); diff --git a/lang/llvm-gcc4/patches/patch-gcc_cp_g++spec_c b/lang/llvm-gcc4/patches/patch-gcc_cp_g++spec_c new file mode 100644 index 00000000000..b20c1ab2023 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_cp_g++spec_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_cp_g++spec_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/cp/g++spec.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/cp/g++spec.c Mon Jun 22 00:53:59 2009 +@@ -41,7 +41,7 @@ Boston, MA 02110-1301, USA. */ + #endif + + #ifndef LIBSTDCXX +-#define LIBSTDCXX "-lstdc++" ++#define LIBSTDCXX "-lestdc++" + #endif + #ifndef LIBSTDCXX_PROFILE + #define LIBSTDCXX_PROFILE LIBSTDCXX diff --git a/lang/llvm-gcc4/patches/patch-gcc_cp_parser_c b/lang/llvm-gcc4/patches/patch-gcc_cp_parser_c new file mode 100644 index 00000000000..01d211713e3 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_cp_parser_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_cp_parser_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/cp/parser.c.orig Sun Feb 15 04:17:54 2009 ++++ gcc/cp/parser.c Mon Jun 22 00:53:59 2009 +@@ -17612,7 +17612,7 @@ cp_parser_require (cp_parser* parser, + /* Output the MESSAGE -- unless we're parsing tentatively. */ + if (!cp_parser_simulate_error (parser)) + { +- char *message = concat ("expected ", token_desc, NULL); ++ char *message = concat ("expected ", token_desc, (void *)0); + cp_parser_error (parser, message); + free (message); + } diff --git a/lang/llvm-gcc4/patches/patch-gcc_dbxout_c b/lang/llvm-gcc4/patches/patch-gcc_dbxout_c new file mode 100644 index 00000000000..d1f788471a2 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_dbxout_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_dbxout_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/dbxout.c.orig Tue Sep 2 23:20:12 2008 ++++ gcc/dbxout.c Mon Jun 22 00:53:59 2009 +@@ -1136,7 +1136,7 @@ dbxout_init (const char *input_file_name) + if (cwd[0] == '\0') + cwd = "/"; + else if (!IS_DIR_SEPARATOR (cwd[strlen (cwd) - 1])) +- cwd = concat (cwd, "/", NULL); ++ cwd = concat (cwd, "/", (void *)0); + } + #ifdef DBX_OUTPUT_MAIN_SOURCE_DIRECTORY + /* APPLE LOCAL ss2 */ diff --git a/lang/llvm-gcc4/patches/patch-gcc_diagnostic_c b/lang/llvm-gcc4/patches/patch-gcc_diagnostic_c new file mode 100644 index 00000000000..f016c115660 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_diagnostic_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_diagnostic_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/diagnostic.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/diagnostic.c Mon Jun 22 00:53:59 2009 +@@ -430,7 +430,7 @@ diagnostic_report_diagnostic (diagnostic_context *cont + if (context->show_option_requested && diagnostic->option_index) + diagnostic->message.format_spec + = ACONCAT ((diagnostic->message.format_spec, +- " [", cl_options[diagnostic->option_index].opt_text, "]", NULL)); ++ " [", cl_options[diagnostic->option_index].opt_text, "]", (char *)0)); + + diagnostic->message.locus = &diagnostic->location; + pp_format (context->printer, &diagnostic->message); diff --git a/lang/llvm-gcc4/patches/patch-gcc_gcc_c b/lang/llvm-gcc4/patches/patch-gcc_gcc_c new file mode 100644 index 00000000000..ebfc505b27d --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_gcc_c @@ -0,0 +1,210 @@ +$OpenBSD: patch-gcc_gcc_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/gcc.c.orig Mon Jun 22 01:17:01 2009 ++++ gcc/gcc.c Mon Jun 22 01:17:03 2009 +@@ -1406,7 +1406,7 @@ translate_options (int *argcp, const char *const **arg + /* Store the translation as one argv elt or as two. */ + if (arg != 0 && strchr (arginfo, 'j') != 0) + newv[newindex++] = concat (option_map[j].equivalent, arg, +- NULL); ++ (void *)0); + else if (arg != 0) + { + newv[newindex++] = option_map[j].equivalent; +@@ -1746,7 +1746,7 @@ init_gcc_specs (struct obstack *obstack, const char *s + "%{shared:", shared_name, "}" + #endif + #endif +- "}}", NULL); ++ "}}", (void *)0); + + obstack_grow (obstack, buf, strlen (buf)); + free (buf); +@@ -1944,7 +1944,7 @@ set_spec (const char *name, const char *spec) + + old_spec = *(sl->ptr_spec); + *(sl->ptr_spec) = ((spec[0] == '+' && ISSPACE ((unsigned char)spec[1])) +- ? concat (old_spec, spec + 1, NULL) ++ ? concat (old_spec, spec + 1, (void *)0) + : xstrdup (spec)); + + #ifdef DEBUG_SPECS +@@ -2514,12 +2514,12 @@ for_each_path (const struct path_prefix *paths, + just_multi_suffix = just_machine_suffix; + if (do_multi && multilib_dir && strcmp (multilib_dir, ".") != 0) + { +- multi_dir = concat (multilib_dir, dir_separator_str, NULL); +- multi_suffix = concat (multi_suffix, multi_dir, NULL); +- just_multi_suffix = concat (just_multi_suffix, multi_dir, NULL); ++ multi_dir = concat (multilib_dir, dir_separator_str, (void *)0); ++ multi_suffix = concat (multi_suffix, multi_dir, (void *)0); ++ just_multi_suffix = concat (just_multi_suffix, multi_dir, (void *)0); + } + if (do_multi && multilib_os_dir && strcmp (multilib_os_dir, ".") != 0) +- multi_os_dir = concat (multilib_os_dir, dir_separator_str, NULL); ++ multi_os_dir = concat (multilib_os_dir, dir_separator_str, (void *)0); + + while (1) + { +@@ -2867,8 +2867,8 @@ add_sysrooted_prefix (struct path_prefix *pprefix, con + if (target_system_root) + { + if (target_sysroot_suffix) +- prefix = concat (target_sysroot_suffix, prefix, NULL); +- prefix = concat (target_system_root, prefix, NULL); ++ prefix = concat (target_sysroot_suffix, prefix, (void *)0); ++ prefix = concat (target_system_root, prefix, (void *)0); + + /* We have to override this because GCC's notion of sysroot + moves along with GCC. */ +@@ -3506,7 +3506,7 @@ process_command (int argc, const char **argv) + break; + new_argv0 = xmemdup (progname, baselen, + baselen + concat_length (new_version, new_machine, +- "-gcc-", NULL) + 1); ++ "-gcc-", (void *)0) + 1); + strcpy (new_argv0 + baselen, new_machine); + strcat (new_argv0, "-gcc-"); + strcat (new_argv0, new_version); +@@ -3533,7 +3533,7 @@ process_command (int argc, const char **argv) + standard_bindir_prefix, + standard_libexec_prefix); + if (gcc_exec_prefix) +- putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL)); ++ putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, (void *)0)); + } + else + { +@@ -3541,7 +3541,7 @@ process_command (int argc, const char **argv) + GCC_EXEC_PREFIX is typically a directory name with a trailing + / (which is ignored by make_relative_prefix), so append a + program name. */ +- char *tmp_prefix = concat (gcc_exec_prefix, "gcc", NULL); ++ char *tmp_prefix = concat (gcc_exec_prefix, "gcc", (void *)0); + gcc_libexec_prefix = make_relative_prefix (tmp_prefix, + standard_exec_prefix, + standard_libexec_prefix); +@@ -3588,7 +3588,7 @@ process_command (int argc, const char **argv) + { + strncpy (nstore, startp, endp - startp); + if (endp == startp) +- strcpy (nstore, concat (".", dir_separator_str, NULL)); ++ strcpy (nstore, concat (".", dir_separator_str, (void *)0)); + else if (!IS_DIR_SEPARATOR (endp[-1])) + { + nstore[endp - startp] = DIR_SEPARATOR; +@@ -3622,7 +3622,7 @@ process_command (int argc, const char **argv) + { + strncpy (nstore, startp, endp - startp); + if (endp == startp) +- strcpy (nstore, concat (".", dir_separator_str, NULL)); ++ strcpy (nstore, concat (".", dir_separator_str, (void *)0)); + else if (!IS_DIR_SEPARATOR (endp[-1])) + { + nstore[endp - startp] = DIR_SEPARATOR; +@@ -3655,7 +3655,7 @@ process_command (int argc, const char **argv) + { + strncpy (nstore, startp, endp - startp); + if (endp == startp) +- strcpy (nstore, concat (".", dir_separator_str, NULL)); ++ strcpy (nstore, concat (".", dir_separator_str, (void *)0)); + else if (!IS_DIR_SEPARATOR (endp[-1])) + { + nstore[endp - startp] = DIR_SEPARATOR; +@@ -4178,7 +4178,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR + PREFIX_PRIORITY_LAST, 1, 0); + + tooldir_prefix = concat (tooldir_base_prefix, spec_machine, +- dir_separator_str, NULL); ++ dir_separator_str, (void *)0); + + /* If tooldir is relative, base it on exec_prefixes. A relative + tooldir lets us move the installed tree as a unit. +@@ -4193,28 +4193,28 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR + { + char *gcc_exec_tooldir_prefix + = concat (gcc_exec_prefix, spec_machine, dir_separator_str, +- spec_version, dir_separator_str, tooldir_prefix, NULL); ++ spec_version, dir_separator_str, tooldir_prefix, (void *)0); + + add_prefix (&exec_prefixes, + concat (gcc_exec_tooldir_prefix, "bin", +- dir_separator_str, NULL), ++ dir_separator_str, (void *)0), + NULL, PREFIX_PRIORITY_LAST, 0, 0); + add_prefix (&startfile_prefixes, + concat (gcc_exec_tooldir_prefix, "lib", +- dir_separator_str, NULL), ++ dir_separator_str, (void *)0), + NULL, PREFIX_PRIORITY_LAST, 0, 1); + } + + tooldir_prefix = concat (standard_exec_prefix, spec_machine, + dir_separator_str, spec_version, +- dir_separator_str, tooldir_prefix, NULL); ++ dir_separator_str, tooldir_prefix, (void *)0); + } + + add_prefix (&exec_prefixes, +- concat (tooldir_prefix, "bin", dir_separator_str, NULL), ++ concat (tooldir_prefix, "bin", dir_separator_str, (void *)0), + "BINUTILS", PREFIX_PRIORITY_LAST, 0, 0); + add_prefix (&startfile_prefixes, +- concat (tooldir_prefix, "lib", dir_separator_str, NULL), ++ concat (tooldir_prefix, "lib", dir_separator_str, (void *)0), + "BINUTILS", PREFIX_PRIORITY_LAST, 0, 1); + + #if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS) +@@ -4338,7 +4338,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR + { /* POSIX allows separation of -l and the lib arg; + canonicalize by concatenating -l with its arg */ + infiles[n_infiles].language = "*"; +- infiles[n_infiles++].name = concat ("-l", argv[++i], NULL); ++ infiles[n_infiles++].name = concat ("-l", argv[++i], (void *)0); + } + else if (strncmp (argv[i], "-l", 2) == 0) + { +@@ -6618,8 +6618,8 @@ main (int argc, char **argv) + /* Read specs from a file if there is one. */ + + machine_suffix = concat (spec_machine, dir_separator_str, +- spec_version, dir_separator_str, NULL); +- just_machine_suffix = concat (spec_machine, dir_separator_str, NULL); ++ spec_version, dir_separator_str, (void *)0); ++ just_machine_suffix = concat (spec_machine, dir_separator_str, (void *)0); + + specs_file = find_a_file (&startfile_prefixes, "specs", R_OK, true); + /* Read the specs file unless it is a default one. */ +@@ -6743,7 +6743,7 @@ main (int argc, char **argv) + if (gcc_exec_prefix) + add_prefix (&startfile_prefixes, + concat (gcc_exec_prefix, machine_suffix, +- standard_startfile_prefix, NULL), ++ standard_startfile_prefix, (void *)0), + NULL, PREFIX_PRIORITY_LAST, 0, 1); + + /* APPLE LOCAL begin ARM sysroot startfile_prefixes */ +@@ -6753,13 +6753,13 @@ main (int argc, char **argv) + add_sysrooted_prefix (&startfile_prefixes, + concat (standard_exec_prefix, + machine_suffix, +- standard_startfile_prefix, NULL), ++ standard_startfile_prefix, (void *)0), + NULL, PREFIX_PRIORITY_LAST, 0, 1); + else + add_prefix (&startfile_prefixes, + concat (standard_exec_prefix, + machine_suffix, +- standard_startfile_prefix, NULL), ++ standard_startfile_prefix, (void *)0), + NULL, PREFIX_PRIORITY_LAST, 0, 1); + /* APPLE LOCAL end ARM sysroot startfile_prefixes */ + } +@@ -6788,7 +6788,7 @@ main (int argc, char **argv) + /* If we have a GCC_EXEC_PREFIX envvar, modify it for cpp's sake. */ + if (gcc_exec_prefix) + gcc_exec_prefix = concat (gcc_exec_prefix, spec_machine, dir_separator_str, +- spec_version, dir_separator_str, NULL); ++ spec_version, dir_separator_str, (void *)0); + + /* Now we have the specs. + Set the `valid' bits for switches that match anything in any spec. */ diff --git a/lang/llvm-gcc4/patches/patch-gcc_gensupport_c b/lang/llvm-gcc4/patches/patch-gcc_gensupport_c new file mode 100644 index 00000000000..a37b2d56c58 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_gensupport_c @@ -0,0 +1,21 @@ +$OpenBSD: patch-gcc_gensupport_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/gensupport.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/gensupport.c Mon Jun 22 00:54:00 2009 +@@ -220,7 +220,7 @@ process_include (rtx desc, int lineno) + { + static const char sep[2] = { DIR_SEPARATOR, '\0' }; + +- pathname = concat (stackp->fname, sep, filename, NULL); ++ pathname = concat (stackp->fname, sep, filename, (void *)0); + input_file = fopen (pathname, "r"); + if (input_file != NULL) + goto success; +@@ -229,7 +229,7 @@ process_include (rtx desc, int lineno) + } + + if (base_dir) +- pathname = concat (base_dir, filename, NULL); ++ pathname = concat (base_dir, filename, (void *)0); + else + pathname = xstrdup (filename); + input_file = fopen (pathname, "r"); diff --git a/lang/llvm-gcc4/patches/patch-gcc_objc_objc-act_c b/lang/llvm-gcc4/patches/patch-gcc_objc_objc-act_c new file mode 100644 index 00000000000..bdff424fe6e --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_objc_objc-act_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_objc_objc-act_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/objc/objc-act.c.orig Sat May 9 00:16:04 2009 ++++ gcc/objc/objc-act.c Mon Jun 22 00:54:00 2009 +@@ -751,7 +751,7 @@ objc_init (void) + /* If gen_declaration desired, open the output file. */ + if (flag_gen_declaration) + { +- register char * const dumpname = concat (dump_base_name, ".decl", NULL); ++ register char * const dumpname = concat (dump_base_name, ".decl", (void *)0); + gen_declaration_file = fopen (dumpname, "w"); + if (gen_declaration_file == 0) + fatal_error ("can't open %s: %m", dumpname); diff --git a/lang/llvm-gcc4/patches/patch-gcc_omp-low_c b/lang/llvm-gcc4/patches/patch-gcc_omp-low_c new file mode 100644 index 00000000000..2411c4fa915 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_omp-low_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_omp-low_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/omp-low.c.orig Fri Aug 3 02:00:37 2007 ++++ gcc/omp-low.c Mon Jun 22 00:54:00 2009 +@@ -3934,7 +3934,7 @@ lower_omp_critical (tree *stmt_p, omp_context *ctx) + decl = create_tmp_var_raw (ptr_type_node, NULL); + + new_str = ACONCAT ((".gomp_critical_user_", +- IDENTIFIER_POINTER (name), NULL)); ++ IDENTIFIER_POINTER (name), (void *)0)); + DECL_NAME (decl) = get_identifier (new_str); + TREE_PUBLIC (decl) = 1; + TREE_STATIC (decl) = 1; diff --git a/lang/llvm-gcc4/patches/patch-gcc_passes_c b/lang/llvm-gcc4/patches/patch-gcc_passes_c new file mode 100644 index 00000000000..14e70fc1862 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_passes_c @@ -0,0 +1,23 @@ +$OpenBSD: patch-gcc_passes_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/passes.c.orig Mon Jan 19 02:26:09 2009 ++++ gcc/passes.c Mon Jun 22 00:54:01 2009 +@@ -359,7 +359,7 @@ register_one_dump_file (struct tree_opt_pass *pass, bo + sprintf (num, "%d", ((int) pass->static_pass_number < 0 + ? 1 : pass->static_pass_number)); + +- dot_name = concat (".", pass->name, num, NULL); ++ dot_name = concat (".", pass->name, num, (void *)0); + if (ipa) + prefix = "ipa-", flags = TDF_IPA; + else if (properties & PROP_trees) +@@ -367,8 +367,8 @@ register_one_dump_file (struct tree_opt_pass *pass, bo + else + prefix = "rtl-", flags = TDF_RTL; + +- flag_name = concat (prefix, pass->name, num, NULL); +- glob_name = concat (prefix, pass->name, NULL); ++ flag_name = concat (prefix, pass->name, num, (void *)0); ++ glob_name = concat (prefix, pass->name, (void *)0); + pass->static_pass_number = dump_register (dot_name, flag_name, glob_name, + flags, pass->letter); + } diff --git a/lang/llvm-gcc4/patches/patch-gcc_prefix_c b/lang/llvm-gcc4/patches/patch-gcc_prefix_c new file mode 100644 index 00000000000..dfc229fa303 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_prefix_c @@ -0,0 +1,35 @@ +$OpenBSD: patch-gcc_prefix_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/prefix.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/prefix.c Mon Jun 22 00:54:01 2009 +@@ -99,7 +99,7 @@ get_key_value (char *key) + #endif + + if (prefix == 0) +- prefix = getenv (temp = concat (key, "_ROOT", NULL)); ++ prefix = getenv (temp = concat (key, "_ROOT", (void *)0)); + + if (prefix == 0) + prefix = std_prefix; +@@ -223,7 +223,7 @@ translate_name (char *name) + together. */ + + old_name = name; +- name = concat (prefix, &name[keylen + 1], NULL); ++ name = concat (prefix, &name[keylen + 1], (void *)0); + free (old_name); + } + +@@ -261,11 +261,11 @@ update_path (const char *path, const char *key) + + if (key[0] != '$') + { +- key = concat ("@", key, NULL); ++ key = concat ("@", key, (void *)0); + free_key = true; + } + +- result = concat (key, &path[len], NULL); ++ result = concat (key, &path[len], (void *)0); + if (free_key) + free ((char *) key); + result = translate_name (result); diff --git a/lang/llvm-gcc4/patches/patch-gcc_read-rtl_c b/lang/llvm-gcc4/patches/patch-gcc_read-rtl_c new file mode 100644 index 00000000000..14d9e323bed --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_read-rtl_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_read-rtl_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/read-rtl.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/read-rtl.c Mon Jun 22 00:54:01 2009 +@@ -784,7 +784,7 @@ join_c_conditions (const char *cond1, const char *cond + if (cond2 == 0 || cond2[0] == 0) + return cond1; + +- result = concat ("(", cond1, ") && (", cond2, ")", NULL); ++ result = concat ("(", cond1, ") && (", cond2, ")", (void *)0); + obstack_ptr_grow (&joined_conditions_obstack, result); + obstack_ptr_grow (&joined_conditions_obstack, cond1); + obstack_ptr_grow (&joined_conditions_obstack, cond2); diff --git a/lang/llvm-gcc4/patches/patch-gcc_testsuite_ada_acats_run_acats b/lang/llvm-gcc4/patches/patch-gcc_testsuite_ada_acats_run_acats new file mode 100644 index 00000000000..87dd26796ba --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_testsuite_ada_acats_run_acats @@ -0,0 +1,14 @@ +$OpenBSD: patch-gcc_testsuite_ada_acats_run_acats,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/testsuite/ada/acats/run_acats.orig Fri Jan 7 04:04:46 2005 ++++ gcc/testsuite/ada/acats/run_acats Fri Jan 7 04:06:26 2005 +@@ -7,8 +7,8 @@ fi + + # Set up environment to use the Ada compiler from the object tree + +-host_gnatchop=`type gnatchop | awk '{print $3}'` +-host_gnatmake=`type gnatmake | awk '{print $3}'` ++host_gnatchop=`which gnatchop` ++host_gnatmake=`which gnatmake` + ROOT=`${PWDCMD-pwd}` + BASE=`cd $ROOT/../../..; ${PWDCMD-pwd}` + diff --git a/lang/llvm-gcc4/patches/patch-gcc_testsuite_ada_acats_run_all_sh b/lang/llvm-gcc4/patches/patch-gcc_testsuite_ada_acats_run_all_sh new file mode 100644 index 00000000000..c2795e50884 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_testsuite_ada_acats_run_all_sh @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_testsuite_ada_acats_run_all_sh,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/testsuite/ada/acats/run_all.sh.orig Mon May 8 18:50:40 2006 ++++ gcc/testsuite/ada/acats/run_all.sh Sun Jul 23 11:24:02 2006 +@@ -84,7 +84,7 @@ display target gcc is $GCC + display `$GCC -v 2>&1` + display host=`gcc -dumpmachine` + display target=$target +-display `type gnatmake` ++display `which gnatmake` + gnatls -v >> $dir/acats.log + display "" + diff --git a/lang/llvm-gcc4/patches/patch-gcc_testsuite_gcc_dg_format_format_h b/lang/llvm-gcc4/patches/patch-gcc_testsuite_gcc_dg_format_format_h new file mode 100644 index 00000000000..a44f24963f7 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_testsuite_gcc_dg_format_format_h @@ -0,0 +1,17 @@ +$OpenBSD: patch-gcc_testsuite_gcc_dg_format_format_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/testsuite/gcc.dg/format/format.h.orig Sat Jul 22 23:16:52 2006 ++++ gcc/testsuite/gcc.dg/format/format.h Sat Jul 22 23:17:34 2006 +@@ -4,11 +4,13 @@ + #include + #include + ++#ifndef _WINT_T_DEFINED_ + #ifndef _WINT_T + #ifndef __WINT_TYPE__ + #define __WINT_TYPE__ unsigned int + #endif + typedef __WINT_TYPE__ wint_t; ++#endif + #endif + + /* Kludges to get types corresponding to size_t and ptrdiff_t. */ diff --git a/lang/llvm-gcc4/patches/patch-gcc_tree-complex_c b/lang/llvm-gcc4/patches/patch-gcc_tree-complex_c new file mode 100644 index 00000000000..9f9c511de77 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_tree-complex_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_tree-complex_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/tree-complex.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/tree-complex.c Mon Jun 22 00:54:03 2009 +@@ -397,7 +397,7 @@ create_one_component_var (tree type, tree orig, const + const char *name = IDENTIFIER_POINTER (DECL_NAME (orig)); + tree inner_type; + +- DECL_NAME (r) = get_identifier (ACONCAT ((name, suffix, NULL))); ++ DECL_NAME (r) = get_identifier (ACONCAT ((name, suffix, (char *)0))); + + inner_type = TREE_TYPE (TREE_TYPE (orig)); + SET_DECL_DEBUG_EXPR (r, build1 (code, type, orig)); diff --git a/lang/llvm-gcc4/patches/patch-gcc_tree-dump_c b/lang/llvm-gcc4/patches/patch-gcc_tree-dump_c new file mode 100644 index 00000000000..bef32c55683 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_tree-dump_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_tree-dump_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/tree-dump.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/tree-dump.c Mon Jun 22 00:54:03 2009 +@@ -867,7 +867,7 @@ get_dump_file_name (enum tree_dump_index phase) + dump_id[0] = '\0'; + } + +- return concat (dump_base_name, dump_id, dfi->suffix, NULL); ++ return concat (dump_base_name, dump_id, dfi->suffix, (void *)0); + } + + /* Begin a tree dump for PHASE. Stores any user supplied flag in diff --git a/lang/llvm-gcc4/patches/patch-gcc_tree-mudflap_c b/lang/llvm-gcc4/patches/patch-gcc_tree-mudflap_c new file mode 100644 index 00000000000..32cf5889d7f --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_tree-mudflap_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_tree-mudflap_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/tree-mudflap.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/tree-mudflap.c Mon Jun 22 00:54:04 2009 +@@ -236,7 +236,7 @@ mf_file_function_line_tree (location_t location) + else + op = name = cp = ""; + +- string = concat (file, colon, line, op, name, cp, NULL); ++ string = concat (file, colon, line, op, name, cp, (void *)0); + result = mf_build_string (string); + free (string); + diff --git a/lang/llvm-gcc4/patches/patch-gcc_tree-nested_c b/lang/llvm-gcc4/patches/patch-gcc_tree-nested_c new file mode 100644 index 00000000000..9764a1679ad --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_tree-nested_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_tree-nested_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/tree-nested.c.orig Sun Feb 15 04:17:54 2009 ++++ gcc/tree-nested.c Mon Jun 22 00:54:04 2009 +@@ -258,7 +258,7 @@ get_frame_type (struct nesting_info *info) + + name = concat ("FRAME.", + IDENTIFIER_POINTER (DECL_NAME (info->context)), +- NULL); ++ (void *)0); + TYPE_NAME (type) = get_identifier (name); + free (name); + diff --git a/lang/llvm-gcc4/patches/patch-gcc_tree-vect-transform_c b/lang/llvm-gcc4/patches/patch-gcc_tree-vect-transform_c new file mode 100644 index 00000000000..e1dcee6c387 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_tree-vect-transform_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_tree-vect-transform_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/tree-vect-transform.c.orig Wed Jul 11 22:32:42 2007 ++++ gcc/tree-vect-transform.c Mon Jun 22 00:54:04 2009 +@@ -105,7 +105,7 @@ vect_get_new_vect_var (tree type, enum vect_var_kind v + } + + if (name) +- new_vect_var = create_tmp_var (type, concat (prefix, name, NULL)); ++ new_vect_var = create_tmp_var (type, concat (prefix, name, (void *)0)); + else + new_vect_var = create_tmp_var (type, prefix); + diff --git a/lang/llvm-gcc4/patches/patch-gcc_tree_c b/lang/llvm-gcc4/patches/patch-gcc_tree_c new file mode 100644 index 00000000000..7b13bbb63de --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_tree_c @@ -0,0 +1,17 @@ +$OpenBSD: patch-gcc_tree_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/tree.c.orig Thu Mar 19 22:14:10 2009 ++++ gcc/tree.c Mon Jun 22 00:54:05 2009 +@@ -6931,11 +6931,11 @@ build_common_builtin_nodes (void) + *q = TOLOWER (*p); + *q = '\0'; + +- built_in_names[mcode] = concat ("__mul", mode_name_buf, "3", NULL); ++ built_in_names[mcode] = concat ("__mul", mode_name_buf, "3", (void *)0); + local_define_builtin (built_in_names[mcode], ftype, mcode, + built_in_names[mcode], ECF_CONST | ECF_NOTHROW); + +- built_in_names[dcode] = concat ("__div", mode_name_buf, "3", NULL); ++ built_in_names[dcode] = concat ("__div", mode_name_buf, "3", (void *)0); + local_define_builtin (built_in_names[dcode], ftype, dcode, + built_in_names[dcode], ECF_CONST | ECF_NOTHROW); + } diff --git a/lang/llvm-gcc4/patches/patch-gcc_unwind-dw2-fde-openbsd_c b/lang/llvm-gcc4/patches/patch-gcc_unwind-dw2-fde-openbsd_c new file mode 100644 index 00000000000..ff71f31e327 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_unwind-dw2-fde-openbsd_c @@ -0,0 +1,14 @@ +$OpenBSD: patch-gcc_unwind-dw2-fde-openbsd_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/unwind-dw2-fde-openbsd.c.orig Sat Apr 11 14:24:23 2009 ++++ gcc/unwind-dw2-fde-openbsd.c Sat Apr 11 14:24:02 2009 +@@ -0,0 +1,10 @@ ++/* XXX This file provides a few defines such that we can compile the ++ source from unwind-dw2-fde-glibc.c on OpenBSD. Hopefully we can ++ integrate these defines in that file and rename it to something ++ like unwind-de2-fde-phdr.c in the up-stream sources. */ ++ ++#define ElfW(type) Elf_##type ++ ++#define __GLIBC__ 3 /* Fool unwind-dw2-fde-glibc.c. */ ++#include "unwind-dw2-fde-glibc.c" ++ diff --git a/lang/llvm-gcc4/patches/patch-gcc_unwind-dw2_c b/lang/llvm-gcc4/patches/patch-gcc_unwind-dw2_c new file mode 100644 index 00000000000..9e0e0d81a4b --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_unwind-dw2_c @@ -0,0 +1,51 @@ +$OpenBSD: patch-gcc_unwind-dw2_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/unwind-dw2.c.orig Thu Jan 25 02:13:44 2007 ++++ gcc/unwind-dw2.c Wed Mar 18 11:03:10 2009 +@@ -150,6 +150,25 @@ _Unwind_IsExtendedContext (struct _Unwind_Context *con + { + return context->flags & EXTENDED_CONTEXT_BIT; + } ++ ++#ifdef __sparc64__ ++ ++/* Figure out StackGhost cookie. */ ++_Unwind_Word uw_get_wcookie(void); ++ ++asm(".text\n" ++ "uw_get_wcookie:\n" ++ " add %o7, %g0, %g4\n" ++ " save %sp, -176, %sp\n" ++ " save %sp, -176, %sp\n" ++ " flushw\n" ++ " restore\n" ++ " ldx [%sp + 2047 + 120], %g5\n" ++ " xor %g4, %g5, %i0\n" ++ " ret\n" ++ " restore\n"); ++#endif ++ + + /* Get the value of register INDEX as saved in CONTEXT. */ + +@@ -172,6 +191,13 @@ _Unwind_GetGR (struct _Unwind_Context *context, int in + if (_Unwind_IsExtendedContext (context) && context->by_value[index]) + return (_Unwind_Word) (_Unwind_Internal_Ptr) ptr; + ++#ifdef __sparc64__ ++ /* _Unwind_Word and _Unwind_Ptr are the same size on sparc64 */ ++ _Unwind_Word reg = * (_Unwind_Word *) ptr; ++ if (index == 15 || index == 31) ++ reg ^= uw_get_wcookie (); ++ return reg; ++#else + /* This will segfault if the register hasn't been saved. */ + if (size == sizeof(_Unwind_Ptr)) + return * (_Unwind_Ptr *) ptr; +@@ -180,6 +206,7 @@ _Unwind_GetGR (struct _Unwind_Context *context, int in + gcc_assert (size == sizeof(_Unwind_Word)); + return * (_Unwind_Word *) ptr; + } ++#endif + } + + static inline void * diff --git a/lang/llvm-gcc4/patches/patch-gcc_varasm_c b/lang/llvm-gcc4/patches/patch-gcc_varasm_c new file mode 100644 index 00000000000..75389f8950e --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-gcc_varasm_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gcc_varasm_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- gcc/varasm.c.orig Sun Feb 15 04:17:54 2009 ++++ gcc/varasm.c Mon Jun 22 00:54:05 2009 +@@ -402,7 +402,7 @@ initialize_cold_section_name (void) + + stripped_name = targetm.strip_name_encoding (name); + +- buffer = ACONCAT ((stripped_name, "_unlikely", NULL)); ++ buffer = ACONCAT ((stripped_name, "_unlikely", (char *)0)); + cfun->unlikely_text_section_name = ggc_strdup (buffer); + } + else diff --git a/lang/llvm-gcc4/patches/patch-libffi_configure b/lang/llvm-gcc4/patches/patch-libffi_configure new file mode 100644 index 00000000000..288abd9f2bd --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libffi_configure @@ -0,0 +1,50 @@ +$OpenBSD: patch-libffi_configure,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libffi/configure.orig Mon May 19 10:28:07 2008 ++++ libffi/configure Tue Apr 21 17:29:31 2009 +@@ -3464,6 +3464,14 @@ linux-gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + ++openbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' ++ fi ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +@@ -5390,6 +5398,7 @@ i*86-*-solaris*) TARGET=X86; TARGETDIR=x86;; + i*86-*-beos*) TARGET=X86; TARGETDIR=x86;; + i*86-*-darwin*) TARGET=X86_DARWIN; TARGETDIR=x86;; + i*86-*-freebsd* | i*86-*-kfreebsd*-gnu) TARGET=X86; TARGETDIR=x86;; ++i*86-*-openbsd*) TARGET=X86; TARGETDIR=x86;; + i*86-*-netbsdelf* | i*86-*-knetbsd*-gnu) TARGET=X86; TARGETDIR=x86;; + i*86-*-rtems*) TARGET=X86; TARGETDIR=x86;; + i*86-*-win32*) TARGET=X86_WIN32; TARGETDIR=x86;; +@@ -5401,6 +5410,7 @@ sparc*-sun-*) TARGET=SPARC; TARGETDIR=sparc;; + sparc-*-linux* | sparc-*-netbsdelf* | sparc-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;; + sparc*-*-rtems*) TARGET=SPARC; TARGETDIR=sparc;; + sparc64-*-linux* | sparc64-*-freebsd* | sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;; ++sparc64-*-openbsd*) TARGET=SPARC; TARGETDIR=sparc;; + alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) + TARGET=ALPHA; TARGETDIR=alpha + # Support 128-bit long double, changable via command-line switch. +@@ -5417,6 +5427,7 @@ powerpc-*-beos*) TARGET=POWERPC; TARGETDIR=powerpc;; + powerpc-*-darwin*) TARGET=POWERPC_DARWIN; TARGETDIR=powerpc;; + powerpc-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;; + powerpc-*-freebsd*) TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc;; ++powerpc-*-openbsd*) TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc;; + powerpc*-*-rtems*) TARGET=POWERPC; TARGETDIR=powerpc;; + rs6000-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;; + arm*-*-linux-*) TARGET=ARM; TARGETDIR=arm;; +@@ -5426,6 +5437,7 @@ cris-*-*) TARGET=LIBFFI_CRIS; TARGETDIR=cris;; + s390-*-linux-*) TARGET=S390; TARGETDIR=s390;; + s390x-*-linux-*) TARGET=S390; TARGETDIR=s390;; + x86_64-*-linux* | x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) TARGET=X86_64; TARGETDIR=x86;; ++x86_64-*-openbsd*) TARGET=X86_64; TARGETDIR=x86;; + sh-*-linux* | sh[34]*-*-linux*) TARGET=SH; TARGETDIR=sh;; + sh-*-rtems*) TARGET=SH; TARGETDIR=sh;; + sh64-*-linux* | sh5*-*-linux*) TARGET=SH64; TARGETDIR=sh64;; diff --git a/lang/llvm-gcc4/patches/patch-libffi_src_powerpc_ffitarget_h b/lang/llvm-gcc4/patches/patch-libffi_src_powerpc_ffitarget_h new file mode 100644 index 00000000000..9cb6387a35f --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libffi_src_powerpc_ffitarget_h @@ -0,0 +1,11 @@ +$OpenBSD: patch-libffi_src_powerpc_ffitarget_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libffi/src/powerpc/ffitarget.h.orig Mon Mar 16 21:39:23 2009 ++++ libffi/src/powerpc/ffitarget.h Mon Mar 16 21:43:52 2009 +@@ -71,6 +71,7 @@ typedef enum ffi_abi { + FFI_SYSV, + FFI_GCC_SYSV, + FFI_LINUX64, ++ FFI_LINUX, + FFI_DEFAULT_ABI = FFI_SYSV, + #endif + diff --git a/lang/llvm-gcc4/patches/patch-libiberty_testsuite_test-expandargv_c b/lang/llvm-gcc4/patches/patch-libiberty_testsuite_test-expandargv_c new file mode 100644 index 00000000000..b7992518e3b --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libiberty_testsuite_test-expandargv_c @@ -0,0 +1,11 @@ +$OpenBSD: patch-libiberty_testsuite_test-expandargv_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libiberty/testsuite/test-expandargv.c.orig Sat Mar 7 17:08:28 2009 ++++ libiberty/testsuite/test-expandargv.c Sat Mar 7 17:09:01 2009 +@@ -173,6 +173,7 @@ writeout_test (int test, const char * test_data) + fatal_error (__LINE__, "Failed to malloc parse.", errno); + + memcpy (parse, test_data, sizeof (char) * len); ++ parse[len] = '\0'; + /* Run all possible replaces */ + run_replaces (parse); + diff --git a/lang/llvm-gcc4/patches/patch-libjava_configure b/lang/llvm-gcc4/patches/patch-libjava_configure new file mode 100644 index 00000000000..ae17c771611 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libjava_configure @@ -0,0 +1,14 @@ +$OpenBSD: patch-libjava_configure,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libjava/configure.orig Wed Jan 17 13:10:26 2007 ++++ libjava/configure Tue Mar 3 14:45:15 2009 +@@ -9168,6 +9168,10 @@ case "$THREADS" in + THREADLDFLAGS=-pthread + THREADSPEC=-lpthread + ;; ++ *-*-openbsd*) ++ THREADLDFLAGS=-pthread ++ THREADSPEC=-lpthread ++ ;; + alpha*-dec-osf* | hppa*-hp-hpux*) + THREADCXXFLAGS=-pthread + # boehm-gc needs some functions from librt, so link that too. diff --git a/lang/llvm-gcc4/patches/patch-libjava_configure_host b/lang/llvm-gcc4/patches/patch-libjava_configure_host new file mode 100644 index 00000000000..154468cf2c7 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libjava_configure_host @@ -0,0 +1,16 @@ +$OpenBSD: patch-libjava_configure_host,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libjava/configure.host.orig Thu Nov 8 22:56:19 2007 ++++ libjava/configure.host Mon Jun 22 00:54:06 2009 +@@ -270,6 +270,12 @@ EOF + slow_pthread_self= + can_unwind_signal=no + ;; ++ *-*-openbsd*) ++ enable_hash_synchronization_default=no ++ libgcj_flags="${libgcj_flags} -fno-omit-frame-pointer" ++ can_unwind_signal=no ++ slow_pthread_self=no ++ ;; + *-*-freebsd*) + slow_pthread_self= + ;; diff --git a/lang/llvm-gcc4/patches/patch-libjava_libltdl_configure b/lang/llvm-gcc4/patches/patch-libjava_libltdl_configure new file mode 100644 index 00000000000..15b24404645 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libjava_libltdl_configure @@ -0,0 +1,13 @@ +$OpenBSD: patch-libjava_libltdl_configure,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libjava/libltdl/configure.orig Mon Mar 16 09:26:51 2009 ++++ libjava/libltdl/configure Mon Mar 16 09:27:07 2009 +@@ -7294,9 +7294,6 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e + with_gnu_ld=no + fi + ;; +- openbsd*) +- with_gnu_ld=no +- ;; + esac + + ld_shlibs=yes diff --git a/lang/llvm-gcc4/patches/patch-libmudflap_mf-runtime_c b/lang/llvm-gcc4/patches/patch-libmudflap_mf-runtime_c new file mode 100644 index 00000000000..b5094a0adbe --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libmudflap_mf-runtime_c @@ -0,0 +1,11 @@ +$OpenBSD: patch-libmudflap_mf-runtime_c,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libmudflap/mf-runtime.c.orig Wed Aug 17 05:21:42 2005 ++++ libmudflap/mf-runtime.c Sun Mar 18 23:58:46 2007 +@@ -45,6 +45,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, + #define _ALL_SOURCE + #define _LARGE_FILE_API + #define _XOPEN_SOURCE_EXTENDED 1 ++#define __BSD_VISIBLE + + #include + #include diff --git a/lang/llvm-gcc4/patches/patch-libmudflap_mf-runtime_h b/lang/llvm-gcc4/patches/patch-libmudflap_mf-runtime_h new file mode 100644 index 00000000000..3b49b9b854e --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libmudflap_mf-runtime_h @@ -0,0 +1,12 @@ +$OpenBSD: patch-libmudflap_mf-runtime_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libmudflap/mf-runtime.h.orig Wed Jun 21 18:35:27 2006 ++++ libmudflap/mf-runtime.h Sun Mar 18 23:58:46 2007 +@@ -36,7 +36,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, + #define MF_RUNTIME_H + + typedef void *__mf_ptr_t; +-typedef unsigned int __mf_uintptr_t __attribute__ ((__mode__ (__pointer__))); ++typedef unsigned long __mf_uintptr_t __attribute__ ((__mode__ (__pointer__))); + typedef __SIZE_TYPE__ __mf_size_t; + + /* Global declarations used by instrumentation. When _MUDFLAP is diff --git a/lang/llvm-gcc4/patches/patch-libstdc++-v3_acinclude_m4 b/lang/llvm-gcc4/patches/patch-libstdc++-v3_acinclude_m4 new file mode 100644 index 00000000000..7e8565f69ff --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libstdc++-v3_acinclude_m4 @@ -0,0 +1,86 @@ +$OpenBSD: patch-libstdc++-v3_acinclude_m4,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libstdc++-v3/acinclude.m4.orig Fri Jul 13 09:39:34 2007 ++++ libstdc++-v3/acinclude.m4 Mon Jun 22 00:54:07 2009 +@@ -1856,82 +1856,6 @@ AC_DEFUN([GLIBCXX_ENABLE_WCHAR_T], [ + # Test it always, for use in GLIBCXX_ENABLE_C99, together with + # ac_has_wchar_h. + AC_CHECK_HEADERS(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no) +- +- if test x"$enable_wchar_t" = x"yes"; then +- +- AC_LANG_SAVE +- AC_LANG_CPLUSPLUS +- +- if test x"$ac_has_wchar_h" = xyes && +- test x"$ac_has_wctype_h" = xyes; then +- AC_TRY_COMPILE([#include +- #include +- wint_t i; +- long l = WEOF; +- long j = WCHAR_MIN; +- long k = WCHAR_MAX; +- namespace test +- { +- using ::btowc; +- using ::fgetwc; +- using ::fgetws; +- using ::fputwc; +- using ::fputws; +- using ::fwide; +- using ::fwprintf; +- using ::fwscanf; +- using ::getwc; +- using ::getwchar; +- using ::mbrlen; +- using ::mbrtowc; +- using ::mbsinit; +- using ::mbsrtowcs; +- using ::putwc; +- using ::putwchar; +- using ::swprintf; +- using ::swscanf; +- using ::ungetwc; +- using ::vfwprintf; +- using ::vswprintf; +- using ::vwprintf; +- using ::wcrtomb; +- using ::wcscat; +- using ::wcschr; +- using ::wcscmp; +- using ::wcscoll; +- using ::wcscpy; +- using ::wcscspn; +- using ::wcsftime; +- using ::wcslen; +- using ::wcsncat; +- using ::wcsncmp; +- using ::wcsncpy; +- using ::wcspbrk; +- using ::wcsrchr; +- using ::wcsrtombs; +- using ::wcsspn; +- using ::wcsstr; +- using ::wcstod; +- using ::wcstok; +- using ::wcstol; +- using ::wcstoul; +- using ::wcsxfrm; +- using ::wctob; +- using ::wmemchr; +- using ::wmemcmp; +- using ::wmemcpy; +- using ::wmemmove; +- using ::wmemset; +- using ::wprintf; +- using ::wscanf; +- } +- ],[],[], [enable_wchar_t=no]) +- else +- enable_wchar_t=no +- fi +- +- AC_LANG_RESTORE +- fi + + if test x"$enable_wchar_t" = x"yes"; then + AC_DEFINE(_GLIBCXX_USE_WCHAR_T, 1, diff --git a/lang/llvm-gcc4/patches/patch-libstdc++-v3_config_locale_generic_time_members_cc b/lang/llvm-gcc4/patches/patch-libstdc++-v3_config_locale_generic_time_members_cc new file mode 100644 index 00000000000..6a4dcf4f56b --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libstdc++-v3_config_locale_generic_time_members_cc @@ -0,0 +1,20 @@ +$OpenBSD: patch-libstdc++-v3_config_locale_generic_time_members_cc,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libstdc++-v3/config/locale/generic/time_members.cc.orig Fri Jun 5 05:43:54 2009 ++++ libstdc++-v3/config/locale/generic/time_members.cc Fri Jun 5 05:44:13 2009 +@@ -128,12 +128,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std) + { + char* __old = strdup(setlocale(LC_ALL, NULL)); + setlocale(LC_ALL, _M_name_timepunct); ++#if !defined(__OpenBSD__) + const size_t __len = wcsftime(__s, __maxlen, __format, __tm); ++#endif + setlocale(LC_ALL, __old); + free(__old); ++#if !defined(__OpenBSD__) + // Make sure __s is null terminated. + if (__len == 0) + __s[0] = L'\0'; ++#endif + } + + template<> diff --git a/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_compatibility_wchar_h b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_compatibility_wchar_h new file mode 100644 index 00000000000..f7a2ff3cf19 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_compatibility_wchar_h @@ -0,0 +1,46 @@ +$OpenBSD: patch-libstdc++-v3_include_c_compatibility_wchar_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libstdc++-v3/include/c_compatibility/wchar.h.orig Fri Jun 5 00:05:31 2009 ++++ libstdc++-v3/include/c_compatibility/wchar.h Fri Jun 5 00:06:50 2009 +@@ -45,24 +45,32 @@ using std::fgetws; + using std::fputwc; + using std::fputws; + using std::fwide; ++#if !defined(__OpenBSD__) + using std::fwprintf; + using std::fwscanf; + using std::swprintf; + using std::swscanf; + using std::vfwprintf; ++#endif + #if _GLIBCXX_HAVE_VFWSCANF + using std::vfwscanf; + #endif ++#if !defined(__OpenBSD__) + using std::vswprintf; ++#endif + #if _GLIBCXX_HAVE_VSWSCANF + using std::vswscanf; + #endif ++#if !defined(__OpenBSD__) + using std::vwprintf; ++#endif + #if _GLIBCXX_HAVE_VWSCANF + using std::vwscanf; + #endif ++#if !defined(__OpenBSD__) + using std::wprintf; + using std::wscanf; ++#endif + using std::getwc; + using std::getwchar; + using std::mbsinit; +@@ -101,7 +109,9 @@ using std::wmemcmp; + using std::wmemcpy; + using std::wmemmove; + using std::wmemset; ++#if !defined(__OpenBSD__) + using std::wcsftime; ++#endif + + #if _GLIBCXX_USE_C99 + using std::wcstold; diff --git a/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_std_std_cwchar_h b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_std_std_cwchar_h new file mode 100644 index 00000000000..83f7c705d25 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_std_std_cwchar_h @@ -0,0 +1,62 @@ +$OpenBSD: patch-libstdc++-v3_include_c_std_std_cwchar_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libstdc++-v3/include/c_std/std_cwchar.h.orig Fri Jun 5 00:00:55 2009 ++++ libstdc++-v3/include/c_std/std_cwchar.h Fri Jun 5 00:05:00 2009 +@@ -151,8 +151,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) + using ::fputwc; + using ::fputws; + using ::fwide; ++#if !defined(__OpenBSD__) + using ::fwprintf; + using ::fwscanf; ++#endif + using ::getwc; + using ::getwchar; + using ::mbrlen; +@@ -161,18 +163,26 @@ _GLIBCXX_BEGIN_NAMESPACE(std) + using ::mbsrtowcs; + using ::putwc; + using ::putwchar; ++#if !defined(__OpenBSD__) + using ::swprintf; + using ::swscanf; ++#endif + using ::ungetwc; ++#if !defined(__OpenBSD__) + using ::vfwprintf; ++#endif + #if _GLIBCXX_HAVE_VFWSCANF + using ::vfwscanf; + #endif ++#if !defined(__OpenBSD__) + using ::vswprintf; ++#endif + #if _GLIBCXX_HAVE_VSWSCANF + using ::vswscanf; + #endif ++#if !defined(__OpenBSD__) + using ::vwprintf; ++#endif + #if _GLIBCXX_HAVE_VWSCANF + using ::vwscanf; + #endif +@@ -182,7 +192,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std) + using ::wcscoll; + using ::wcscpy; + using ::wcscspn; ++#if !defined(__OpenBSD__) + using ::wcsftime; ++#endif + using ::wcslen; + using ::wcsncat; + using ::wcsncmp; +@@ -202,8 +214,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) + using ::wmemcpy; + using ::wmemmove; + using ::wmemset; ++#if !defined(__OpenBSD__) + using ::wprintf; + using ::wscanf; ++#endif + + using ::wcschr; + diff --git a/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_std_std_cwctype_h b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_std_std_cwctype_h new file mode 100644 index 00000000000..d2165d669b9 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_c_std_std_cwctype_h @@ -0,0 +1,19 @@ +$OpenBSD: patch-libstdc++-v3_include_c_std_std_cwctype_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libstdc++-v3/include/c_std/std_cwctype.h.orig Fri Jun 5 00:07:56 2009 ++++ libstdc++-v3/include/c_std/std_cwctype.h Fri Jun 5 00:09:22 2009 +@@ -81,6 +81,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) + + using ::wint_t; // cwchar + ++#if !defined(__OpenBSD__) + using ::wctype_t; + using ::wctrans_t; + +@@ -104,6 +105,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) + using ::towupper; + using ::wctrans; + using ::wctype; ++#endif + + _GLIBCXX_END_NAMESPACE + diff --git a/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_ext_numeric_traits_h b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_ext_numeric_traits_h new file mode 100644 index 00000000000..7d620c284db --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_ext_numeric_traits_h @@ -0,0 +1,105 @@ +$OpenBSD: patch-libstdc++-v3_include_ext_numeric_traits_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libstdc++-v3/include/ext/numeric_traits.h.orig Sat Apr 7 10:38:39 2007 ++++ libstdc++-v3/include/ext/numeric_traits.h Tue Apr 7 19:39:00 2009 +@@ -96,3 +96,101 @@ _GLIBCXX_END_NAMESPACE + #undef __glibcxx_digits + + #endif ++// -*- C++ -*- ++ ++// Copyright (C) 2007 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free ++// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, ++// USA. ++ ++// As a special exception, you may use this file as part of a free ++// software library without restriction. Specifically, if other files ++// instantiate templates or use macros or inline functions from this ++// file, or you compile this file and link it with other files to ++// produce an executable, this file does not by itself cause the ++// resulting executable to be covered by the GNU General Public ++// License. This exception does not however invalidate any other ++// reasons why the executable file might be covered by the GNU General ++// Public License. ++ ++/** @file ext/numeric_traits.h ++ * This file is a GNU extension to the Standard C++ Library. ++ */ ++ ++#ifndef _EXT_NUMERIC_TRAITS ++#define _EXT_NUMERIC_TRAITS 1 ++ ++#pragma GCC system_header ++ ++#include ++#include ++#include ++ ++_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ++ ++ // Compile time constants for builtin types. ++ // Sadly std::numeric_limits member functions cannot be used for this. ++#define __glibcxx_signed(_Tp) ((_Tp)(-1) < 0) ++#define __glibcxx_digits(_Tp) \ ++ (sizeof(_Tp) * __CHAR_BIT__ - __glibcxx_signed(_Tp)) ++ ++#define __glibcxx_min(_Tp) \ ++ (__glibcxx_signed(_Tp) ? (_Tp)1 << __glibcxx_digits(_Tp) : (_Tp)0) ++ ++#define __glibcxx_max(_Tp) \ ++ (__glibcxx_signed(_Tp) ? \ ++ (((((_Tp)1 << (__glibcxx_digits(_Tp) - 1)) - 1) << 1) + 1) : ~(_Tp)0) ++ ++ template ++ struct __numeric_traits_integer ++ { ++ // Only integers for initialization of member constant. ++ static const _Value __min = __glibcxx_min(_Value); ++ static const _Value __max = __glibcxx_max(_Value); ++ }; ++ ++ template ++ const _Value __numeric_traits_integer<_Value>::__min; ++ ++ template ++ const _Value __numeric_traits_integer<_Value>::__max; ++ ++ template ++ struct __numeric_traits_floating ++ { ++ // Only floating point types. See N1822. ++ static const int __max_digits10 = ++ 2 + std::numeric_limits<_Value>::digits * 3010/10000; ++ }; ++ ++ template ++ const int __numeric_traits_floating<_Value>::__max_digits10; ++ ++ template ++ struct __numeric_traits ++ : public __conditional_type::__value, ++ __numeric_traits_integer<_Value>, ++ __numeric_traits_floating<_Value> >::__type ++ { }; ++ ++_GLIBCXX_END_NAMESPACE ++ ++#undef __glibcxx_signed ++#undef __glibcxx_min ++#undef __glibcxx_max ++#undef __glibcxx_digits ++ ++#endif diff --git a/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_tr1_cwctype b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_tr1_cwctype new file mode 100644 index 00000000000..524afa63d3e --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libstdc++-v3_include_tr1_cwctype @@ -0,0 +1,12 @@ +$OpenBSD: patch-libstdc++-v3_include_tr1_cwctype,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libstdc++-v3/include/tr1/cwctype.orig Fri Jun 5 02:00:32 2009 ++++ libstdc++-v3/include/tr1/cwctype Fri Jun 5 02:01:17 2009 +@@ -45,7 +45,7 @@ namespace std + { + _GLIBCXX_BEGIN_NAMESPACE(tr1) + +-#if _GLIBCXX_HAVE_ISWBLANK ++#if defined(_GLIBCXX_HAVE_ISWBLANK) && !defined(__OpenBSD__) + using std::iswblank; + #endif + diff --git a/lang/llvm-gcc4/patches/patch-libstdc++-v3_libsupc++_Makefile_in b/lang/llvm-gcc4/patches/patch-libstdc++-v3_libsupc++_Makefile_in new file mode 100644 index 00000000000..f46fd487072 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libstdc++-v3_libsupc++_Makefile_in @@ -0,0 +1,21 @@ +$OpenBSD: patch-libstdc++-v3_libsupc++_Makefile_in,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libstdc++-v3/libsupc++/Makefile.in.orig Mon Oct 16 21:08:22 2006 ++++ libstdc++-v3/libsupc++/Makefile.in Mon Oct 30 12:43:40 2006 +@@ -308,7 +308,7 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) + # Need this library to both be part of libstdc++.a, and installed + # separately too. + # 1) separate libsupc++.la +-toolexeclib_LTLIBRARIES = libsupc++.la ++toolexeclib_LTLIBRARIES = libesupc++.la + # 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a + noinst_LTLIBRARIES = libsupc++convenience.la + headers = \ +@@ -489,7 +489,7 @@ clean-toolexeclibLTLIBRARIES: + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +-libsupc++.la: $(libsupc___la_OBJECTS) $(libsupc___la_DEPENDENCIES) ++libesupc++.la: $(libsupc___la_OBJECTS) $(libsupc___la_DEPENDENCIES) + $(CXXLINK) -rpath $(toolexeclibdir) $(libsupc___la_LDFLAGS) $(libsupc___la_OBJECTS) $(libsupc___la_LIBADD) $(LIBS) + libsupc++convenience.la: $(libsupc__convenience_la_OBJECTS) $(libsupc__convenience_la_DEPENDENCIES) + $(CXXLINK) $(libsupc__convenience_la_LDFLAGS) $(libsupc__convenience_la_OBJECTS) $(libsupc__convenience_la_LIBADD) $(LIBS) diff --git a/lang/llvm-gcc4/patches/patch-libtool_m4 b/lang/llvm-gcc4/patches/patch-libtool_m4 new file mode 100644 index 00000000000..7c0cdd2b086 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-libtool_m4 @@ -0,0 +1,14 @@ +$OpenBSD: patch-libtool_m4,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- libtool.m4.orig Tue May 10 03:31:58 2005 ++++ libtool.m4 Mon May 16 17:43:15 2005 +@@ -757,6 +757,10 @@ newsos6) + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + ++openbsd*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ + osf3* | osf4* | osf5*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' diff --git a/lang/llvm-gcc4/patches/patch-ltcf-c_sh b/lang/llvm-gcc4/patches/patch-ltcf-c_sh new file mode 100644 index 00000000000..4cc901b2a60 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-ltcf-c_sh @@ -0,0 +1,30 @@ +$OpenBSD: patch-ltcf-c_sh,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- ltcf-c.sh.orig Tue Mar 18 19:53:10 2008 ++++ ltcf-c.sh Mon Jun 22 00:54:08 2009 +@@ -219,8 +219,8 @@ EOF + + *) + if $LD --help 2>&1 | egrep ': 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' ++ archive_cmds='$CC $pic_flag -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC $pic_flag -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -515,10 +515,13 @@ else + ;; + + openbsd*) +- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' +- hardcode_libdir_flag_spec='-R$libdir' ++ archive_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ archive_expsym_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ hardcode_libdir_flag_spec='${wl}-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no ++ remove_lgcc=yes ++ output_verbose_link_cmds='$CC $ac_cv_prog_cc_pic -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-L"' + ;; + + os2*) diff --git a/lang/llvm-gcc4/patches/patch-ltcf-cxx_sh b/lang/llvm-gcc4/patches/patch-ltcf-cxx_sh new file mode 100644 index 00000000000..a73a84017cb --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-ltcf-cxx_sh @@ -0,0 +1,57 @@ +$OpenBSD: patch-ltcf-cxx_sh,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- ltcf-cxx.sh.orig Tue Mar 18 19:53:10 2008 ++++ ltcf-cxx.sh Mon Jun 22 00:54:09 2009 +@@ -78,8 +78,8 @@ if { ac_try='${CC-c++} -E conftest.$ac_ext'; { (eval e + # to be the same. + + if test "$with_gnu_ld" = yes; then +- archive_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC $pic_flag -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='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' +@@ -454,6 +454,19 @@ case $host_os in + netbsd* | knetbsd*-gnu) + # NetBSD uses g++ - do we need to do anything? + ;; ++ openbsd*) ++ if test "$with_gcc" = yes && test "$with_gnu_ld" = no; then ++ # MM: OpenBSD 2.7 uses G++, but not GNU ld ++ archive_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ archive_expsym_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ old_archive_cmds="$old_archive_cmds~"'$RANLIB $oldlib' ++ hardcode_libdir_flag_spec='${wl}-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ remove_lgcc=yes ++ output_verbose_link_cmds='$CC $ac_cv_prog_cc_pic -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-L"' ++ fi ++ ;; + osf3*) + case $cc_basename in + KCC) +@@ -981,8 +994,9 @@ class Foo (private) + }; + EOF + ++echo $ac_compile_shared >&5 + +-if (eval $ac_compile) 2>&5; then ++if (eval $ac_compile_shared) 2>&5; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + +@@ -1012,9 +1026,9 @@ if (eval $ac_compile) 2>&5; then + # 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"; then +- compiler_lib_search_path="${prev}${p}" ++ compiler_lib_search_path="${prev}${p}/fpic ${p}" + else +- compiler_lib_search_path="${compiler_lib_search_path} ${prev}${p}" ++ compiler_lib_search_path="${compiler_lib_search_path} ${prev}${p}/fpic ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being diff --git a/lang/llvm-gcc4/patches/patch-ltcf-gcj_sh b/lang/llvm-gcc4/patches/patch-ltcf-gcj_sh new file mode 100644 index 00000000000..81759bc2a06 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-ltcf-gcj_sh @@ -0,0 +1,19 @@ +$OpenBSD: patch-ltcf-gcj_sh,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- ltcf-gcj.sh.orig Tue Mar 18 19:53:10 2008 ++++ ltcf-gcj.sh Mon Jun 22 00:54:09 2009 +@@ -490,10 +490,13 @@ else + ;; + + openbsd*) +- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' +- hardcode_libdir_flag_spec='-R$libdir' ++ archive_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ archive_expsym_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ hardcode_libdir_flag_spec='${wl}-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no ++ remove_lgcc=yes ++ output_verbose_link_cmds='$CC $ac_cv_prog_cc_pic -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-L"' + ;; + + os2*) diff --git a/lang/llvm-gcc4/patches/patch-ltconfig b/lang/llvm-gcc4/patches/patch-ltconfig new file mode 100644 index 00000000000..9acc0e44269 --- /dev/null +++ b/lang/llvm-gcc4/patches/patch-ltconfig @@ -0,0 +1,40 @@ +$OpenBSD: patch-ltconfig,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $ +--- ltconfig.orig Tue Mar 18 19:53:10 2008 ++++ ltconfig Mon Jun 22 01:01:51 2009 +@@ -184,6 +184,7 @@ PACKAGE=libtool + VERSION=1.4a-GCC3.0 + TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes)" + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_compile_shared='${CC-cc} -fPIC -DPIC -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' + ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + rm="rm -f" + +@@ -626,8 +627,13 @@ old_postuninstall_cmds= + + if test -n "$RANLIB"; then + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +- # APPLE LOCAL handle ~ in pathnames 2002-01-14 --sts +- old_postinstall_cmds="@$old_postinstall_cmds@\$RANLIB \$oldlib" ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="@$old_postinstall_cmds@\$RANLIB -t \$oldlib";; ++ *) ++ # APPLE LOCAL handle ~ in pathnames 2002-01-14 --sts ++ old_postinstall_cmds="@$old_postinstall_cmds@\$RANLIB \$oldlib";; ++ esac + fi + + # Source the script associated with the $tagname tag configuration. +@@ -1308,8 +1314,11 @@ openbsd*) + need_version=no + fi + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' +- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ deplib_check_method=pass_all ++ sys_lib_dlsearch_path_spec='/usr/lib /usr/local/lib /usr/X11R6/lib' + ;; + + os2*) diff --git a/lang/llvm-gcc4/pkg/DESCR b/lang/llvm-gcc4/pkg/DESCR new file mode 100644 index 00000000000..605094d6066 --- /dev/null +++ b/lang/llvm-gcc4/pkg/DESCR @@ -0,0 +1,12 @@ +lvm-gcc is the LLVM C front end. It is a modified version of gcc +that compiles C/C++/ObjC programs into native objects, LLVM bitcode or +LLVM assembly language, depending upon the options. + +By default, llvm-gcc compiles to native objects just like GCC does. +If the -emit-llvm option is given then it will generate LLVM bitcode +files instead. If -S (assembly) is also given, then it will generate +LLVM assembly. + +Being derived from the GNU Compiler Collection, llvm-gcc has many of +gcc's features and accepts most of gcc's options. It handles a number +of gcc's extensions to the C programming language. diff --git a/lang/llvm-gcc4/pkg/PFRAG.shared b/lang/llvm-gcc4/pkg/PFRAG.shared new file mode 100644 index 00000000000..1a18fd1fd5a --- /dev/null +++ b/lang/llvm-gcc4/pkg/PFRAG.shared @@ -0,0 +1,3 @@ +@comment $OpenBSD: PFRAG.shared,v 1.1.1.1 2009/06/22 22:37:31 sthen Exp $ +@lib lib/llvm-gcc-${LLVM_V}/libssp.so.${LIBssp_VERSION} +@lib lib/llvm-gcc-${LLVM_V}/libstdc++.so.${LIBstdc++_VERSION} diff --git a/lang/llvm-gcc4/pkg/PLIST b/lang/llvm-gcc4/pkg/PLIST new file mode 100644 index 00000000000..9eb7e98f35d --- /dev/null +++ b/lang/llvm-gcc4/pkg/PLIST @@ -0,0 +1,680 @@ +@comment $OpenBSD: PLIST,v 1.1.1.1 2009/06/22 22:37:31 sthen Exp $ +%%SHARED%% +@bin bin/${CONFIG}-cpp-4.2.1 +@bin bin/${CONFIG}-gcc-4.2.1 +@bin bin/${CONFIG}-llvm-c++ +@bin bin/${CONFIG}-llvm-cpp +@bin bin/${CONFIG}-llvm-g++ +@bin bin/${CONFIG}-llvm-gcc +@bin bin/llvm-c++ +@bin bin/llvm-cpp +@bin bin/llvm-g++ +@bin bin/llvm-gcc +bin/llvm-gccbug +@bin bin/llvm-gcov +@comment @info info/cpp.info +@comment @info info/cppinternals.info +@comment @info info/gcc.info +@comment @info info/gccinstall.info +@comment @info info/gccint.info +lib/llvm-gcc-${LLVM_V}/ +lib/llvm-gcc-${LLVM_V}/gcc/ +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/ +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/ +@bin lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/cc1 +@bin lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/cc1plus +@bin lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/collect2 +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/ +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/README +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/ammintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/com_err.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/emmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/limits.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/mm3dnow.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/mm_malloc.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/mmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/nmmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/pmmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/rpc/ +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/rpc/rpc_des.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/rpc/svc.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/smmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/ssp/ +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/ssp/ssp.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/ssp/stdio.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/ssp/string.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/ssp/unistd.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/stddef.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/stdio.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/stdlib.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/sys/ +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/sys/types.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/syslimits.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/tmmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/unwind.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/include/xmmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/ +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/fixinc.sh +@bin lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/fixincl +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/gsyslimits.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/ +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/README +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/ammintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/emmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/limits.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/mm3dnow.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/mm_malloc.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/mmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/nmmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/pmmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/smmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/tmmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/unwind.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/include/xmmintrin.h +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/macro_list +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/mkheaders +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/install-tools/mkheaders.conf +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/libgcc.a +lib/llvm-gcc-${LLVM_V}/gcc/${CONFIG}/4.2.1/libgcov.a +lib/llvm-gcc-${LLVM_V}/include/ +lib/llvm-gcc-${LLVM_V}/include/c++/ +lib/llvm-gcc-${LLVM_V}/include/c++/algorithm +lib/llvm-gcc-${LLVM_V}/include/c++/backward/ +lib/llvm-gcc-${LLVM_V}/include/c++/backward/algo.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/algobase.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/alloc.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/backward_warning.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/bvector.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/complex.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/defalloc.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/deque.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/fstream.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/function.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/hash_map.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/hash_set.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/hashtable.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/heap.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/iomanip.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/iostream.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/istream.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/iterator.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/list.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/map.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/multimap.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/multiset.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/new.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/ostream.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/pair.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/queue.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/rope.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/set.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/slist.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/stack.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/stream.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/streambuf.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/strstream +lib/llvm-gcc-${LLVM_V}/include/c++/backward/tempbuf.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/tree.h +lib/llvm-gcc-${LLVM_V}/include/c++/backward/vector.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/ +lib/llvm-gcc-${LLVM_V}/include/c++/bits/allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/basic_ios.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/basic_ios.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/basic_string.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/basic_string.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/boost_concept_check.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/char_traits.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/cmath.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/codecvt.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/concept_check.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/cpp_type_traits.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/deque.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/fstream.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/functexcept.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/gslice.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/gslice_array.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/indirect_array.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/ios_base.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/istream.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/list.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/locale_classes.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/locale_facets.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/locale_facets.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/localefwd.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/mask_array.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/ostream.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/ostream_insert.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/postypes.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/slice_array.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/sstream.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_algo.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_algobase.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_bvector.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_construct.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_deque.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_function.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_heap.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_iterator.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_iterator_base_funcs.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_iterator_base_types.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_list.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_map.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_multimap.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_multiset.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_numeric.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_pair.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_queue.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_raw_storage_iter.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_relops.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_set.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_stack.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_tempbuf.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_tree.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_uninitialized.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stl_vector.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stream_iterator.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/streambuf.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/streambuf_iterator.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/stringfwd.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/valarray_after.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/valarray_array.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/valarray_array.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bits/valarray_before.h +lib/llvm-gcc-${LLVM_V}/include/c++/bits/vector.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/bitset +lib/llvm-gcc-${LLVM_V}/include/c++/cassert +lib/llvm-gcc-${LLVM_V}/include/c++/cctype +lib/llvm-gcc-${LLVM_V}/include/c++/cerrno +lib/llvm-gcc-${LLVM_V}/include/c++/cfloat +lib/llvm-gcc-${LLVM_V}/include/c++/ciso646 +lib/llvm-gcc-${LLVM_V}/include/c++/climits +lib/llvm-gcc-${LLVM_V}/include/c++/clocale +lib/llvm-gcc-${LLVM_V}/include/c++/cmath +lib/llvm-gcc-${LLVM_V}/include/c++/complex +lib/llvm-gcc-${LLVM_V}/include/c++/csetjmp +lib/llvm-gcc-${LLVM_V}/include/c++/csignal +lib/llvm-gcc-${LLVM_V}/include/c++/cstdarg +lib/llvm-gcc-${LLVM_V}/include/c++/cstddef +lib/llvm-gcc-${LLVM_V}/include/c++/cstdio +lib/llvm-gcc-${LLVM_V}/include/c++/cstdlib +lib/llvm-gcc-${LLVM_V}/include/c++/cstring +lib/llvm-gcc-${LLVM_V}/include/c++/ctime +lib/llvm-gcc-${LLVM_V}/include/c++/cwchar +lib/llvm-gcc-${LLVM_V}/include/c++/cwctype +lib/llvm-gcc-${LLVM_V}/include/c++/cxxabi.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/ +lib/llvm-gcc-${LLVM_V}/include/c++/debug/bitset +lib/llvm-gcc-${LLVM_V}/include/c++/debug/debug.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/deque +lib/llvm-gcc-${LLVM_V}/include/c++/debug/formatter.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/functions.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/hash_map +lib/llvm-gcc-${LLVM_V}/include/c++/debug/hash_map.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/hash_multimap.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/hash_multiset.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/hash_set +lib/llvm-gcc-${LLVM_V}/include/c++/debug/hash_set.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/list +lib/llvm-gcc-${LLVM_V}/include/c++/debug/macros.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/map +lib/llvm-gcc-${LLVM_V}/include/c++/debug/map.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/multimap.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/multiset.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/safe_base.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/safe_iterator.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/safe_iterator.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/debug/safe_sequence.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/set +lib/llvm-gcc-${LLVM_V}/include/c++/debug/set.h +lib/llvm-gcc-${LLVM_V}/include/c++/debug/string +lib/llvm-gcc-${LLVM_V}/include/c++/debug/vector +lib/llvm-gcc-${LLVM_V}/include/c++/deque +lib/llvm-gcc-${LLVM_V}/include/c++/exception +lib/llvm-gcc-${LLVM_V}/include/c++/exception_defines.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/algorithm +lib/llvm-gcc-${LLVM_V}/include/c++/ext/array_allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/atomicity.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/bitmap_allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/codecvt_specializations.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/concurrence.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/debug_allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/functional +lib/llvm-gcc-${LLVM_V}/include/c++/ext/hash_fun.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/hash_map +lib/llvm-gcc-${LLVM_V}/include/c++/ext/hash_set +lib/llvm-gcc-${LLVM_V}/include/c++/ext/hashtable.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/iterator +lib/llvm-gcc-${LLVM_V}/include/c++/ext/malloc_allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/memory +lib/llvm-gcc-${LLVM_V}/include/c++/ext/mt_allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/new_allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/numeric +lib/llvm-gcc-${LLVM_V}/include/c++/ext/numeric_traits.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/assoc_container.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/basic_tree_policy/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/basic_tree_policy/traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/basic_types.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/bin_search_tree_/traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/const_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/entry_pred.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/resize_policy.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_base_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/cond_dealtor.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/container_base_dispatch.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/eq_fn/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/eq_fn/eq_by_less.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/lu_map_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_policy/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/map_debug_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/ov_tree_map_/traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pairing_heap_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/child_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/head.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/internal_node.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/leaf.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/node_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/node_iterators.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/point_iterators.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/priority_queue_base_dispatch.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/node.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rb_tree_map_/traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/node.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/splay_tree_/traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/standard_policies.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/tree_policy/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/tree_trace_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/type_utils.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/types_traits.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/unordered_iterator/ +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/unordered_iterator/iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/exception.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/hash_policy.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/list_update_policy.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/priority_queue.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/tag_and_trait.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/tree_policy.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pb_ds/trie_policy.hpp +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pod_char_traits.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/pool_allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/rb_tree +lib/llvm-gcc-${LLVM_V}/include/c++/ext/rc_string_base.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/rope +lib/llvm-gcc-${LLVM_V}/include/c++/ext/ropeimpl.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/slist +lib/llvm-gcc-${LLVM_V}/include/c++/ext/sso_string_base.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/stdio_filebuf.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/stdio_sync_filebuf.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/throw_allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/type_traits.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/typelist.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/vstring.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/vstring.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/ext/vstring_fwd.h +lib/llvm-gcc-${LLVM_V}/include/c++/ext/vstring_util.h +lib/llvm-gcc-${LLVM_V}/include/c++/fstream +lib/llvm-gcc-${LLVM_V}/include/c++/functional +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/ +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/ +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/atomic_word.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/basic_file.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/c++allocator.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/c++config.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/c++io.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/c++locale.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/cpu_defines.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/ctype_base.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/ctype_inline.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/ctype_noninline.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/cxxabi_tweaks.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/gthr-default.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/gthr-posix.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/gthr-single.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/gthr-tpf.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/gthr.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/messages_members.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/os_defines.h +lib/llvm-gcc-${LLVM_V}/include/c++/${CONFIG}/bits/time_members.h +lib/llvm-gcc-${LLVM_V}/include/c++/iomanip +lib/llvm-gcc-${LLVM_V}/include/c++/ios +lib/llvm-gcc-${LLVM_V}/include/c++/iosfwd +lib/llvm-gcc-${LLVM_V}/include/c++/iostream +lib/llvm-gcc-${LLVM_V}/include/c++/istream +lib/llvm-gcc-${LLVM_V}/include/c++/iterator +lib/llvm-gcc-${LLVM_V}/include/c++/limits +lib/llvm-gcc-${LLVM_V}/include/c++/list +lib/llvm-gcc-${LLVM_V}/include/c++/locale +lib/llvm-gcc-${LLVM_V}/include/c++/map +lib/llvm-gcc-${LLVM_V}/include/c++/memory +lib/llvm-gcc-${LLVM_V}/include/c++/new +lib/llvm-gcc-${LLVM_V}/include/c++/numeric +lib/llvm-gcc-${LLVM_V}/include/c++/ostream +lib/llvm-gcc-${LLVM_V}/include/c++/queue +lib/llvm-gcc-${LLVM_V}/include/c++/set +lib/llvm-gcc-${LLVM_V}/include/c++/sstream +lib/llvm-gcc-${LLVM_V}/include/c++/stack +lib/llvm-gcc-${LLVM_V}/include/c++/stdexcept +lib/llvm-gcc-${LLVM_V}/include/c++/streambuf +lib/llvm-gcc-${LLVM_V}/include/c++/string +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/ +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/array +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/bind_iterate.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/bind_repeat.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/boost_shared_ptr.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cctype +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cfenv +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cfloat +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cinttypes +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/climits +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cmath +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/common.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/complex +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cstdarg +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cstdbool +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cstdint +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cstdio +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cstdlib +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/ctgmath +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/ctime +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/ctype.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cwchar +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/cwctype +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/fenv.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/float.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/functional +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/functional_hash.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/functional_iterate.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/hashtable +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/hashtable_policy.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/inttypes.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/limits.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/math.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/memory +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/mu_iterate.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/random +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/random.tcc +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/ref_fwd.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/ref_wrap_iterate.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/repeat.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/stdarg.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/stdbool.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/stdint.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/stdio.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/stdlib.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/tgmath.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/tuple +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/tuple_defs.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/tuple_iterate.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/type_traits +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/type_traits_fwd.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/unordered_map +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/unordered_set +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/utility +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/wchar.h +lib/llvm-gcc-${LLVM_V}/include/c++/tr1/wctype.h +lib/llvm-gcc-${LLVM_V}/include/c++/typeinfo +lib/llvm-gcc-${LLVM_V}/include/c++/utility +lib/llvm-gcc-${LLVM_V}/include/c++/valarray +lib/llvm-gcc-${LLVM_V}/include/c++/vector +lib/llvm-gcc-${LLVM_V}/libesupc++.a +lib/llvm-gcc-${LLVM_V}/libesupc++.la +lib/llvm-gcc-${LLVM_V}/libiberty.a +lib/llvm-gcc-${LLVM_V}/libssp.a +lib/llvm-gcc-${LLVM_V}/libssp.la +lib/llvm-gcc-${LLVM_V}/libssp_nonshared.a +lib/llvm-gcc-${LLVM_V}/libssp_nonshared.la +lib/llvm-gcc-${LLVM_V}/libstdc++.a +lib/llvm-gcc-${LLVM_V}/libstdc++.la +@man man/man1/llvm-cpp.1 +@man man/man1/llvm-g++.1 +@man man/man1/llvm-gcc.1 +@man man/man1/llvm-gcov.1 +@comment @man man/man7/fsf-funding.7 +@comment @man man/man7/gfdl.7 +@comment @man man/man7/gpl.7