head 1.9; access; symbols pkgsrc-2015Q1:1.8.0.96 pkgsrc-2015Q1-base:1.8 pkgsrc-2014Q4:1.8.0.94 pkgsrc-2014Q4-base:1.8 pkgsrc-2014Q3:1.8.0.92 pkgsrc-2014Q3-base:1.8 pkgsrc-2014Q2:1.8.0.90 pkgsrc-2014Q2-base:1.8 pkgsrc-2014Q1:1.8.0.88 pkgsrc-2014Q1-base:1.8 pkgsrc-2013Q4:1.8.0.86 pkgsrc-2013Q4-base:1.8 pkgsrc-2013Q3:1.8.0.84 pkgsrc-2013Q3-base:1.8 pkgsrc-2013Q2:1.8.0.82 pkgsrc-2013Q2-base:1.8 pkgsrc-2013Q1:1.8.0.80 pkgsrc-2013Q1-base:1.8 pkgsrc-2012Q4:1.8.0.78 pkgsrc-2012Q4-base:1.8 pkgsrc-2012Q3:1.8.0.76 pkgsrc-2012Q3-base:1.8 pkgsrc-2012Q2:1.8.0.74 pkgsrc-2012Q2-base:1.8 pkgsrc-2012Q1:1.8.0.72 pkgsrc-2012Q1-base:1.8 pkgsrc-2011Q4:1.8.0.70 pkgsrc-2011Q4-base:1.8 pkgsrc-2011Q3:1.8.0.68 pkgsrc-2011Q3-base:1.8 pkgsrc-2011Q2:1.8.0.66 pkgsrc-2011Q2-base:1.8 pkgsrc-2011Q1:1.8.0.64 pkgsrc-2011Q1-base:1.8 pkgsrc-2010Q4:1.8.0.62 pkgsrc-2010Q4-base:1.8 pkgsrc-2010Q3:1.8.0.60 pkgsrc-2010Q3-base:1.8 pkgsrc-2010Q2:1.8.0.58 pkgsrc-2010Q2-base:1.8 pkgsrc-2010Q1:1.8.0.56 pkgsrc-2010Q1-base:1.8 pkgsrc-2009Q4:1.8.0.54 pkgsrc-2009Q4-base:1.8 pkgsrc-2009Q3:1.8.0.52 pkgsrc-2009Q3-base:1.8 pkgsrc-2009Q2:1.8.0.50 pkgsrc-2009Q2-base:1.8 pkgsrc-2009Q1:1.8.0.48 pkgsrc-2009Q1-base:1.8 pkgsrc-2008Q4:1.8.0.46 pkgsrc-2008Q4-base:1.8 pkgsrc-2008Q3:1.8.0.44 pkgsrc-2008Q3-base:1.8 cube-native-xorg:1.8.0.42 cube-native-xorg-base:1.8 pkgsrc-2008Q2:1.8.0.40 pkgsrc-2008Q2-base:1.8 cwrapper:1.8.0.38 pkgsrc-2008Q1:1.8.0.36 pkgsrc-2008Q1-base:1.8 pkgsrc-2007Q4:1.8.0.34 pkgsrc-2007Q4-base:1.8 pkgsrc-2007Q3:1.8.0.32 pkgsrc-2007Q3-base:1.8 pkgsrc-2007Q2:1.8.0.30 pkgsrc-2007Q2-base:1.8 pkgsrc-2007Q1:1.8.0.28 pkgsrc-2007Q1-base:1.8 pkgsrc-2006Q4:1.8.0.26 pkgsrc-2006Q4-base:1.8 pkgsrc-2006Q3:1.8.0.24 pkgsrc-2006Q3-base:1.8 pkgsrc-2006Q2:1.8.0.22 pkgsrc-2006Q2-base:1.8 pkgsrc-2006Q1:1.8.0.20 pkgsrc-2006Q1-base:1.8 pkgsrc-2005Q4:1.8.0.18 pkgsrc-2005Q4-base:1.8 pkgsrc-2005Q3:1.8.0.16 pkgsrc-2005Q3-base:1.8 pkgsrc-2005Q2:1.8.0.14 pkgsrc-2005Q2-base:1.8 pkgsrc-2005Q1:1.8.0.12 pkgsrc-2005Q1-base:1.8 pkgsrc-2004Q4:1.8.0.10 pkgsrc-2004Q4-base:1.8 pkgsrc-2004Q3:1.8.0.8 pkgsrc-2004Q3-base:1.8 pkgsrc-2004Q2:1.8.0.6 pkgsrc-2004Q2-base:1.8 pkgsrc-2004Q1:1.8.0.4 pkgsrc-2004Q1-base:1.8 pkgsrc-2003Q4:1.8.0.2 pkgsrc-2003Q4-base:1.8 pkgviews:1.3.0.4 pkgviews-base:1.3 buildlink2:1.3.0.2 buildlink2-base:1.3 netbsd-1-5-PATCH003:1.3 netbsd-1-5-PATCH001:1.1 netbsd-1-5-RELEASE:1.1 netbsd-1-4-PATCH003:1.1; locks; strict; comment @# @; 1.9 date 2015.04.25.10.33.29; author wiz; state dead; branches; next 1.8; commitid CG2XaBpeRQKMwXiy; 1.8 date 2003.07.12.08.53.40; author jtb; state Exp; branches; next 1.7; 1.7 date 2003.07.04.16.27.26; author seb; state dead; branches; next 1.6; 1.6 date 2003.06.24.16.50.47; author jmc; state Exp; branches; next 1.5; 1.5 date 2003.05.24.19.26.26; author jschauma; state Exp; branches; next 1.4; 1.4 date 2002.08.12.01.53.43; author dmcmahill; state dead; branches; next 1.3; 1.3 date 2002.03.28.10.11.52; author jmc; state Exp; branches; next 1.2; 1.2 date 2002.01.03.20.40.42; author tron; state Exp; branches; next 1.1; 1.1 date 2000.09.15.23.58.48; author tron; state Exp; branches; next ; desc @@ 1.9 log @Finish move of lang/gcc to lang/gcc2. Let me know if I broke something. @ text @$NetBSD: patch-ag,v 1.8 2003/07/12 08:53:40 jtb Exp $ --- ../gcc-2.95.3/gcc/gcc.c.orig +++ ../gcc-2.95.3/gcc/gcc.c @@@@ -189,9 +189,13 @@@@ static void clear_failure_queue PROTO((void)); static int check_live_switch PROTO((int, int)); static const char *handle_braces PROTO((const char *)); +static const struct spec_function *lookup_spec_function PROTO((const char *)); +static const char *eval_spec_function PROTO((const char *, const char *)); +static const char *handle_spec_function PROTO((const char *)); static char *save_string PROTO((const char *, int)); extern int do_spec PROTO((const char *)); static int do_spec_1 PROTO((const char *, int, const char *)); +static int do_spec_2 PROTO((const char *)); static const char *find_file PROTO((const char *)); static int is_directory PROTO((const char *, const char *, int)); static void validate_switches PROTO((const char *)); @@@@ -216,6 +220,7 @@@@ static void process_command PROTO ((int, char **)); static int execute PROTO ((void)); static void unused_prefix_warnings PROTO ((struct path_prefix *)); +static void alloc_args PROTO ((void)); static void clear_args PROTO ((void)); static void fatal_error PROTO ((int)); @@@@ -231,6 +236,8 @@@@ /* Number of extra output files that lang_specific_pre_link may generate. */ extern int lang_specific_extra_outfiles; +static const char *if_exists_spec_function PROTO ((int, const char **)); + /* Specs are strings containing lines, each of which (if not blank) is made up of a program name, and arguments separated by spaces. The program name must be exact and start from root, since no path @@@@ -335,6 +342,12 @@@@ %* substitute the variable part of a matched option. (See below.) Note that each comma in the substituted string is replaced by a single space. + %:function(args) + Call the named function FUNCTION, passing it ARGS. ARGS is + first processed as a nested spec string, then split into an + argument vector in the usual fashion. The function returns + a string which is processed as if it had appeared literally + as part of the current spec. %{S} substitutes the -S switch, if that switch was given to CC. If that switch was not specified, this substitutes nothing. Here S is a metasyntactic variable. @@@@ -1162,6 +1175,24 @@@@ static struct spec_list *specs = (struct spec_list *)0; +/* The mapping of a spec function name to the C function that + implements it. */ +struct spec_function +{ + const char *name; + const char *(*func) PROTO ((int, const char **)); +}; + +/* List of static spec functions. */ + +static const struct spec_function static_spec_functions[] = +{ + { "if-exists", if_exists_spec_function }, + { 0, 0 } +}; + +static int processing_spec_function; + /* Initialize the specs lookup routines. */ static void @@@@ -1404,6 +1435,15 @@@@ static const char *multilib_dir; +/* Allocate the argument vector. */ + +static void +alloc_args () +{ + argbuf_length = 10; + argbuf = (char **) xmalloc (argbuf_length * sizeof (char *)); +} + /* Clear out the vector of arguments (after a command is executed). */ static void @@@@ -2211,6 +2251,9 @@@@ struct command *commands; /* each command buffer with above info. */ + if (processing_spec_function) + abort (); + /* Count # of piped commands. */ for (n_commands = 1, i = 0; i < argbuf_index; i++) if (strcmp (argbuf[i], "|") == 0) @@@@ -3360,14 +3403,7 @@@@ { int value; - clear_args (); - arg_going = 0; - delete_this_arg = 0; - this_is_output_file = 0; - this_is_library_file = 0; - input_from_pipe = 0; - - value = do_spec_1 (spec, 0, NULL_PTR); + value = do_spec_2 (spec); /* Force out any unfinished command. If -pipe, this forces out the last command if it ended in `|'. */ @@@@ -3383,6 +3419,20 @@@@ return value; } +static int +do_spec_2 (spec) + const char *spec; +{ + clear_args (); + arg_going = 0; + delete_this_arg = 0; + this_is_output_file = 0; + this_is_library_file = 0; + input_from_pipe = 0; + + return do_spec_1 (spec, 0, NULL_PTR); +} + /* Process the sub-spec SPEC as a portion of a larger spec. This is like processing a whole spec except that we do not initialize at the beginning and we do not supply a @@@@ -4068,6 +4118,12 @@@@ return -1; break; + case ':': + p = handle_spec_function (p); + if (p == 0) + return -1; + break; + case '%': obstack_1grow (&obstack, '%'); break; @@@@ -4222,7 +4278,173 @@@@ arg_going = 1; } - return 0; /* End of string */ + /* End of string. If we are processing a spec function, we need to + end any pending argument. */ + if (processing_spec_function && arg_going) + { + obstack_1grow (&obstack, 0); + string = obstack_finish (&obstack); + if (this_is_library_file) + string = find_file (string); + store_arg (string, delete_this_arg, this_is_output_file); + if (this_is_output_file) + outfiles[input_file_number] = string; + arg_going = 0; + } + + return 0; +} + +/* Look up a spec function. */ + +static const struct spec_function * +lookup_spec_function (name) + const char *name; +{ + static const struct spec_function * const spec_function_tables[] = + { + static_spec_functions, + }; + const struct spec_function *sf; + unsigned int i; + + for (i = 0; i < ARRAY_SIZE (spec_function_tables); i++) + { + for (sf = spec_function_tables[i]; sf->name != NULL; sf++) + if (strcmp (sf->name, name) == 0) + return sf; + } + + return NULL; +} + +/* Evaluate a spec function. */ + +static const char * +eval_spec_function (func, args) + const char *func, *args; +{ + const struct spec_function *sf; + const char *funcval; + + /* Saved spec processing context. */ + int save_argbuf_index; + int save_argbuf_length; + char **save_argbuf; + + int save_arg_going; + int save_delete_this_arg; + int save_this_is_output_file; + int save_this_is_library_file; + int save_input_from_pipe; + + + sf = lookup_spec_function (func); + if (sf == NULL) + fatal ("unknown spec function `%s'", func); + + /* Push the spec processing context. */ + save_argbuf_index = argbuf_index; + save_argbuf_length = argbuf_length; + save_argbuf = argbuf; + + save_arg_going = arg_going; + save_delete_this_arg = delete_this_arg; + save_this_is_output_file = this_is_output_file; + save_this_is_library_file = this_is_library_file; + save_input_from_pipe = input_from_pipe; + + /* Create a new spec processing context, and build the function + arguments. */ + + alloc_args (); + if (do_spec_2 (args) < 0) + fatal ("error in args to spec function `%s'", func); + + /* argbuf_index is an index for the next argument to be inserted, and + so contains the count of the args already inserted. */ + + funcval = (*sf->func) (argbuf_index, (const char **) argbuf); + + /* Pop the spec processing context. */ + argbuf_index = save_argbuf_index; + argbuf_length = save_argbuf_length; + free (argbuf); + argbuf = save_argbuf; + + arg_going = save_arg_going; + delete_this_arg = save_delete_this_arg; + this_is_output_file = save_this_is_output_file; + this_is_library_file = save_this_is_library_file; + input_from_pipe = save_input_from_pipe; + + return funcval; +} + +/* Handle a spec function call of the form: + + %:function(args) + + ARGS is processed as a spec in a separate context and split into an + argument vector in the normal fashion. The function returns a string + containing a spec which we then process in the caller's context, or + NULL if no processing is required. */ + +static const char * +handle_spec_function (p) + const char *p; +{ + char *func, *args; + const char *endp, *funcval; + int count; + + processing_spec_function++; + + /* Get the function name. */ + for (endp = p; *endp != '\0'; endp++) + { + if (*endp == '(') /* ) */ + break; + /* Only allow [A-Za-z0-9], -, and _ in function names. */ + if (!ISALNUM (*endp) && !(*endp == '-' || *endp == '_')) + fatal ("malformed spec function name"); + } + if (*endp != '(') /* ) */ + fatal ("no arguments for spec function"); + func = save_string (p, endp - p); + p = ++endp; + + /* Get the arguments. */ + for (count = 0; *endp != '\0'; endp++) + { + /* ( */ + if (*endp == ')') + { + if (count == 0) + break; + count--; + } + else if (*endp == '(') /* ) */ + count++; + } + /* ( */ + if (*endp != ')') + fatal ("malformed spec function arguments"); + args = save_string (p, endp - p); + p = ++endp; + + /* p now points to just past the end of the spec function expression. */ + + funcval = eval_spec_function (func, args); + if (funcval != NULL && do_spec_1 (funcval, 0, NULL) < 0) + p = NULL; + + free (func); + free (args); + + processing_spec_function--; + + return p; } /* Return 0 if we call do_spec_1 and that returns -1. */ @@@@ -4674,8 +4896,8 @@@@ signal (SIGPIPE, fatal_error); #endif - argbuf_length = 10; - argbuf = (char **) xmalloc (argbuf_length * sizeof (char *)); + /* Allocate the argument vector. */ + alloc_args (); obstack_init (&obstack); @@@@ -5846,3 +6068,25 @@@@ ++p; } } + +/* if-exists built-in spec function. + + Checks to see if the file specified by the absolute pathname in + ARGS exists. Returns that pathname if found. + + The usual use for this function is to check for a library file + (whose name has been expanded with %s). */ + +#define IS_ABSOLUTE_PATHNAME(cp) ((cp)[0] == '/') + +static const char * +if_exists_spec_function (argc, argv) + int argc; + const char **argv; +{ + /* Must have only one argument. */ + if (argc == 1 && IS_ABSOLUTE_PATHNAME (argv[0]) && ! access (argv[0], R_OK)) + return argv[0]; + + return NULL; +} @ 1.8 log @Add some patches against basesrc gcc implementing the "if-exists" function in the specs file. Enables the linker to pick up crti.o and crtn.o if they exist. @ text @d1 1 a1 1 $NetBSD$ @ 1.7 log @Convert to USE_NEW_TEXINFO. Remove or trim "info related" patch files. Install info files in package specific directory. Hence the PLIST files are now nearly empty... This should finish making these two packages really non-conflicting. Bump PKGREVISION. @ text @d1 1 a1 1 $NetBSD: patch-ag,v 1.6 2003/06/24 16:50:47 jmc Exp $ d3 359 a361 28 --- ../gcc-2.95.3/gcc/f/Make-lang.in.orig Sat May 24 14:56:08 2003 +++ ../gcc-2.95.3/gcc/f/Make-lang.in Sat May 24 14:58:41 2003 @@@@ -355,9 +355,9 @@@@ chmod a-x $(infodir)/g77.info*; \ else true; fi @@if [ -f $(libsubdir)/lang-f77 -a -f $(srcdir)/f/g77.info ] ; then \ - if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ - echo " install-info --info-dir=$(infodir) $(infodir)/g77.info"; \ - install-info --info-dir=$(infodir) $(infodir)/g77.info || : ; \ + if $(SHELL) -c '${INSTALL_INFO} --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + echo " ${INSTALL_INFO} --info-dir=$(infodir) $(infodir)/g77.info"; \ + ${INSTALL_INFO} --info-dir=$(infodir) $(infodir)/g77.info || : ; \ else : ; fi; \ else : ; fi rm -f $(libsubdir)/lang-f77 @@@@ -390,9 +390,9 @@@@ *) rm -f $(libsubdir)/lang-f77;; \ esac @@if [ -f $(libsubdir)/lang-f77 ] ; then \ - if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ - echo " install-info --delete --info-dir=$(infodir) $(infodir)/g77.info"; \ - install-info --delete --info-dir=$(infodir) $(infodir)/g77.info || : ; \ + if $(SHELL) -c '${INSTALL_INFO} --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + echo " ${INSTALL_INFO} --delete --info-dir=$(infodir) $(infodir)/g77.info"; \ + ${INSTALL_INFO} --delete --info-dir=$(infodir) $(infodir)/g77.info || : ; \ else : ; fi; \ else : ; fi -if [ -f $(libsubdir)/lang-f77 ]; then \ @ 1.6 log @Make patches f,g,h work correctly. @ text @d1 1 a1 1 $NetBSD: patch-ag,v 1.5 2003/05/24 19:26:26 jschauma Exp $ @ 1.5 log @use ${INSTALL_INFO} rather than install-info, so that we don't accidently use an old or non-compatible version that may be in the base system. This makes this package install flawlessly under Linux. @ text @d1 1 a1 1 $NetBSD: $ d3 2 a4 2 --- gcc/f/Make-lang.in.orig Sat May 24 14:56:08 2003 +++ gcc/f/Make-lang.in Sat May 24 14:58:41 2003 @ 1.4 log @pull in most recent patches to gcc-2.95.3 from the netbsd-1-6 branch. Includes fixes for sparc, alpha, and others. Should help in keeping pkgsrc running on 1.5.* systems. The patches which mirror those in the main netbsd source tree have been all put into a single distribution patch file. This makes it much easier to maintain and easier to easily see which patches are specific to pkgsrc. @ text @d1 1 a1 1 $NetBSD: patch-ag,v 1.3 2002/03/28 10:11:52 jmc Exp $ d3 28 a30 104 --- ../gcc-2.95.3/gcc/config/arm/arm.h.orig 2001/04/23 11:59:31 1.1.1.2 +++ ../gcc-2.95.3/gcc/config/arm/arm.h 2001/12/19 23:14:50 1.4 @@@@ -199,7 +199,9 @@@@ " /* Default is hard float, which doesn't define anything */ +#ifndef CPP_FLOAT_DEFAULT_SPEC #define CPP_FLOAT_DEFAULT_SPEC "" +#endif #define CPP_ENDIAN_SPEC "\ %{mbig-endian: \ @@@@ -210,7 +212,9 @@@@ " /* Default is little endian, which doesn't define anything. */ +#ifndef CPP_ENDIAN_DEFAULT_SPEC #define CPP_ENDIAN_DEFAULT_SPEC "" +#endif #define CC1_SPEC "" @@@@ -310,6 +314,10 @@@@ function tries to return. */ #define ARM_FLAG_ABORT_NORETURN (0x8000) +/* Nonzero if the stack should be 64-bit aligned at function boundaries, + as mandated by the ATPCS. */ +#define ARM_FLAG_ATPCS_STACK_ALIGN (0x10000) + #define TARGET_APCS (target_flags & ARM_FLAG_APCS_FRAME) #define TARGET_POKE_FUNCTION_NAME (target_flags & ARM_FLAG_POKE) #define TARGET_FPE (target_flags & ARM_FLAG_FPE) @@@@ -332,6 +340,7 @@@@ #define TARGET_LITTLE_WORDS (target_flags & ARM_FLAG_LITTLE_WORDS) #define TARGET_NO_SCHED_PRO (target_flags & ARM_FLAG_NO_SCHED_PRO) #define TARGET_ABORT_NORETURN (target_flags & ARM_FLAG_ABORT_NORETURN) +#define TARGET_ATPCS_STACK_ALIGN (target_flags & ARM_FLAG_ATPCS_STACK_ALIGN) /* SUBTARGET_SWITCHES is used to add flags on a per-config basis. Bit 31 is reserved. See riscix.h. */ @@@@ -590,6 +599,8 @@@@ #define STACK_BOUNDARY 32 +#define PREFERRED_STACK_BOUNDARY (TARGET_ATPCS_STACK_ALIGN ? 64 : 32) + #define FUNCTION_BOUNDARY 32 #define EMPTY_FIELD_BOUNDARY 32 @@@@ -1252,7 +1263,7 @@@@ else if ((FROM) == FRAME_POINTER_REGNUM \ && (TO) == STACK_POINTER_REGNUM) \ (OFFSET) = (current_function_outgoing_args_size \ - + ((get_frame_size () + 3) & ~3)); \ + + arm_get_frame_size ()); \ else \ { \ int regno; \ @@@@ -1281,7 +1292,7 @@@@ && (regs_ever_live[14] || saved_hard_reg)) \ offset += 4; \ offset += current_function_outgoing_args_size; \ - (OFFSET) = ((get_frame_size () + 3) & ~3) + offset; \ + (OFFSET) = arm_get_frame_size () + offset; \ } \ } \ } @@@@ -2113,12 +2124,16 @@@@ /* Used to mask out junk bits from the return address, such as processor state, interrupt status, condition codes and the like. */ -#define MASK_RETURN_ADDR \ +#define MASK_RETURN_ADDR \ /* If we are generating code for an ARM2/ARM3 machine or for an ARM6 \ in 26 bit mode, the condition codes must be masked out of the \ return address. This does not apply to ARM6 and later processors \ - when running in 32 bit mode. */ \ - ((!TARGET_APCS_32) ? (GEN_INT (0x03fffffc)) : (GEN_INT (0xffffffff))) + when running in 32 bit mode, but if we are not targeting archv4 \ + or later, assume this may be ARM2/3 running in 32-bit compatible \ + code mode. */ \ + ((!TARGET_APCS_32) ? (GEN_INT (0x03fffffc)) \ + : arm_arch4 ? (GEN_INT (0xffffffff)) \ + : arm_gen_return_addr_mask ()) /* The remainder of this file is only needed for building the compiler itself, not for the collateral. */ @@@@ -2217,6 +2232,7 @@@@ Rtx gen_rotated_half_load PROTO ((Rtx)); Mmode arm_select_cc_mode RTX_CODE_PROTO ((Rcode, Rtx, Rtx)); Rtx gen_compare_reg RTX_CODE_PROTO ((Rcode, Rtx, Rtx, int)); +Rtx arm_gen_return_addr_mask PROTO ((void)); void arm_reload_in_hi PROTO ((Rtx *)); void arm_reload_out_hi PROTO ((Rtx *)); void arm_reorg PROTO ((Rtx)); @@@@ -2239,6 +2255,7 @@@@ void arm_poke_function_name STDIO_PROTO ((FILE *, char *)); void output_func_prologue STDIO_PROTO ((FILE *, int)); void output_func_epilogue STDIO_PROTO ((FILE *, int)); +int arm_get_frame_size PROTO ((void)); void arm_expand_prologue PROTO ((void)); void arm_print_operand STDIO_PROTO ((FILE *, Rtx, int)); void arm_final_prescan_insn PROTO ((Rtx)); @ 1.3 log @Update patch set against a sync of source from gnusrc/dist/toolchain. Not very many overall changes. Main ones include 1. Support for powerpc, arm32 and vax 2. Makefile.gcc can now be included by anything which depends on gcc versions. If the version installed isn't 2.95.3 it'll add itself as a BUILD_DEPENDS. (XXX: any of the makefile's in pkgsrc should be checked and change to use this) 3. Remove special PLIST.NetBSD-sparc as it's no longer needed 4. Change post-extract loop to pick up any arch files from FILESDIR without having to hardcode all the archs 5. Remove arch restrictions as this should work on any arch supported by the main source tree as of 03/28/02 6. Add PKGREVISION as this clearly isn't stock 2.95.3 (it doesn't change gcc --version so version checks won't care). @ text @d1 1 a1 1 $NetBSD$ @ 1.2 log @Update "gcc" package to version 2.95.3. This is a bug fix release of version 2.95.2. This package includes all changes to "gcc" from the new toolchain in NetBSD-current. The only tested (and enabled) platform is "NetBSD-*-i386" so far. @ text @d3 2 a4 2 --- ../gcc-2.95.3/gcc/config/arm/arm.h.orig Thu Jan 25 15:03:26 2001 +++ ../gcc-2.95.3/gcc/config/arm/arm.h Thu Jan 3 20:37:53 2002 @ 1.1 log @- Add patches from NetBSD-current to fix build on i386 ELF systems. - Install into "${LOCALBASE}/gcc-2.95.2" to avoid that e.g. "bsd.pkg.mk" picks up the new compiler by accident. - Add a file "${LOCALBASE}/etc/gcc-2.95.2.mk" which makes it possible to use the new "gcc" like this: make MAKECONF=/usr/pkg/etc/gcc-2.95.2.mk @ text @d3 104 a106 14 --- ../gcc-2.95.2/gcc/config/sparc/sparc.md.orig Thu Oct 21 07:35:40 1999 +++ ../gcc-2.95.2/gcc/config/sparc/sparc.md Sat Sep 16 00:17:42 2000 @@@@ -3472,10 +3472,7 @@@@ (define_split [(set (match_operand:TF 0 "register_operand" "") (match_operand:TF 1 "register_operand" ""))] - "reload_completed - && (! TARGET_ARCH64 - || (TARGET_FPU - && ! TARGET_HARD_QUAD))" + "reload_completed" [(clobber (const_int 0))] " { @