This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: linker script ASSERT


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]