Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Oct 2003 08:43:13 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/lib/csu/common crtbrand.c
Message-ID:  <200310171543.h9HFhD4q008794@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
peter       2003/10/17 08:43:13 PDT

  FreeBSD src repository

  Modified files:
    lib/csu/common       crtbrand.c 
  Log:
  Explicitly specify an alignment for abitag.  Without it, gcc specifies a
  section alignnment of 16 bytes for amd64 and this breaks file(1).
  Before:
  ./cp: ELF 64-bit LSB executable, AMD x86-64, version 1 (FreeBSD), for \
    FreeBSD 127.7.9, statically linked, stripped
  after:    ^^^^^^^
  ./ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (FreeBSD), for \
    FreeBSD 5.0.1, dynamically linked (uses shared libs), stripped
  
  The reason for this is that the NOTE sections are not contiguous
  internally.  If the note section has an alignment of 16, then anything
  that looks for the data is supposed to round up the payload start to
  the next multiple of the alignment.  But FreeBSD/amd64 broke because the
  structure is declared as a single structure, not a (header,payload) group,
  where the payload had an explicit alignment roundup.
  
  The alternative is to change things like file(1) to ignore the ELF payload
  alignment rules for the PT_NOTE section only for FreeBSD.
  
  Revision  Changes    Path
  1.4       +1 -1      src/lib/csu/common/crtbrand.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310171543.h9HFhD4q008794>