# HG changeset patch # User jld # Date 1228464882 0 # Node ID 47922fab416ed559bd2fdc4ba679ca28b69257be # Parent c5bac719313d3059adb1b5621573254ef241579b * src/i386.ld: gcc_except_table subsections don't need to be kept. * src/i386.ld: gcc_except_table needs to be marked KEEP. diff --git a/packages/hal/i386/arch/current/ChangeLog b/packages/hal/i386/arch/current/ChangeLog --- a/packages/hal/i386/arch/current/ChangeLog +++ b/packages/hal/i386/arch/current/ChangeLog @@ -6,6 +6,15 @@ 2005-07-18 David Vrabel + + * src/i386.ld: gcc_except_table subsections don't need to be + kept. + +2005-06-03 Jonathan Larmour + + * src/i386.ld: gcc_except_table needs to be marked KEEP. + 2005-04-22 David Vrabel * cdl/hal_i386.cdl (CYGHWR_REDBOOT_I386_TRAMPOLINE_ADDRESS): Don't diff --git a/packages/hal/i386/arch/current/src/i386.ld b/packages/hal/i386/arch/current/src/i386.ld --- a/packages/hal/i386/arch/current/src/i386.ld +++ b/packages/hal/i386/arch/current/src/i386.ld @@ -9,6 +9,7 @@ // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. +// Copyright (C) 2005 eCosCentric Limited // // eCos 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 @@ -100,9 +101,11 @@ GROUP(libtarget.a libgcc.a) > _region_ #define SECTION_gcc_except_table(_region_, _vma_, _lma_) \ - .gcc_except_table _vma_ : _lma_ \ - { _EXCEPT_START_ = ABSOLUTE(.); *(.gcc_except_table) \ - _EXCEPT_END_ = ABSOLUTE(.);} \ + .gcc_except_table _vma_ : _lma_ \ + { _EXCEPT_START_ = ABSOLUTE(.); \ + KEEP(*(.gcc_except_table)) \ + *(.gcc_except_table.*) \ + _EXCEPT_END_ = ABSOLUTE(.);} \ > _region_ // Note: The __ in the name is an encoding of the .