help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Weird make error


From: david . hagood
Subject: Weird make error
Date: Thu, 9 Feb 2012 13:40:33 -0600
User-agent: SquirrelMail/1.4.21

Under OpenSuSE X86_64, I am trying to cross compile glibc 2.14 with make
(either 3.81 or 3.81), and I am getting a repeatable error on building
glibc.

In glibc/Makerules, there is the following rule:

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

ifeq (yes,$(elf))
# binutils only position loadable notes into the first page for binaries,
# not for shared objects
$(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
        $(LINK.o) -shared -Wl,-O1 \
                  -nostdlib -nostartfiles \
                  $(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS.so) \
                  -Wl,--verbose 2>&1 | \
          sed > address@hidden \
              -e '/^=========/,/^=========/!d;/^=========/d' \
              $(if $(filter yes,$(have-hash-style)), \
                   -e 's/^.*\.gnu\.hash[        ]*:.*$$/  .note.ABI-tag : { 
*(.note.ABI-tag) }
&/' \
                   -e '/^[      ]*\.hash[       ]*:.*$$/{h;d;}' \
                   -e '/DATA_SEGMENT_ALIGN/{H;g}' \
                , \
                   -e 's/^.*\.hash[     ]*:.*$$/  .note.ABI-tag : { 
*(.note.ABI-tag) } &/' \
               ) \
              -e 's/^.*\*(\.dynbss).*$$/& \
                 PROVIDE(__start___libc_freeres_ptrs = .); \
                 *(__libc_freeres_ptrs) \
                 PROVIDE(__stop___libc_freeres_ptrs = .);/'\
              -e 'address@hidden(\.jcr).*$$@& \
                 PROVIDE(__start___libc_subfreeres = .);\
                 __libc_subfreeres : { *(__libc_subfreeres) }\
                 PROVIDE(__stop___libc_subfreeres = .);\
                 PROVIDE(__start___libc_atexit = .);\
                 __libc_atexit : { *(__libc_atexit) }\
                 PROVIDE(__stop___libc_atexit = .);\
                 PROVIDE(__start___libc_thread_subfreeres = .);\
                 __libc_thread_subfreeres : { *(__libc_thread_subfreeres) }\
                 PROVIDE(__stop___libc_thread_subfreeres = .);\
                 /DISCARD/ : { *(.gnu.glibc-stub.*) }@'
        mv -f address@hidden $@
common-generated += shlib.lds
--------------------

When this gets executed in the make, that isn't what gets passed to the
command line - instead, what gets passed is:

              -e '/^=========/,/^=========/!d;/^=========/d' \
               -e 's/^.*\.gnu\.hash[    ]*:.*$/  .note.ABI-tag : { 
*(.note.ABI-tag)
} &/' -e '/^[   ]*\.hash[       ]*:.*$/{h;d;}' -e
'/DATA_SEGMENT_ALIGN/{H;g}'  \
              -e 's/^.*\*(\.dynbss).*$/& \
                 PROVIDE(__start___libc_freeres_ptrs = .); \
                 *(__libc_freeres_ptrs) \
                 PROVIDE(__stop___libc_freeres_ptrs = .);/'\
              -e 'address@hidden(\.jcr).*$@& \
                 PROVIDE(__start__es : {subfreeres = .);\

Note that last line is NOT what is in the Makefile - it is as if something
is corrupting the make rule at run time.

This has been totally repeatable on my machine. Also, I've seen somebody
else post this sort of output on pastebin, but have seen nothing else
about it.

Does anybody have any suggestions on what I can try to do to debug this?

(copying my work email and using my personal email, as my employer
lamentably puts a page long wart at the end of all mails sent from there.
Please keep my work as a CC on this.)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]