This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/22362] Installed crt1.o, crti,.o and crtn.o files are used with -m32


https://sourceware.org/bugzilla/show_bug.cgi?id=22362

--- Comment #5 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/pr22362/symlink has been created
        at  d7ca99d742d11803ab0e2b594ab828886bc069dc (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d7ca99d742d11803ab0e2b594ab828886bc069dc

commit d7ca99d742d11803ab0e2b594ab828886bc069dc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 29 12:03:03 2017 -0700

    nptl: Simplify libpthread.so rules

    libpthread.so must be created against a special crti.o and when multi-lib
    GCC is used to build glibc, the special crti.o must be placed under the
    `gcc -print-multi-directory` subdirectory so that -B$(common-objpfx)nptl/
    will pick it up.  This patch compiles the special crti.o directly with
    "-include pt-crti.h" and uses the new make-link-multidir from the fix
    for [BZ #22362] to create the symlink for the multi-lib subdirectory.
    It simplifies libpthread.so rules to support -B$(common-objpfx)nptl/
    and -B$(common-objpfx)/ for correct crt*.o files.

    Tested on x86-64 for x86-64, i686 and x32.

        * nptl/Makefile (multidir.mk): Don't generate.
        ($(objpfx)multidir.mk): Removed.
        (crtn-objs): Likewise.
        (generated-dirs): Don't add $(multidir).
        (multilib-crti-objs): New.
        (extra-objs): Use $(multilib-crti-objs).  Don't add pt-crti.o.
        ($(objpfx)libpthread.so): Removed.
        (CPPFLAGS-crti.o): New.
        ($(objpfx)crti.o): Removed.
        ($(objpfx)$(multidir)/crti.o): Likewise.
        ($(objpfx)$(multidir)/crtn.o): Likewise.
        ($(addprefix $(objpfx)$(multidir)/, $(crti-objs))): New target.
        (generated): Remove multidir.mk.
        * nptl/pt-crti.S: Renamed to ...
        * nptl/pt-crti.h: This.  Don't include <crti.S>.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3242db2138de7e0786ee3806f8bd016925d06099

commit 3242db2138de7e0786ee3806f8bd016925d06099
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Oct 28 17:41:16 2017 -0700

    Use newly built crt*.o files to build shared objects [BZ #22362]

    When multi-lib GCC is used to build glibc, the search order of GCC driver
    for crt*.o is -B*/`gcc -print-multi-directory`, the installed diretory,
    -B*/.  This patch adds multi-lib support to csu/Makefile so that
    -B/glibc-build-directory/csu/ will pick up the newly built crt*.o.

    Tested on x86-64 for i686 and x32.

        [BZ #22362]
        * Makerules (make-link-multidir): New.
        * config.make.in (multidir): New.
        * configure.ac (libc_cv_multidir): New.  AC_SUBST.
        * configure: Regenerated.
        * csu/Makefile [$(multidir) != .](multilib-extra-objs): New.
        [$(multidir) != .](extra-objs): Add $(multilib-extra-objs).
        [$(multidir) != .]($(addprefix $(objpfx)$(multidir)/, $(install-lib))):
        New target.

-----------------------------------------------------------------------

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]