Skip site navigation (1)Skip section navigation (2)
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>