- add '-D ${DESTDIR}' to INSTPRIV, so install(8) removes the leading
${DESTDIR} from the metalogged path
- provide ${METADB.add} variable (for "${CAT} -l >> ${METALOG}"), to make
it easier to replace manual metalog manipulation in the future.
- with manual metalog additions, don't add the leading ${DESTDIR} in the path
- in maketars, use "mtree -C ..." instead of
"mtree -D ... | sed -e 's,\(.*\) \(\..*\),\2 \1,";
Benefits:
- maketars "Parsing METALOG" step speeds up from 29 seconds to 1.2 seconds
on a P3-600.
(This also benefits "make installworld" at the top level.)
- ${DESTDIR}/METALOG is easier to read without the leading "${DESTDIR}"
on all the pathnames, and it's smaller as well.
Background:
Originally, the EH labels were placed on the permanent obstack, which
could end up using a lot of memory (for heavy inlining) since inlined
labels also needed to be permanent as a result of this.
This was changed in
Wed Dec 9 09:12:40 1998 Andrew MacLeod <amacleod@cygnus.com>
* except.h (struct handler_info): Add handler_number field.
* except.c (gen_exception_label): EH labels no longer need to be
on the permanent obstack.
(get_new_handler): Set the label number field.
(output_exception_table_entry): Regenerate handler label reference
from the label number field.
(init_eh): Remove a blank line.
* integrate.c (get_label_from_map): Labels no longer need to be
on the permanent obstack.
by using the label numbers instead of the label structures in most cases.
The operative word here is "most" cases. Addresses to the EH RTX was still
used in (at least) flow.c, that now used freed memory. Oops.
For this to happen, the freed address of the RTX representing a EH label
must be reused for a new label that is located in dead code. delete_block()
will then see that this RTX is mentioned in the EH table, and (incorrectly)
remove the exception handler.
This might be seen when, for example, compiling
src/gnu/dist/groff/src/roff/troff/node.cc for m68k.
sections with .text if the following 3 conditions are true:
1. Section has file contents and is read-only.
2. The VMA of the section is after the end of .text and before
the start of .data.
3. The image is demand-pageable (otherwise, a_text in the header
will not reflect the gap between .text and .data).
Fixes PR 19164.
* If -mhard-float is passed to the compiler, pass -mfpa10 to the assembler.
* If -msoft-float is passed to the compiler, pass -mfpu=softvfp to the
assembler.
* If neither -mhard-float nor -msoft-float are passed to the compiler,
pass -mfpu=softvfp to the assembler.
These changes properly mark objects as using soft-VFP, as is the default
code generation for NetBSD ARM ELF.
* FPU_MEMMULTI -- only include the FPU_FPA10 bit.
* FPU_ARCH_VFP -- define, meaning "uses VFP-format layout".
* FPU_FPA -- define short-hand for (FPU_CORE|FPU_FPA10).
* FPU_DEFAULT -- FPU_ALL -> FPU_FPA.
* Floating point instructions -- FPU_ALL -> FPU_FPA.
* Also set F_SOFT_FLOAT if FPU_ARCH_VFP.
* Set F_VFP_FLOAT if FPU_ARCH_VFP.
* md_atof: lay out bytes properly if using VFP.
* Accept -mfpu=softvfp.
* For -mall, set the FPU part of cpu_variant to FPU_FPA, instead of
FPU_ALL.
C-referenceable names, i.e. "link sets") that happens with explicit
LMAs in the linker script:
* As orphans are sorted after sections, the effective
size of the section is changed. Record a size ajustment
for each orphan that is sorted after the section.
...and for sections which have an explicit load address expression:
* The first time an orphan is sorted after a section,
copy the load_base expression to the orphan, adding
the _unadjusted_ size of the parent section. We need
to use the unadjusted size because by the time the
expression can be folded, all of the orphan size
adjustments will have accumulated, resulting in misplacing
the orphan.
* For each subsequent orphan sorted after a section,
set the load_base of the orphan to the load address
of the previous orphan plus the size of the previous
orphan (actually, the unadjusted size, but for orphans,
size and unadjusted size are always equal).
function to include crti.o/crtn.o in the STARTFILE and ENDFILE
specs, respectively.
Corresponding GCC ChangeLog entry:
2002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
* gcc.c (The Specs Language): Document spec functions.
(static_spec_functions, lookup_spec_function)
(eval_spec_function, handle_spec_function)
(if_exists_spec_function, alloc_args): New.
(execute): Abort if processing_spec_function is true.
(do_spec_1): Hand off spec to handle_spec_function if %:
is encountered. If processing_spec_function is true,
end any pending argument when the end of the string is reached.
(main): Use alloc_args to allocate the initial argument vector.
* gcc.h (struct spec_function): New.
(lang_specific_spec_functions): New extern.
* config/netbsd-elf.h (STARTFILE_SPEC): Add if-exists(crti%O%s).
(ENDFILE_SPEC): Add if-exists(crtn%O%s).
* config/alpha/netbsd.h (ENDFILE_SPEC): Likewise.
unless one of the following flags are passed to the compiler:
-mno-abicalls
-fno-pic
-fno-PIC
Based on the following change in gcc-current:
2002-09-22 Jason Thorpe <thorpej@wasabisystems.com>
* config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Always pass -KPIC
unless -fno-pic or -fno-PIC is specified.
The -mno-abicalls handling is new to this patch, and will be checked
into gcc-current shortly.