Date: Fri, 23 Aug 2002 22:01:33 -0700 (PDT) From: Marcel Moolenaar <marcel@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern link_elf.c Message-ID: <200208240501.g7O51X64027154@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
marcel 2002/08/23 22:01:33 PDT Modified files: sys/kern link_elf.c Log: Work around a GCC optimization bug on ia64: In link_elf_symbol_values(), a pointer to a symbol is given and we have to find the containing symbol table. We do this by bounds checking. For some strange reason (ie I haven't found the root cause) the first test succeeded for said symbol, implying that the symbol came from the .dynsym table. In reality however the symbol actually resided in the .symtab table. Needless to say that all that was returned was junk. The upper bounds check was: (symptr - baseptr) < symtab_size This has been rewritten to: symptr < (baseptr + symtab_size) As a side-effect, slightly more optimal (and still correct :-) code can be generated on ia64. Revision Changes Path 1.58 +2 -2 src/sys/kern/link_elf.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200208240501.g7O51X64027154>