Tom,
>>> That also sounds reasonable. Is nm -S more portable than size?
>>
>> Neither Solaris nor IRIX nm have it. size isn't particularly portable,
>> either: there are many variations in output format.
[...]
> In case we ever need it, here's a patch to access nm -S.
sorry for the very late response, but a couple of comments.
> +# Call pass if symbol size is ok, otherwise fail.
> +# example: /* { dg-final { object-symbol-size main <= 54 } } */
> +proc object-symbol-size { args } {
This needs to be documented in doc/sourcebuild.texi (Final Actions). We
made a concerted effort to document the testsuite and should keep it
that way.
> + # Find nm like we find g++ in g++.exp.
> + if ![info exists nm] {
> + set nm [findfile $base_dir/../../../binutils/nm \
> + $base_dir/../../../binutils/nm \
> + [findfile $base_dir/../../nm $base_dir/../../nm \
> + [findfile $base_dir/nm $base_dir/nm \
> + [transform nm]]]]
> + verbose -log "nm is $nm"
> + }
Please move this to a separate proc like gnat.exp (find_gnatclean).
> + upvar 2 name testcase
> + set testcase [lindex $testcase 0]
> + set output_file "[file rootname [file tail $testcase]].o"
> + set output [remote_exec host "$nm" "-S $output_file"]
> + set status [lindex $output 0]
> + if { $status != 0 } {
> + error "object-symbol-size: $nm failed"
> + return
> + }
As I said, nm -S is completely unportable. I'd rather at least try if
we can cope with the differences in size output format instead, or
use a hook here that allows to use different implementations.
Thanks for doing this.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University