This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Broadcom XLP support
- From: ANDY KENNEDY <ANDY dot KENNEDY at adtran dot com>
- To: "'binutils at sourceware dot org'" <binutils at sourceware dot org>
- Date: Tue, 2 Aug 2016 21:37:35 +0000
- Subject: Broadcom XLP support
- Authentication-results: sourceware.org; auth=none
Hi,
I have been working with the XLP for the past couple of years. Lately,
due to external factors, to bump the toolchain to the latest versions
of things. Previously, I was using binutils 2.24 with a patch to add
in the XLP:
<http://lists.openembedded.org/pipermail/openembedded-core/2013-May/078418.html>
which worked great. I'm attempting to build binutils-2.26 using this
same patch (which didn't go in cleanly, including having to renumber
MACH_XLP from octeon3 as the original patch clobbered that #define).
The addition of XLP to the new binutils came with the following comment:
/* XLP is mostly like XLR, with the prominent exception it is being
MIPS64R2. */
which may not be correct. The kernel source includes Broadcom/Netlogic
specific instructions that are not defined as a part of the XLR. IIRC,
the XLP is a superset of the XLR.
After making one change to the above patch (changing E_MIPS_MACH_XLP
from 0x008e0000 to 0x008f0000), I get a build error when building
glibc in configure:
[INFO ] =================================================================
[INFO ] Installing C library headers & start files
<snip>
[CFG ] checking for gnumake... no
[CFG ] checking for gmake... gmake
[CFG ] checking version of gmake... 3.82, ok
[CFG ] checking for gnumsgfmt... no
[CFG ] checking for gmsgfmt... no
[CFG ] checking for msgfmt... msgfmt
[CFG ] checking version of msgfmt... 0.18.2, ok
[CFG ] checking for makeinfo... makeinfo
[CFG ] checking version of makeinfo... 4.13, ok
[CFG ] checking for sed... sed
[CFG ] checking version of sed... 4.2.2, ok
[CFG ] checking for gawk... gawk
[CFG ] checking version of gawk... 4.1.0, ok
[CFG ] checking if mips64-LinuxBSP-linux-gnu-gcc is sufficient to build libc... yes
[CFG ] checking for mips64-LinuxBSP-linux-gnu-nm... mips64-LinuxBSP-linux-gnu-nm
[CFG ] checking LD_LIBRARY_PATH variable... ok
[CFG ] checking for bash... (cached) /bin/bash
[CFG ] checking for perl... /usr/bin/perl
[CFG ] checking for install-info... /usr/bin/install-info
[CFG ] checking for bison... bison
[CFG ] checking version of bison... 2.7, ok
[CFG ] checking for .set assembler directive... no
[CFG ] checking linker support for protected data symbol... no
[CFG ] checking for broken __attribute__((alias()))... no
[CFG ] checking whether to put _rtld_local into .sdata section... yes
[ERROR] checking whether to use .ctors/.dtors header and trailer... configure: error: missing __attribute__ ((constructor)) support??
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Installing C library headers & start files'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@259]
[ERROR] >> called from: do_libc_backend_once[scripts/build/libc/glibc.sh@366]
[ERROR] >> called from: do_libc_backend[scripts/build/libc/glibc.sh@164]
[ERROR] >> called from: do_libc_start_files[scripts/build/libc/glibc.sh@52]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@652]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log'
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> 'docs/B - Known issues.txt'
[ERROR]
[ERROR] (elapsed: 5:18.86)
[05:19] / gmake: *** [build] Error 1
while building with crosstools-ng.
Previously, the build succeeded, however, when building the Linux
kernel from the chip vendor, I get:
>>> linux 2.6.32.9 Building
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-mips
Checking missing-syscalls for N32
CALL scripts/checksyscalls.sh
Checking missing-syscalls for O32
CALL scripts/checksyscalls.sh
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
LD init/built-in.o
init/mounts.o: In function `tty_port_users':
(.text.tty_port_users+0x0): multiple definition of `tty_port_users'
init/main.o:main.c:(.text.tty_port_users+0x0): first defined here
make[1]: *** [init/built-in.o] Error 1
make: *** [init] Error 2
make: *** Waiting for unfinished jobs....
CC arch/mips/netlogic/common/nlm_hal.o
GEN usr/initramfs_data.cpio.lzma
{standard input}: Assembler messages:
{standard input}:215: Error: unrecognized opcode `msgsnds $3,$4'
{standard input}:280: Error: unrecognized opcode `msgsnds $3,$4'
{standard input}:339: Error: unrecognized opcode `msgsnds $3,$4'
{standard input}:361: Error: unrecognized opcode `msgsnds $3,$4'
{standard input}:420: Error: unrecognized opcode `msgsnds $3,$4'
{standard input}:442: Error: unrecognized opcode `msgsnds $3,$4'
{standard input}:490: Error: unrecognized opcode `msglds $2,$4'
{standard input}:558: Error: unrecognized opcode `msglds $2,$4'
The only thing that changed was my patch to binutils, so, I'm expecting
that I screwed something up/left something out. If you have anything
that could help me out to figure this out, I would appreciate it.
Thanks,
Andy