This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: linker script ASSERT
- From: Nathan Sidwell <nathan at codesourcery dot com>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: binutils at sources dot redhat dot com
- Date: Tue, 17 Feb 2004 18:59:32 +0000
- Subject: Re: linker script ASSERT
- Organization: Codesourcery LLC
- References: <40324A79.50008@codesourcery.com> <m37jylip9d.fsf@redhat.com>
Nick Clifton wrote:
Have you tested this patch ? If so how ?
current binutils, arm-unknown-exp
Please could you also create a linker testsuite file to check the new
functionality so that we can make sure that this feature does not get
forgotten in the future.
Here's such a test, I have verified that if one turns the assert into
dummy = ASSERT (...);
it'll parse, but give
ld: SIZEOF forward reference of section .empty
with an unpatched linker.
ok?
nathan
--
Nathan Sidwell :: http://www.codesourcery.com :: CodeSourcery LLC
nathan@codesourcery.com :: http://www.planetfall.pwp.blueyonder.co.uk
2004-02-17 Nathan Sidwell <nathan@codesourcery.com>
* ld-scripts/assert.{s,t,exp}: New.
Index: assert.exp
===================================================================
RCS file: assert.exp
diff -N assert.exp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- assert.exp 17 Feb 2004 18:54:05 -0000
***************
*** 0 ****
--- 1,31 ----
+ # Test ASSERT in a linker script.
+ # By Nathan Sidwell, CodeSourcery LLC
+ # Copyright 2004
+ # Free Software Foundation, Inc.
+ #
+ # This file 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 of the License, or
+ # (at your option) any later version.
+ #
+ # This program 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 program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ set testname "ASSERT"
+
+ if ![ld_assemble $as $srcdir/$subdir/assert.s tmpdir/assert.o] {
+ unresolved $testname
+ return
+ }
+
+ if ![ld_simple_link $ld tmpdir/assert "-T $srcdir/$subdir/assert.t tmpdir/assert.o"] {
+ fail $testname
+ } else {
+ pass $testname
+ }
Index: assert.t
===================================================================
RCS file: assert.t
diff -N assert.t
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- assert.t 17 Feb 2004 18:54:05 -0000
***************
*** 0 ****
--- 1,5 ----
+ SECTIONS
+ {
+ .empty : {}
+ ASSERT (!SIZEOF(.empty), "Empty is not empty")
+ }
Index: assert.s
===================================================================
RCS file: assert.s
diff -N assert.s
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- assert.s 17 Feb 2004 18:54:05 -0000
***************
*** 0 ****
--- 1 ----
+ #nothing here