[GOLD] Sized_dynobj::do_section_entsize broke gold.

Sriraman Tallam tmsriram@google.com
Fri Aug 7 01:43:00 GMT 2009


Sorry, yes it does look like I need to add the return 0 at the end.
I will prepare a patch right away.

On Thu, Aug 6, 2009 at 6:38 PM, Doug Kwan (關振德)<dougkwan@google.com> wrote:
> Hi Sriraman,
>
>    It appears that the new function do_section_entsize broke my
> builds because of warnings.
>
> dougkwan@f666g:~/gold-cvs-3/obj/gold$ make
> make  all-recursive
> make[1]: Entering directory `/home/dougkwan/gold-cvs-3/obj/gold'
> Making all in po
> make[2]: Entering directory `/home/dougkwan/gold-cvs-3/obj/gold/po'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/home/dougkwan/gold-cvs-3/obj/gold/po'
> Making all in testsuite
> make[2]: Entering directory `/home/dougkwan/gold-cvs-3/obj/gold/testsuite'
> make  all-am
> make[3]: Entering directory `/home/dougkwan/gold-cvs-3/obj/gold/testsuite'
> make[3]: Nothing to be done for `all-am'.
> make[3]: Leaving directory `/home/dougkwan/gold-cvs-3/obj/gold/testsuite'
> make[2]: Leaving directory `/home/dougkwan/gold-cvs-3/obj/gold/testsuite'
> make[2]: Entering directory `/home/dougkwan/gold-cvs-3/obj/gold'
> if g++ -DHAVE_CONFIG_H -I. -I../../src/gold -I. -I../../src/gold
> -I../../src/gold/../include -I../../src/gold/../elfcpp
> -DLOCALEDIR="\"/usr/local/share/locale\""
> -DBINDIR="\"/usr/local/bin\""
> -DTOOLBINDIR="\"/usr/local/x86_64-unknown-linux-gnu/bin\""    -W -Wall
>  -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
> -frandom-seed=binary.o -g -O2 -MT binary.o -MD -MP -MF
> ".deps/binary.Tpo" -c -o binary.o ../../src/gold/binary.cc; \
>        then mv -f ".deps/binary.Tpo" ".deps/binary.Po"; else rm -f
> ".deps/binary.Tpo"; exit 1; fi
> cc1plus: warnings being treated as errors
> In file included from ../../src/gold/layout.h:36,
>                 from ../../src/gold/output.h:31,
>                 from ../../src/gold/binary.cc:32:
> ../../src/gold/dynobj.h: In member function ‘uint64_t
> gold::Sized_dynobj<size, big_endian>::do_section_entsize(unsigned
> int)’:
> ../../src/gold/dynobj.h:204: warning: no return statement in function
> returning non-void
> make[2]: *** [binary.o] Error 1
> make[2]: Leaving directory `/home/dougkwan/gold-cvs-3/obj/gold'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/dougkwan/gold-cvs-3/obj/gold'
> make: *** [all] Error 2
> dougkwan@f666g:~/gold-cvs-3/obj/gold$
>
>
> Perhaps the function should be changed like this?
>
> Index: dynobj.h
> ===================================================================
> RCS file: /cvs/src/src/gold/dynobj.h,v
> retrieving revision 1.29
> diff -u -p -r1.29 dynobj.h
> --- dynobj.h    5 Aug 2009 20:51:56 -0000       1.29
> +++ dynobj.h    7 Aug 2009 01:38:01 -0000
> @@ -201,7 +201,7 @@ class Sized_dynobj : public Dynobj
>   // Not used for dynobj.
>   uint64_t
>   do_section_entsize(unsigned int )
> -  { gold_unreachable(); }
> +  { gold_unreachable(); return 0; }
>
>   // Return section address.
>   uint64_t
>
> -Doug
>



More information about the Binutils mailing list