* [Buildroot] [PATCH 01/10] sstrip: make it a proper package
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 02/10] toolchain: move sysroot to host dir Gustavo Zacarias
` (9 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
* Convert sstrip to a proper gentargets package
* Use openwrt svn version, it's basically the same one we used
* Change the hooks from old toolchain/sstrip to new package/sstrip
* Drop the old toolchain/sstrip directory
* sstrip for the target is now in Package -> Development
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/Config.in | 3 +
package/Makefile.in | 2 +-
package/sstrip/Config.in | 7 +
package/sstrip/sstrip.mk | 45 +++
toolchain/dependencies/dependencies.mk | 2 +-
toolchain/sstrip/Config.in | 9 -
toolchain/sstrip/sstrip.c | 467 -----------------------------
toolchain/sstrip/sstrip.mk | 70 -----
toolchain/toolchain-buildroot.mk | 1 -
toolchain/toolchain-buildroot/Config.in.2 | 1 -
toolchain/toolchain-crosstool-ng.mk | 1 -
toolchain/toolchain-external.mk | 1 -
12 files changed, 57 insertions(+), 552 deletions(-)
create mode 100644 package/sstrip/Config.in
create mode 100644 package/sstrip/sstrip.mk
delete mode 100644 toolchain/sstrip/Config.in
delete mode 100644 toolchain/sstrip/sstrip.c
delete mode 100644 toolchain/sstrip/sstrip.mk
diff --git a/package/Config.in b/package/Config.in
index 225d873..27d8023 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -73,6 +73,9 @@ endif
source "package/pkg-config/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/sed/Config.in"
+endif
+source "package/sstrip/Config.in"
+if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/tar/Config.in"
endif
endmenu
diff --git a/package/Makefile.in b/package/Makefile.in
index 71c8dbc..3fa98fe 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -162,7 +162,7 @@ ifeq ($(BR2_STRIP_sstrip),y)
STRIP_DISCARD_ALL:=
STRIP_STRIP_UNNEEDED:=
STRIP_STRIP_ALL:=
-TARGET_STRIP=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-sstrip
+TARGET_STRIP=$(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-sstrip
STRIPCMD=$(TARGET_STRIP)
KSTRIPCMD=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note --strip-unneeded
endif
diff --git a/package/sstrip/Config.in b/package/sstrip/Config.in
new file mode 100644
index 0000000..12a5941
--- /dev/null
+++ b/package/sstrip/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_SSTRIP
+ bool "sstrip"
+ help
+ Small utility that removes a few bytes from an executable that
+ strip leaves behind.
+
+ http://www.muppetlabs.com/~breadbox/software/elfkickers.html
diff --git a/package/sstrip/sstrip.mk b/package/sstrip/sstrip.mk
new file mode 100644
index 0000000..d8db3b7
--- /dev/null
+++ b/package/sstrip/sstrip.mk
@@ -0,0 +1,45 @@
+############################################################
+#
+# sstrip
+#
+############################################################
+
+SSTRIP_SITE = svn://dev.openwrt.org/openwrt/trunk/tools/sstrip
+SSTRIP_VERSION = 20154
+HOST_SSTRIP_BINARY = $(REAL_GNU_TARGET_NAME)-sstrip
+
+# This is a kludge to get host-ccache build before us or it fails
+ifeq ($(BR2_CCACHE),y)
+HOST_SSTRIP_DEPENDENCIES = host-ccache
+endif
+
+define SSTRIP_BUILD_CMDS
+ cd $(@D) ; \
+ $(TARGET_CC) $(TARGET_CFLAGS) -include endian.h -include byteswap.h \
+ -o sstrip src/sstrip.c
+endef
+
+define SSTRIP_INSTALL_TARGET_CMDS
+ $(INSTALL) -D $(@D)/sstrip $(TARGET_DIR)/usr/bin/sstrip
+endef
+
+define SSTRIP_UNINSTALL_TARGET_CMDS
+ rm -f $(TARGET_DIR)/usr/bin/sstrip
+endef
+
+define HOST_SSTRIP_BUILD_CMDS
+ cd $(@D) ; \
+ $(HOSTCC) $(HOST_CFLAGS) -include endian.h -include byteswap.h \
+ -o sstrip src/sstrip.c
+endef
+
+define HOST_SSTRIP_INSTALL_CMDS
+ $(INSTALL) -D $(@D)/sstrip $(HOST_DIR)/usr/bin/$(HOST_SSTRIP_BINARY)
+endef
+
+define HOST_SSTRIP_UNINSTALL_CMDS
+ rm -f $(HOST_DIR)/usr/bin/$(HOST_SSTRIP_BINARY)
+endef
+
+$(eval $(call GENTARGETS,package,sstrip))
+$(eval $(call GENTARGETS,package,sstrip,host))
diff --git a/toolchain/dependencies/dependencies.mk b/toolchain/dependencies/dependencies.mk
index 13604f0..6eac05d 100644
--- a/toolchain/dependencies/dependencies.mk
+++ b/toolchain/dependencies/dependencies.mk
@@ -7,7 +7,7 @@
DEPENDENCIES_HOST_PREREQ:=
ifeq ($(BR2_STRIP_sstrip),y)
-DEPENDENCIES_HOST_PREREQ+=sstrip_host
+DEPENDENCIES_HOST_PREREQ+=host-sstrip
endif
# Remove duplicate entries from $(DL_TOOLS_DEPENDENCIES)
diff --git a/toolchain/sstrip/Config.in b/toolchain/sstrip/Config.in
deleted file mode 100644
index be4fa28..0000000
--- a/toolchain/sstrip/Config.in
+++ /dev/null
@@ -1,9 +0,0 @@
-config BR2_PACKAGE_SSTRIP_TARGET
- bool "Install sstrip for the target system"
- help
- Maximal 'strip'ing utility.
-
-config BR2_PACKAGE_SSTRIP_HOST
- bool "Install sstrip for the host/build system"
- help
- Maximal 'strip'ing utility.
diff --git a/toolchain/sstrip/sstrip.c b/toolchain/sstrip/sstrip.c
deleted file mode 100644
index 03adc0e..0000000
--- a/toolchain/sstrip/sstrip.c
+++ /dev/null
@@ -1,467 +0,0 @@
-/* http://www.muppetlabs.com/~breadbox/software/elfkickers.html */
-
-/* sstrip: Copyright (C) 1999-2001 by Brian Raiter, under the GNU
- * General Public License. No warranty. See COPYING for details.
- *
- * Aug 23, 2004 Hacked by Manuel Novoa III <mjn3@codepoet.org> to
- * handle targets of different endianness and/or elf class, making
- * it more useful in a cross-devel environment.
- */
-
-/* ============== original README ===================
- *
- * sstrip is a small utility that removes the contents at the end of an
- * ELF file that are not part of the program's memory image.
- *
- * Most ELF executables are built with both a program header table and a
- * section header table. However, only the former is required in order
- * for the OS to load, link and execute a program. sstrip attempts to
- * extract the ELF header, the program header table, and its contents,
- * leaving everything else in the bit bucket. It can only remove parts of
- * the file that occur at the end, after the parts to be saved. However,
- * this almost always includes the section header table, and occasionally
- * a few random sections that are not used when running a program.
- *
- * It should be noted that the GNU bfd library is (understandably)
- * dependent on the section header table as an index to the file's
- * contents. Thus, an executable file that has no section header table
- * cannot be used with gdb, objdump, or any other program based upon the
- * bfd library, at all. In fact, the program will not even recognize the
- * file as a valid executable. (This limitation is noted in the source
- * code comments for bfd, and is marked "FIXME", so this may change at
- * some future date. However, I would imagine that it is a pretty
- * low-priority item, as executables without a section header table are
- * rare in the extreme.) This probably also explains why strip doesn't
- * offer the option to do this.
- *
- * Shared library files may also have their section header table removed.
- * Such a library will still function; however, it will no longer be
- * possible for a compiler to link a new program against it.
- *
- * As an added bonus, sstrip also tries to removes trailing zero bytes
- * from the end of the file. (This normally cannot be done with an
- * executable that has a section header table.)
- *
- * sstrip is a very simplistic program. It depends upon the common
- * practice of putting the parts of the file that contribute to the
- * memory image at the front, and the remaining material at the end. This
- * permits it to discard the latter material without affecting file
- * offsets and memory addresses in what remains. Of course, the ELF
- * standard permits files to be organized in almost any order, so if a
- * pathological linker decided to put its section headers at the top,
- * sstrip would be useless on such executables.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <elf.h>
-#include <endian.h>
-#include <byteswap.h>
-
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-
-/* The name of the program.
- */
-static char const *progname;
-
-/* The name of the current file.
- */
-static char const *filename;
-
-
-/* A simple error-handling function. FALSE is always returned for the
- * convenience of the caller.
- */
-static int err(char const *errmsg)
-{
- fprintf(stderr, "%s: %s: %s\n", progname, filename, errmsg);
- return FALSE;
-}
-
-/* A flag to signal the need for endian reversal.
- */
-static int do_reverse_endian;
-
-/* Get a value from the elf header, compensating for endianness.
- */
-#define EGET(X) \
- (__extension__ ({ \
- uint64_t __res; \
- if (!do_reverse_endian) { \
- __res = (X); \
- } else if (sizeof(X) == 1) { \
- __res = (X); \
- } else if (sizeof(X) == 2) { \
- __res = bswap_16((X)); \
- } else if (sizeof(X) == 4) { \
- __res = bswap_32((X)); \
- } else if (sizeof(X) == 8) { \
- __res = bswap_64((X)); \
- } else { \
- fprintf(stderr, "%s: %s: EGET failed for size %d\n", \
- progname, filename, sizeof(X)); \
- exit(EXIT_FAILURE); \
- } \
- __res; \
- }))
-
-/* Set a value 'Y' in the elf header to 'X', compensating for endianness.
- */
-#define ESET(Y,X) \
- do if (!do_reverse_endian) { \
- Y = (X); \
- } else if (sizeof(Y) == 1) { \
- Y = (X); \
- } else if (sizeof(Y) == 2) { \
- Y = bswap_16((uint16_t)(X)); \
- } else if (sizeof(Y) == 4) { \
- Y = bswap_32((uint32_t)(X)); \
- } else if (sizeof(Y) == 8) { \
- Y = bswap_64((uint64_t)(X)); \
- } else { \
- fprintf(stderr, "%s: %s: ESET failed for size %d\n", \
- progname, filename, sizeof(Y)); \
- exit(EXIT_FAILURE); \
- } while (0)
-
-
-/* A macro for I/O errors: The given error message is used only when
- * errno is not set.
- */
-#define ferr(msg) (err(errno ? strerror(errno) : (msg)))
-
-
-
-#define HEADER_FUNCTIONS(CLASS) \
- \
-/* readelfheader() reads the ELF header into our global variable, and \
- * checks to make sure that this is in fact a file that we should be \
- * munging. \
- */ \
-static int readelfheader ## CLASS (int fd, Elf ## CLASS ## _Ehdr *ehdr) \
-{ \
- if (read(fd, ((char *)ehdr)+EI_NIDENT, sizeof(*ehdr) - EI_NIDENT) \
- != sizeof(*ehdr) - EI_NIDENT) \
- return ferr("missing or incomplete ELF header."); \
- \
- /* Verify the sizes of the ELF header and the program segment \
- * header table entries. \
- */ \
- if (EGET(ehdr->e_ehsize) != sizeof(Elf ## CLASS ## _Ehdr)) \
- return err("unrecognized ELF header size."); \
- if (EGET(ehdr->e_phentsize) != sizeof(Elf ## CLASS ## _Phdr)) \
- return err("unrecognized program segment header size."); \
- \
- /* Finally, check the file type. \
- */ \
- if (EGET(ehdr->e_type) != ET_EXEC && EGET(ehdr->e_type) != ET_DYN) \
- return err("not an executable or shared-object library."); \
- \
- return TRUE; \
-} \
- \
-/* readphdrtable() loads the program segment header table into memory. \
- */ \
-static int readphdrtable ## CLASS (int fd, Elf ## CLASS ## _Ehdr const *ehdr, \
- Elf ## CLASS ## _Phdr **phdrs) \
-{ \
- size_t size; \
- \
- if (!EGET(ehdr->e_phoff) || !EGET(ehdr->e_phnum) \
-) return err("ELF file has no program header table."); \
- \
- size = EGET(ehdr->e_phnum) * sizeof **phdrs; \
- if (!(*phdrs = malloc(size))) \
- return err("Out of memory!"); \
- \
- errno = 0; \
- if (read(fd, *phdrs, size) != (ssize_t)size) \
- return ferr("missing or incomplete program segment header table."); \
- \
- return TRUE; \
-} \
- \
-/* getmemorysize() determines the offset of the last byte of the file \
- * that is referenced by an entry in the program segment header table. \
- * (Anything in the file after that point is not used when the program \
- * is executing, and thus can be safely discarded.) \
- */ \
-static int getmemorysize ## CLASS (Elf ## CLASS ## _Ehdr const *ehdr, \
- Elf ## CLASS ## _Phdr const *phdrs, \
- unsigned long *newsize) \
-{ \
- Elf ## CLASS ## _Phdr const *phdr; \
- unsigned long size, n; \
- int i; \
- \
- /* Start by setting the size to include the ELF header and the \
- * complete program segment header table. \
- */ \
- size = EGET(ehdr->e_phoff) + EGET(ehdr->e_phnum) * sizeof *phdrs; \
- if (size < sizeof *ehdr) \
- size = sizeof *ehdr; \
- \
- /* Then keep extending the size to include whatever data the \
- * program segment header table references. \
- */ \
- for (i = 0, phdr = phdrs ; i < EGET(ehdr->e_phnum) ; ++i, ++phdr) { \
- if (EGET(phdr->p_type) != PT_NULL) { \
- n = EGET(phdr->p_offset) + EGET(phdr->p_filesz); \
- if (n > size) \
- size = n; \
- } \
- } \
- \
- *newsize = size; \
- return TRUE; \
-} \
- \
-/* modifyheaders() removes references to the section header table if \
- * it was stripped, and reduces program header table entries that \
- * included truncated bytes at the end of the file. \
- */ \
-static int modifyheaders ## CLASS (Elf ## CLASS ## _Ehdr *ehdr, \
- Elf ## CLASS ## _Phdr *phdrs, \
- unsigned long newsize) \
-{ \
- Elf ## CLASS ## _Phdr *phdr; \
- int i; \
- \
- /* If the section header table is gone, then remove all references \
- * to it in the ELF header. \
- */ \
- if (EGET(ehdr->e_shoff) >= newsize) { \
- ESET(ehdr->e_shoff,0); \
- ESET(ehdr->e_shnum,0); \
- ESET(ehdr->e_shentsize,0); \
- ESET(ehdr->e_shstrndx,0); \
- } \
- \
- /* The program adjusts the file size of any segment that was \
- * truncated. The case of a segment being completely stripped out \
- * is handled separately. \
- */ \
- for (i = 0, phdr = phdrs ; i < EGET(ehdr->e_phnum) ; ++i, ++phdr) { \
- if (EGET(phdr->p_offset) >= newsize) { \
- ESET(phdr->p_offset,newsize); \
- ESET(phdr->p_filesz,0); \
- } else if (EGET(phdr->p_offset) + EGET(phdr->p_filesz) > newsize) { \
- ESET(phdr->p_filesz, newsize - EGET(phdr->p_offset)); \
- } \
- } \
- \
- return TRUE; \
-} \
- \
-/* commitchanges() writes the new headers back to the original file \
- * and sets the file to its new size. \
- */ \
-static int commitchanges ## CLASS (int fd, Elf ## CLASS ## _Ehdr const *ehdr, \
- Elf ## CLASS ## _Phdr *phdrs, \
- unsigned long newsize) \
-{ \
- size_t n; \
- \
- /* Save the changes to the ELF header, if any. \
- */ \
- if (lseek(fd, 0, SEEK_SET)) \
- return ferr("could not rewind file"); \
- errno = 0; \
- if (write(fd, ehdr, sizeof *ehdr) != sizeof *ehdr) \
- return err("could not modify file"); \
- \
- /* Save the changes to the program segment header table, if any. \
- */ \
- if (lseek(fd, EGET(ehdr->e_phoff), SEEK_SET) == (off_t)-1) { \
- err("could not seek in file."); \
- goto warning; \
- } \
- n = EGET(ehdr->e_phnum) * sizeof *phdrs; \
- if (write(fd, phdrs, n) != (ssize_t)n) { \
- err("could not write to file"); \
- goto warning; \
- } \
- \
- /* Eleventh-hour sanity check: don't truncate before the end of \
- * the program segment header table. \
- */ \
- if (newsize < EGET(ehdr->e_phoff) + n) \
- newsize = EGET(ehdr->e_phoff) + n; \
- \
- /* Chop off the end of the file. \
- */ \
- if (ftruncate(fd, newsize)) { \
- err("could not resize file"); \
- goto warning; \
- } \
- \
- return TRUE; \
- \
- warning: \
- return err("ELF file may have been corrupted!"); \
-}
-
-
-/* First elements of Elf32_Ehdr and Elf64_Ehdr are common.
- */
-static int readelfheaderident(int fd, Elf32_Ehdr *ehdr)
-{
- errno = 0;
- if (read(fd, ehdr, EI_NIDENT) != EI_NIDENT)
- return ferr("missing or incomplete ELF header.");
-
- /* Check the ELF signature.
- */
- if (!(ehdr->e_ident[EI_MAG0] == ELFMAG0 &&
- ehdr->e_ident[EI_MAG1] == ELFMAG1 &&
- ehdr->e_ident[EI_MAG2] == ELFMAG2 &&
- ehdr->e_ident[EI_MAG3] == ELFMAG3))
- {
- err("missing ELF signature.");
- return -1;
- }
-
- /* Compare the file's class and endianness with the program's.
- */
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB) {
- do_reverse_endian = 0;
- } else if (ehdr->e_ident[EI_DATA] == ELFDATA2MSB) {
-/* fprintf(stderr, "ELF file has different endianness.\n"); */
- do_reverse_endian = 1;
- }
-#elif __BYTE_ORDER == __BIG_ENDIAN
- if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB) {
-/* fprintf(stderr, "ELF file has different endianness.\n"); */
- do_reverse_endian = 1;
- } else if (ehdr->e_ident[EI_DATA] == ELFDATA2MSB) {
- do_reverse_endian = 0;
- }
-#else
-#error unkown endianness
-#endif
- else {
- err("Unsupported endianness");
- return -1;
- }
-
- /* Check the target architecture.
- */
-/* if (EGET(ehdr->e_machine) != ELF_ARCH) { */
-/* /\* return err("ELF file created for different architecture."); *\/ */
-/* fprintf(stderr, "ELF file created for different architecture.\n"); */
-/* } */
- return ehdr->e_ident[EI_CLASS];
-}
-
-
-HEADER_FUNCTIONS(32)
-
-HEADER_FUNCTIONS(64)
-
-/* truncatezeros() examines the bytes at the end of the file's
- * size-to-be, and reduces the size to exclude any trailing zero
- * bytes.
- */
-static int truncatezeros(int fd, unsigned long *newsize)
-{
- unsigned char contents[1024];
- unsigned long size, n;
-
- size = *newsize;
- do {
- n = sizeof contents;
- if (n > size)
- n = size;
- if (lseek(fd, size - n, SEEK_SET) == (off_t)-1)
- return ferr("cannot seek in file.");
- if (read(fd, contents, n) != (ssize_t)n)
- return ferr("cannot read file contents");
- while (n && !contents[--n])
- --size;
- } while (size && !n);
-
- /* Sanity check.
- */
- if (!size)
- return err("ELF file is completely blank!");
-
- *newsize = size;
- return TRUE;
-}
-
-/* main() loops over the cmdline arguments, leaving all the real work
- * to the other functions.
- */
-int main(int argc, char *argv[])
-{
- int fd;
- union {
- Elf32_Ehdr ehdr32;
- Elf64_Ehdr ehdr64;
- } e;
- union {
- Elf32_Phdr *phdrs32;
- Elf64_Phdr *phdrs64;
- } p;
- unsigned long newsize;
- char **arg;
- int failures = 0;
-
- if (argc < 2 || argv[1][0] == '-') {
- printf("Usage: sstrip FILE...\n"
- "sstrip discards all nonessential bytes from an executable.\n\n"
- "Version 2.0-X Copyright (C) 2000,2001 Brian Raiter.\n"
- "Cross-devel hacks Copyright (C) 2004 Manuel Novoa III.\n"
- "This program is free software, licensed under the GNU\n"
- "General Public License. There is absolutely no warranty.\n");
- return EXIT_SUCCESS;
- }
-
- progname = argv[0];
-
- for (arg = argv + 1 ; *arg != NULL ; ++arg) {
- filename = *arg;
-
- fd = open(*arg, O_RDWR);
- if (fd < 0) {
- ferr("can't open");
- ++failures;
- continue;
- }
-
- switch (readelfheaderident(fd, &e.ehdr32)) {
- case ELFCLASS32:
- if (!(readelfheader32(fd, &e.ehdr32) &&
- readphdrtable32(fd, &e.ehdr32, &p.phdrs32) &&
- getmemorysize32(&e.ehdr32, p.phdrs32, &newsize) &&
- truncatezeros(fd, &newsize) &&
- modifyheaders32(&e.ehdr32, p.phdrs32, newsize) &&
- commitchanges32(fd, &e.ehdr32, p.phdrs32, newsize)))
- ++failures;
- break;
- case ELFCLASS64:
- if (!(readelfheader64(fd, &e.ehdr64) &&
- readphdrtable64(fd, &e.ehdr64, &p.phdrs64) &&
- getmemorysize64(&e.ehdr64, p.phdrs64, &newsize) &&
- truncatezeros(fd, &newsize) &&
- modifyheaders64(&e.ehdr64, p.phdrs64, newsize) &&
- commitchanges64(fd, &e.ehdr64, p.phdrs64, newsize)))
- ++failures;
- break;
- default:
- ++failures;
- break;
- }
- close(fd);
- }
-
- return failures ? EXIT_FAILURE : EXIT_SUCCESS;
-}
diff --git a/toolchain/sstrip/sstrip.mk b/toolchain/sstrip/sstrip.mk
deleted file mode 100644
index f387e2d..0000000
--- a/toolchain/sstrip/sstrip.mk
+++ /dev/null
@@ -1,70 +0,0 @@
-######################################################################
-#
-# sstrip
-#
-######################################################################
-
-SSTRIP_SOURCE_FILE:=$(TOPDIR)/toolchain/sstrip/sstrip.c
-
-######################################################################
-#
-# sstrip host
-#
-######################################################################
-
-SSTRIP_HOST:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-sstrip
-
-$(SSTRIP_HOST): $(SSTRIP_SOURCE_FILE)
- mkdir -p $(@D) $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin
- $(HOSTCC) $(HOST_CFLAGS) $(SSTRIP_SOURCE_FILE) -o $(SSTRIP_HOST)
- ln -snf ../../bin/$(REAL_GNU_TARGET_NAME)-sstrip \
- $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/sstrip
- ln -snf $(REAL_GNU_TARGET_NAME)-sstrip \
- $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-sstrip
-
-sstrip_host: $(SSTRIP_HOST)
-
-sstrip_host-source: $(SSTRIP_SOURCE_FILE)
-
-sstrip_host-clean:
- rm -f $(SSTRIP_HOST)
- rm -f $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/sstrip
- rm -f $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-sstrip
-
-sstrip_host-dirclean:
- true
-
-######################################################################
-#
-# sstrip target
-#
-######################################################################
-
-SSTRIP_TARGET:=$(TARGET_DIR)/usr/bin/sstrip
-
-$(SSTRIP_TARGET): $(SSTRIP_SOURCE_FILE)
- $(TARGET_CC) $(TARGET_CFLAGS) $(SSTRIP_SOURCE_FILE) -o $(SSTRIP_TARGET)
-
-sstrip_target: $(SSTRIP_TARGET)
-
-sstrip_target-source: $(SSTRIP_SOURCE_FILE)
-
-sstrip_target-clean:
- rm -f $(SSTRIP_TARGET)
-
-sstrip_target-dirclean:
- true
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-
-ifeq ($(BR2_PACKAGE_SSTRIP_HOST),y)
-TARGETS+=sstrip_host
-endif
-
-ifeq ($(BR2_PACKAGE_SSTRIP_TARGET),y)
-TARGETS+=sstrip_target
-endif
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index 44044d7..f12a480 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -7,5 +7,4 @@ include toolchain/gcc/gcc-uclibc-4.x.mk
include toolchain/gdb/gdb.mk
include toolchain/kernel-headers/kernel-headers.mk
include toolchain/mklibs/mklibs.mk
-include toolchain/sstrip/sstrip.mk
include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-buildroot/Config.in.2 b/toolchain/toolchain-buildroot/Config.in.2
index d76aa7a..6a383f6 100644
--- a/toolchain/toolchain-buildroot/Config.in.2
+++ b/toolchain/toolchain-buildroot/Config.in.2
@@ -105,7 +105,6 @@ endchoice
source "toolchain/elf2flt/Config.in"
source "toolchain/mklibs/Config.in"
-source "toolchain/sstrip/Config.in"
config BR2_VFP_FLOAT
bool "Use ARM Vector Floating Point unit"
diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk
index 1c80300..1befff2 100644
--- a/toolchain/toolchain-crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng.mk
@@ -9,5 +9,4 @@ include toolchain/gcc/gcc-uclibc-4.x.mk
include toolchain/gdb/gdb.mk
include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
include toolchain/mklibs/mklibs.mk
-include toolchain/sstrip/sstrip.mk
include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
index f90b6f1..c43618b 100644
--- a/toolchain/toolchain-external.mk
+++ b/toolchain/toolchain-external.mk
@@ -8,6 +8,5 @@ include toolchain/gcc/gcc-uclibc-4.x.mk
include toolchain/gdb/gdb.mk
include toolchain/kernel-headers/kernel-headers.mk
include toolchain/mklibs/mklibs.mk
-include toolchain/sstrip/sstrip.mk
include toolchain/toolchain-external/ext-tool.mk
include toolchain/uClibc/uclibc.mk
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 02/10] toolchain: move sysroot to host dir
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 01/10] sstrip: make it a proper package Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 03/10] uclibc: move tools " Gustavo Zacarias
` (8 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
* Drop the BR2_STAGING_DIR option
* Hardcode STAGING_DIR to $(HOST_DIR)/usr/TUPLE/sysroot
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
Config.in | 13 ------------
Makefile | 2 -
package/Makefile.in | 54 ++++++++++++++++++++++++++------------------------
3 files changed, 28 insertions(+), 41 deletions(-)
diff --git a/Config.in b/Config.in
index ff77449..df0c7ce 100644
--- a/Config.in
+++ b/Config.in
@@ -72,19 +72,6 @@ config BR2_DL_DIR
The default is $(TOPDIR)/dl
-config BR2_STAGING_DIR
- string "Toolchain and header file location?"
- default "$(BASE_DIR)/staging"
- help
- This is the location where the toolchain will be installed. The
- toolchain will not work if it is moved from this location.
- Therefore, if you wish to package up a uClibc toolchain, it is
- important that is is set to the final location where the toolchain
- will be used.
-
- Most people will leave this set to the default value of
- "$(BASE_DIR)/staging".
-
menu "Mirrors and Download locations"
config BR2_PRIMARY_SITE
diff --git a/Makefile b/Makefile
index f6ab07e..9ba80a6 100644
--- a/Makefile
+++ b/Makefile
@@ -268,8 +268,6 @@ TAR_OPTIONS=$(call qstrip,$(BR2_TAR_OPTIONS)) -xf
GNU_TARGET_SUFFIX:=-$(call qstrip,$(BR2_GNU_TARGET_SUFFIX))
-STAGING_DIR:=$(call qstrip,$(BR2_STAGING_DIR))
-
# packages compiled for the host goes here
HOST_DIR:=$(BASE_DIR)/host
diff --git a/package/Makefile.in b/package/Makefile.in
index 3fa98fe..9765a1a 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -9,6 +9,34 @@ HOSTMAKE :=$(shell which $(HOSTMAKE) || type -p $(HOSTMAKE) || echo make)
MAKE1:=$(HOSTMAKE) -j1
MAKE:=$(HOSTMAKE) -j$(BR2_JLEVEL)
+# Compute GNU_TARGET_NAME and REAL_GNU_TARGET_NAME
+GNU_TARGET_NAME=$(ARCH)-linux
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
+LIBC=uclibc
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
+LIBC=uclibc
+else
+LIBC=gnu
+endif
+
+# The ABI suffix is a bit special on ARM, as it needs to be
+# -uclibcgnueabi for uClibc EABI, -uclibc for uClibc OABI, -gnueabi
+# for glibc EABI and -gnu for glibc OABI. This means that the LIBC and
+# ABI aren't strictly orthogonal, which explains why we need the test
+# on LIBC below.
+ifeq ($(BR2_ARM_EABI),y)
+ifeq ($(LIBC),uclibc)
+ABI=gnueabi
+else
+ABI=eabi
+endif
+endif
+
+REAL_GNU_TARGET_NAME=$(ARCH)-unknown-linux-$(LIBC)$(ABI)
+
+STAGING_DIR=$(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sysroot
+
ifeq ($(BR2_OPTIMIZE_0),y)
TARGET_OPTIMIZATION+=-O0
endif
@@ -85,32 +113,6 @@ TARGET_LDFLAGS+=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
TARGET_CXXFLAGS=$(TARGET_CFLAGS)
TARGET_SYSROOT_OPT=--sysroot=$(STAGING_DIR)
-# Compute GNU_TARGET_NAME and REAL_GNU_TARGET_NAME
-GNU_TARGET_NAME=$(ARCH)-linux
-
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-LIBC=uclibc
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
-LIBC=uclibc
-else
-LIBC=gnu
-endif
-
-# The ABI suffix is a bit special on ARM, as it needs to be
-# -uclibcgnueabi for uClibc EABI, -uclibc for uClibc OABI, -gnueabi
-# for glibc EABI and -gnu for glibc OABI. This means that the LIBC and
-# ABI aren't strictly orthogonal, which explains why we need the test
-# on LIBC below.
-ifeq ($(BR2_ARM_EABI),y)
-ifeq ($(LIBC),uclibc)
-ABI=gnueabi
-else
-ABI=eabi
-endif
-endif
-
-REAL_GNU_TARGET_NAME=$(ARCH)-unknown-linux-$(LIBC)$(ABI)
-
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 03/10] uclibc: move tools to host dir
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 01/10] sstrip: make it a proper package Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 02/10] toolchain: move sysroot to host dir Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 04/10] binutils: make it a proper package Gustavo Zacarias
` (7 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
Move uclibc host tools (ldd/ldconfig) to host dir.
They were previously installed in the staging dir.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
toolchain/uClibc/uclibc.mk | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index e05e16c..ec92824 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -450,17 +450,17 @@ $(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
fi
# Build the host utils. Need to add an install target...
$(MAKE1) -C $(UCLIBC_DIR)/utils \
- PREFIX=$(STAGING_DIR) \
+ PREFIX=$(HOST_DIR) \
HOSTCC="$(HOSTCC)" \
hostutils
if [ -f $(UCLIBC_DIR)/utils/ldd.host ]; then \
- install -c $(UCLIBC_DIR)/utils/ldd.host $(STAGING_DIR)/usr/bin/ldd; \
- ln -sf ldd $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ldd; \
+ install -D $(UCLIBC_DIR)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd; \
+ ln -sf ldd $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ldd; \
fi
if [ -f $(UCLIBC_DIR)/utils/ldconfig.host ]; then \
- install -c $(UCLIBC_DIR)/utils/ldconfig.host $(STAGING_DIR)/usr/bin/ldconfig; \
- ln -sf ldconfig $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ldconfig; \
- ln -sf ldconfig $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig; \
+ install -D $(UCLIBC_DIR)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig; \
+ ln -sf ldconfig $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ldconfig; \
+ ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig; \
fi
touch -c $@
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 04/10] binutils: make it a proper package
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
` (2 preceding siblings ...)
2010-12-28 19:10 ` [Buildroot] [PATCH 03/10] uclibc: move tools " Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-28 22:38 ` Peter Korsgaard
2010-12-28 19:10 ` [Buildroot] [PATCH 05/10] gcc: install copies of libgcc, libstdc++ and libgcj to the sysroot too Gustavo Zacarias
` (6 subsequent siblings)
10 siblings, 1 reply; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
* Convert binutils to a proper autotargets package
* Add version 2.21
* Drop version 2.17
* Hook up packaged binutils for target gcc
* Build tools are on HOST_DIR now so change it
* TARGET_CROSS is now in HOST_DIR too
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
Makefile | 4 +-
package/Config.in | 1 +
package/Makefile.in | 2 +-
package/binutils/Config.in | 22 +++
.../Config.in => package/binutils/Config.in.host | 17 +-
.../binutils-2.18}/100-makeinfo-version.patch | 0
.../binutils-2.18}/110-arm-eabi-conf.patch | 0
.../binutils-2.18}/300-001_ld_makefile_patch.patch | 0
.../300-012_check_ldrunpath_length.patch | 0
.../binutils-2.19.1}/110-arm-eabi-conf.patch | 0
.../binutils/binutils-2.19.1}/120-sh-conf.patch | 0
.../300-001_ld_makefile_patch.patch | 0
.../300-012_check_ldrunpath_length.patch | 0
.../binutils-2.19}/110-arm-eabi-conf.patch | 0
.../binutils/binutils-2.19}/120-sh-conf.patch | 0
.../binutils-2.19}/300-001_ld_makefile_patch.patch | 0
.../300-012_check_ldrunpath_length.patch | 0
.../binutils-2.20.1}/110-arm-eabi-conf.patch | 0
.../binutils/binutils-2.20.1}/120-sh-conf.patch | 0
.../300-001_ld_makefile_patch.patch | 0
.../300-012_check_ldrunpath_length.patch | 0
.../binutils-2.20.1}/400-arm_link_speed.patch | 0
.../binutils-2.20}/110-arm-eabi-conf.patch | 0
.../binutils/binutils-2.20}/120-sh-conf.patch | 0
.../binutils-2.20}/300-001_ld_makefile_patch.patch | 0
.../300-012_check_ldrunpath_length.patch | 0
.../binutils-2.20}/400-arm_link_speed.patch | 0
.../binutils-2.21}/110-arm-eabi-conf.patch | 0
.../binutils/binutils-2.21}/120-sh-conf.patch | 0
.../binutils-2.21}/300-001_ld_makefile_patch.patch | 0
.../300-012_check_ldrunpath_length.patch | 21 +++
package/binutils/binutils.mk | 68 ++++++++
toolchain/Makefile.in | 2 +-
toolchain/binutils/2.17/100-uclibc-conf.patch | 139 ---------------
toolchain/binutils/2.17/110-arm-eabi-conf.patch | 24 ---
.../binutils/2.17/300-001_ld_makefile_patch.patch | 50 ------
.../binutils/2.17/300-006_better_file_error.patch | 43 -----
.../2.17/300-012_check_ldrunpath_length.patch | 47 -----
.../2.17/400-mips-ELF_MAXPAGESIZE-4K.patch | 26 ---
.../binutils/2.17/500-fix-makeinfo-check.patch | 17 --
toolchain/binutils/binutils.mk | 179 --------------------
toolchain/gcc/Config.in.2 | 1 +
toolchain/gcc/gcc-uclibc-4.x.mk | 66 +++-----
toolchain/toolchain-buildroot.mk | 1 -
toolchain/toolchain-buildroot/Config.in | 2 +-
toolchain/toolchain-crosstool-ng.mk | 1 -
toolchain/toolchain-external.mk | 1 -
47 files changed, 148 insertions(+), 586 deletions(-)
create mode 100644 package/binutils/Config.in
rename toolchain/binutils/Config.in => package/binutils/Config.in.host (83%)
rename {toolchain/binutils/2.18 => package/binutils/binutils-2.18}/100-makeinfo-version.patch (100%)
rename {toolchain/binutils/2.18 => package/binutils/binutils-2.18}/110-arm-eabi-conf.patch (100%)
copy {toolchain/binutils/2.18 => package/binutils/binutils-2.18}/300-001_ld_makefile_patch.patch (100%)
rename {toolchain/binutils/2.18 => package/binutils/binutils-2.18}/300-012_check_ldrunpath_length.patch (100%)
copy {toolchain/binutils/2.19.1 => package/binutils/binutils-2.19.1}/110-arm-eabi-conf.patch (100%)
copy {toolchain/binutils/2.19.1 => package/binutils/binutils-2.19.1}/120-sh-conf.patch (100%)
rename {toolchain/binutils/2.19.1 => package/binutils/binutils-2.19.1}/300-001_ld_makefile_patch.patch (100%)
rename {toolchain/binutils/2.19.1 => package/binutils/binutils-2.19.1}/300-012_check_ldrunpath_length.patch (100%)
rename {toolchain/binutils/2.19 => package/binutils/binutils-2.19}/110-arm-eabi-conf.patch (100%)
rename {toolchain/binutils/2.19 => package/binutils/binutils-2.19}/120-sh-conf.patch (100%)
rename {toolchain/binutils/2.19 => package/binutils/binutils-2.19}/300-001_ld_makefile_patch.patch (100%)
rename {toolchain/binutils/2.19 => package/binutils/binutils-2.19}/300-012_check_ldrunpath_length.patch (100%)
rename {toolchain/binutils/2.20.1 => package/binutils/binutils-2.20.1}/110-arm-eabi-conf.patch (100%)
rename {toolchain/binutils/2.20.1 => package/binutils/binutils-2.20.1}/120-sh-conf.patch (100%)
rename {toolchain/binutils/2.20.1 => package/binutils/binutils-2.20.1}/300-001_ld_makefile_patch.patch (100%)
rename {toolchain/binutils/2.20.1 => package/binutils/binutils-2.20.1}/300-012_check_ldrunpath_length.patch (100%)
rename {toolchain/binutils/2.20.1 => package/binutils/binutils-2.20.1}/400-arm_link_speed.patch (100%)
rename {toolchain/binutils/2.20 => package/binutils/binutils-2.20}/110-arm-eabi-conf.patch (100%)
rename {toolchain/binutils/2.20 => package/binutils/binutils-2.20}/120-sh-conf.patch (100%)
rename {toolchain/binutils/2.20 => package/binutils/binutils-2.20}/300-001_ld_makefile_patch.patch (100%)
rename {toolchain/binutils/2.20 => package/binutils/binutils-2.20}/300-012_check_ldrunpath_length.patch (100%)
rename {toolchain/binutils/2.20 => package/binutils/binutils-2.20}/400-arm_link_speed.patch (100%)
rename {toolchain/binutils/2.19.1 => package/binutils/binutils-2.21}/110-arm-eabi-conf.patch (100%)
rename {toolchain/binutils/2.19.1 => package/binutils/binutils-2.21}/120-sh-conf.patch (100%)
rename {toolchain/binutils/2.18 => package/binutils/binutils-2.21}/300-001_ld_makefile_patch.patch (100%)
create mode 100644 package/binutils/binutils-2.21/300-012_check_ldrunpath_length.patch
create mode 100644 package/binutils/binutils.mk
delete mode 100644 toolchain/binutils/2.17/100-uclibc-conf.patch
delete mode 100644 toolchain/binutils/2.17/110-arm-eabi-conf.patch
delete mode 100644 toolchain/binutils/2.17/300-001_ld_makefile_patch.patch
delete mode 100644 toolchain/binutils/2.17/300-006_better_file_error.patch
delete mode 100644 toolchain/binutils/2.17/300-012_check_ldrunpath_length.patch
delete mode 100644 toolchain/binutils/2.17/400-mips-ELF_MAXPAGESIZE-4K.patch
delete mode 100644 toolchain/binutils/2.17/500-fix-makeinfo-check.patch
delete mode 100644 toolchain/binutils/binutils.mk
diff --git a/Makefile b/Makefile
index 9ba80a6..2325319 100644
--- a/Makefile
+++ b/Makefile
@@ -239,7 +239,7 @@ BASE_TARGETS += host-ccache
endif
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-BASE_TARGETS += uclibc-configured binutils cross_compiler uclibc-target-utils kernel-headers
+BASE_TARGETS += uclibc-configured host-binutils cross_compiler uclibc-target-utils kernel-headers
else
BASE_TARGETS += uclibc
endif
@@ -612,7 +612,7 @@ endif
configured: dirs kernel-headers uclibc-config busybox-config linux26-config
-prepatch: gcc-patched binutils-patched gdb-patched uclibc-patched
+prepatch: gcc-patched gdb-patched uclibc-patched
cross: $(BASE_TARGETS)
diff --git a/package/Config.in b/package/Config.in
index 27d8023..fb47e27 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -35,6 +35,7 @@ endmenu
menu "Development tools"
source "package/autoconf/Config.in"
source "package/automake/Config.in"
+source "package/binutils/Config.in"
source "package/bison/Config.in"
source "package/bsdiff/Config.in"
source "package/ccache/Config.in"
diff --git a/package/Makefile.in b/package/Makefile.in
index 9765a1a..983f9f5 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -114,7 +114,7 @@ TARGET_CXXFLAGS=$(TARGET_CFLAGS)
TARGET_SYSROOT_OPT=--sysroot=$(STAGING_DIR)
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
+TARGET_CROSS=$(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
TOOLCHAIN_EXTERNAL_PREFIX=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
diff --git a/package/binutils/Config.in b/package/binutils/Config.in
new file mode 100644
index 0000000..942562e
--- /dev/null
+++ b/package/binutils/Config.in
@@ -0,0 +1,22 @@
+config BR2_PACKAGE_BINUTILS
+ bool
+ depends on BR2_TOOLCHAIN_BUILDROOT
+ default y if BR2_PACKAGE_BINUTILS_TARGET || BR2_PACKAGE_BINUTILS_LIBBFD
+
+config BR2_PACKAGE_BINUTILS_TARGET
+ bool "binutils"
+ select BR2_PACKAGE_MPC if BR2_GCC_VERSION_4_5_X
+ select BR2_PACKAGE_MPFR
+ select BR2_PACKAGE_GMP
+ help
+ The GNU Binutils are a collection of binary tools.
+
+ http://www.gnu.org/software/binutils/
+
+config BR2_PACKAGE_BINUTILS_LIBBFD
+ bool
+ help
+ Install libbfd from binutils in the target.
+
+ This option is currently used by oprofile to just install
+ the minimum libbfd needed instead of a full-blown binutils.
diff --git a/toolchain/binutils/Config.in b/package/binutils/Config.in.host
similarity index 83%
rename from toolchain/binutils/Config.in
rename to package/binutils/Config.in.host
index 165b43e..4a5e8ef 100644
--- a/toolchain/binutils/Config.in
+++ b/package/binutils/Config.in.host
@@ -1,18 +1,11 @@
-# Choose binutils version.
-
comment "Binutils Options"
choice
prompt "Binutils Version"
- default BR2_BINUTILS_VERSION_2_20_1
+ default BR2_BINUTILS_VERSION_2_21
help
Select the version of binutils you wish to use.
- config BR2_BINUTILS_VERSION_2_17
- depends on !BR2_avr32
- depends on BR2_DEPRECATED
- bool "binutils 2.17"
-
config BR2_BINUTILS_VERSION_2_18
depends on !BR2_avr32
depends on BR2_DEPRECATED
@@ -40,19 +33,23 @@ choice
depends on !BR2_avr32
bool "binutils 2.20.1"
+ config BR2_BINUTILS_VERSION_2_21
+ depends on !BR2_avr32
+ bool "binutils 2.21"
+
endchoice
config BR2_BINUTILS_VERSION
string
- default "2.17" if BR2_BINUTILS_VERSION_2_17
default "2.18" if BR2_BINUTILS_VERSION_2_18
default "2.18-avr32-1.0.1" if BR2_BINUTILS_VERSION_2_18_AVR32_1_0_1
default "2.19" if BR2_BINUTILS_VERSION_2_19
default "2.19.1" if BR2_BINUTILS_VERSION_2_19_1
default "2.20" if BR2_BINUTILS_VERSION_2_20
default "2.20.1" if BR2_BINUTILS_VERSION_2_20_1
+ default "2.21" if BR2_BINUTILS_VERSION_2_21
-config BR2_EXTRA_BINUTILS_CONFIG_OPTIONS
+config BR2_BINUTILS_EXTRA_CONFIG_OPTIONS
string "Additional binutils options"
default ""
help
diff --git a/toolchain/binutils/2.18/100-makeinfo-version.patch b/package/binutils/binutils-2.18/100-makeinfo-version.patch
similarity index 100%
rename from toolchain/binutils/2.18/100-makeinfo-version.patch
rename to package/binutils/binutils-2.18/100-makeinfo-version.patch
diff --git a/toolchain/binutils/2.18/110-arm-eabi-conf.patch b/package/binutils/binutils-2.18/110-arm-eabi-conf.patch
similarity index 100%
rename from toolchain/binutils/2.18/110-arm-eabi-conf.patch
rename to package/binutils/binutils-2.18/110-arm-eabi-conf.patch
diff --git a/toolchain/binutils/2.18/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.18/300-001_ld_makefile_patch.patch
similarity index 100%
copy from toolchain/binutils/2.18/300-001_ld_makefile_patch.patch
copy to package/binutils/binutils-2.18/300-001_ld_makefile_patch.patch
diff --git a/toolchain/binutils/2.18/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.18/300-012_check_ldrunpath_length.patch
similarity index 100%
rename from toolchain/binutils/2.18/300-012_check_ldrunpath_length.patch
rename to package/binutils/binutils-2.18/300-012_check_ldrunpath_length.patch
diff --git a/toolchain/binutils/2.19.1/110-arm-eabi-conf.patch b/package/binutils/binutils-2.19.1/110-arm-eabi-conf.patch
similarity index 100%
copy from toolchain/binutils/2.19.1/110-arm-eabi-conf.patch
copy to package/binutils/binutils-2.19.1/110-arm-eabi-conf.patch
diff --git a/toolchain/binutils/2.19.1/120-sh-conf.patch b/package/binutils/binutils-2.19.1/120-sh-conf.patch
similarity index 100%
copy from toolchain/binutils/2.19.1/120-sh-conf.patch
copy to package/binutils/binutils-2.19.1/120-sh-conf.patch
diff --git a/toolchain/binutils/2.19.1/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.19.1/300-001_ld_makefile_patch.patch
similarity index 100%
rename from toolchain/binutils/2.19.1/300-001_ld_makefile_patch.patch
rename to package/binutils/binutils-2.19.1/300-001_ld_makefile_patch.patch
diff --git a/toolchain/binutils/2.19.1/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.19.1/300-012_check_ldrunpath_length.patch
similarity index 100%
rename from toolchain/binutils/2.19.1/300-012_check_ldrunpath_length.patch
rename to package/binutils/binutils-2.19.1/300-012_check_ldrunpath_length.patch
diff --git a/toolchain/binutils/2.19/110-arm-eabi-conf.patch b/package/binutils/binutils-2.19/110-arm-eabi-conf.patch
similarity index 100%
rename from toolchain/binutils/2.19/110-arm-eabi-conf.patch
rename to package/binutils/binutils-2.19/110-arm-eabi-conf.patch
diff --git a/toolchain/binutils/2.19/120-sh-conf.patch b/package/binutils/binutils-2.19/120-sh-conf.patch
similarity index 100%
rename from toolchain/binutils/2.19/120-sh-conf.patch
rename to package/binutils/binutils-2.19/120-sh-conf.patch
diff --git a/toolchain/binutils/2.19/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.19/300-001_ld_makefile_patch.patch
similarity index 100%
rename from toolchain/binutils/2.19/300-001_ld_makefile_patch.patch
rename to package/binutils/binutils-2.19/300-001_ld_makefile_patch.patch
diff --git a/toolchain/binutils/2.19/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.19/300-012_check_ldrunpath_length.patch
similarity index 100%
rename from toolchain/binutils/2.19/300-012_check_ldrunpath_length.patch
rename to package/binutils/binutils-2.19/300-012_check_ldrunpath_length.patch
diff --git a/toolchain/binutils/2.20.1/110-arm-eabi-conf.patch b/package/binutils/binutils-2.20.1/110-arm-eabi-conf.patch
similarity index 100%
rename from toolchain/binutils/2.20.1/110-arm-eabi-conf.patch
rename to package/binutils/binutils-2.20.1/110-arm-eabi-conf.patch
diff --git a/toolchain/binutils/2.20.1/120-sh-conf.patch b/package/binutils/binutils-2.20.1/120-sh-conf.patch
similarity index 100%
rename from toolchain/binutils/2.20.1/120-sh-conf.patch
rename to package/binutils/binutils-2.20.1/120-sh-conf.patch
diff --git a/toolchain/binutils/2.20.1/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.20.1/300-001_ld_makefile_patch.patch
similarity index 100%
rename from toolchain/binutils/2.20.1/300-001_ld_makefile_patch.patch
rename to package/binutils/binutils-2.20.1/300-001_ld_makefile_patch.patch
diff --git a/toolchain/binutils/2.20.1/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.20.1/300-012_check_ldrunpath_length.patch
similarity index 100%
rename from toolchain/binutils/2.20.1/300-012_check_ldrunpath_length.patch
rename to package/binutils/binutils-2.20.1/300-012_check_ldrunpath_length.patch
diff --git a/toolchain/binutils/2.20.1/400-arm_link_speed.patch b/package/binutils/binutils-2.20.1/400-arm_link_speed.patch
similarity index 100%
rename from toolchain/binutils/2.20.1/400-arm_link_speed.patch
rename to package/binutils/binutils-2.20.1/400-arm_link_speed.patch
diff --git a/toolchain/binutils/2.20/110-arm-eabi-conf.patch b/package/binutils/binutils-2.20/110-arm-eabi-conf.patch
similarity index 100%
rename from toolchain/binutils/2.20/110-arm-eabi-conf.patch
rename to package/binutils/binutils-2.20/110-arm-eabi-conf.patch
diff --git a/toolchain/binutils/2.20/120-sh-conf.patch b/package/binutils/binutils-2.20/120-sh-conf.patch
similarity index 100%
rename from toolchain/binutils/2.20/120-sh-conf.patch
rename to package/binutils/binutils-2.20/120-sh-conf.patch
diff --git a/toolchain/binutils/2.20/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.20/300-001_ld_makefile_patch.patch
similarity index 100%
rename from toolchain/binutils/2.20/300-001_ld_makefile_patch.patch
rename to package/binutils/binutils-2.20/300-001_ld_makefile_patch.patch
diff --git a/toolchain/binutils/2.20/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.20/300-012_check_ldrunpath_length.patch
similarity index 100%
rename from toolchain/binutils/2.20/300-012_check_ldrunpath_length.patch
rename to package/binutils/binutils-2.20/300-012_check_ldrunpath_length.patch
diff --git a/toolchain/binutils/2.20/400-arm_link_speed.patch b/package/binutils/binutils-2.20/400-arm_link_speed.patch
similarity index 100%
rename from toolchain/binutils/2.20/400-arm_link_speed.patch
rename to package/binutils/binutils-2.20/400-arm_link_speed.patch
diff --git a/toolchain/binutils/2.19.1/110-arm-eabi-conf.patch b/package/binutils/binutils-2.21/110-arm-eabi-conf.patch
similarity index 100%
rename from toolchain/binutils/2.19.1/110-arm-eabi-conf.patch
rename to package/binutils/binutils-2.21/110-arm-eabi-conf.patch
diff --git a/toolchain/binutils/2.19.1/120-sh-conf.patch b/package/binutils/binutils-2.21/120-sh-conf.patch
similarity index 100%
rename from toolchain/binutils/2.19.1/120-sh-conf.patch
rename to package/binutils/binutils-2.21/120-sh-conf.patch
diff --git a/toolchain/binutils/2.18/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.21/300-001_ld_makefile_patch.patch
similarity index 100%
rename from toolchain/binutils/2.18/300-001_ld_makefile_patch.patch
rename to package/binutils/binutils-2.21/300-001_ld_makefile_patch.patch
diff --git a/package/binutils/binutils-2.21/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.21/300-012_check_ldrunpath_length.patch
new file mode 100644
index 0000000..df78310
--- /dev/null
+++ b/package/binutils/binutils-2.21/300-012_check_ldrunpath_length.patch
@@ -0,0 +1,21 @@
+diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
+--- binutils-2.21.orig/ld/emultempl/elf32.em 2010-10-29 09:10:36.000000000 -0300
++++ binutils-2.21/ld/emultempl/elf32.em 2010-12-10 09:26:56.746102724 -0300
+@@ -1270,6 +1270,8 @@
+ && command_line.rpath == NULL)
+ {
+ lib_path = (const char *) getenv ("LD_RUN_PATH");
++ if ((lib_path) && (strlen (lib_path) == 0))
++ lib_path = NULL;
+ if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
+ force))
+ break;
+@@ -1497,6 +1499,8 @@
+ rpath = command_line.rpath;
+ if (rpath == NULL)
+ rpath = (const char *) getenv ("LD_RUN_PATH");
++ if ((rpath) && (strlen (rpath) == 0))
++ rpath = NULL;
+
+ for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
new file mode 100644
index 0000000..634c7ae
--- /dev/null
+++ b/package/binutils/binutils.mk
@@ -0,0 +1,68 @@
+#############################################################
+#
+# binutils
+#
+#############################################################
+
+BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
+BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.bz2
+BINUTILS_SITE = $(BR2_GNU_MIRROR)/binutils
+ifeq ($(ARCH),avr32)
+BINUTILS_SITE = ftp://www.at91.com/pub/buildroot
+endif
+BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
+BINUTILS_INSTALL_STAGING = YES
+
+# These aren't really needed, we just pull them until gcc is a proper package
+ifeq ($(BR2_PACKAGE_BINUTILS_TARGET),y)
+BINUTILS_DEPENDENCIES = gmp mpfr
+ifeq ($(BR2_GCC_VERSION_4_5_X),y)
+BINUTILS_DEPENDENCIES += mpc
+endif
+endif
+# We need to specify host & target to avoid breaking ARM EABI
+BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
+ --host=$(REAL_GNU_TARGET_NAME) \
+ --target=$(REAL_GNU_TARGET_NAME) \
+ --enable-shared \
+ $(BINUTILS_EXTRA_CONFIG_OPTIONS)
+
+# Install binutils after busybox to prefer full-blown utilities
+ifeq ($(BR2_PACKAGE_BUSYBOX),y)
+BINUTILS_DEPENDENCIES += busybox
+endif
+
+# "host" binutils should actually be "cross"
+# We just keep the convention of "host utility" for now
+HOST_BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
+HOST_BINUTILS_DEPENDENCIES = host-gmp host-mpfr
+ifeq ($(BR2_GCC_VERSION_4_5_X),y)
+HOST_BINUTILS_DEPENDENCIES += host-mpc
+endif
+HOST_BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
+ --target=$(REAL_GNU_TARGET_NAME) \
+ $(BR2_CONFIGURE_STAGING_SYSROOT) \
+ $(HOST_BINUTILS_EXTRA_CONFIG_OPTIONS)
+
+# We just want libbfd, not the full-blown binutils in staging
+define BINUTILS_INSTALL_STAGING_CMDS
+ $(MAKE) -C $(@D)/bfd DESTDIR=$(STAGING_DIR) install
+endef
+
+# only libbfd in the target...
+ifeq ($(BR2_PACKAGE_BINUTILS_LIBBFD),y)
+BINUTILS_INSTALL_FROM = $(@D)/bfd
+endif
+
+# ...or full binutils
+ifeq ($(BR2_PACKAGE_BINUTILS_TARGET),y)
+BINUTILS_INSTALL_FROM = $(@D)
+endif
+
+define BINUTILS_INSTALL_TARGET_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(BINUTILS_INSTALL_FROM) \
+ DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(call AUTOTARGETS,package,binutils))
+$(eval $(call AUTOTARGETS,package,binutils,host))
diff --git a/toolchain/Makefile.in b/toolchain/Makefile.in
index 2cb6e95..a7ca558 100644
--- a/toolchain/Makefile.in
+++ b/toolchain/Makefile.in
@@ -1,6 +1,6 @@
BR2_CONFIGURE_DEVEL_SYSROOT=--with-sysroot=$(TOOLCHAIN_DIR)/uClibc_dev/
BR2_CONFIGURE_STAGING_SYSROOT=--with-sysroot=$(STAGING_DIR)
-BR2_CONFIGURE_BUILD_TOOLS=--with-build-time-tools=$(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin
+BR2_CONFIGURE_BUILD_TOOLS=--with-build-time-tools=$(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin
# gcc has a bunch of needed stuff....
include toolchain/gcc/Makefile.in
diff --git a/toolchain/binutils/2.17/100-uclibc-conf.patch b/toolchain/binutils/2.17/100-uclibc-conf.patch
deleted file mode 100644
index 25222e5..0000000
--- a/toolchain/binutils/2.17/100-uclibc-conf.patch
+++ /dev/null
@@ -1,139 +0,0 @@
---- binutils-2.16.91.0.7/bfd/configure
-+++ binutils-2.16.91.0.7/bfd/configure
-@@ -3576,7 +3576,7 @@
- ;;
-
- # This must be Linux ELF.
--linux-gnu*)
-+linux-gnu*|linux-uclibc*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
---- binutils-2.16.91.0.7/binutils/configure
-+++ binutils-2.16.91.0.7/binutils/configure
-@@ -3411,7 +3411,7 @@
- ;;
-
- # This must be Linux ELF.
--linux-gnu*)
-+linux-gnu*|linux-uclibc*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
---- binutils-2.16.91.0.7/configure
-+++ binutils-2.16.91.0.7/configure
-@@ -1270,7 +1270,7 @@
- am33_2.0-*-linux*)
- noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
- ;;
-- sh-*-linux*)
-+ sh*-*-linux*)
- noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
- ;;
- sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-@@ -1578,7 +1578,7 @@
- romp-*-*)
- noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
- ;;
-- sh-*-* | sh64-*-*)
-+ sh*-*-* | sh64-*-*)
- case "${host}" in
- i[3456789]86-*-vsta) ;; # don't add gprof back in
- i[3456789]86-*-go32*) ;; # don't add gprof back in
---- binutils-2.16.91.0.7/configure.in
-+++ binutils-2.16.91.0.7/configure.in
-@@ -468,7 +468,7 @@
- am33_2.0-*-linux*)
- noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
- ;;
-- sh-*-linux*)
-+ sh*-*-linux*)
- noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
- ;;
- sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-@@ -776,7 +776,7 @@
- romp-*-*)
- noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
- ;;
-- sh-*-* | sh64-*-*)
-+ sh*-*-* | sh64-*-*)
- case "${host}" in
- i[[3456789]]86-*-vsta) ;; # don't add gprof back in
- i[[3456789]]86-*-go32*) ;; # don't add gprof back in
---- binutils-2.16.91.0.7/gas/configure
-+++ binutils-2.16.91.0.7/gas/configure
-@@ -3411,7 +3411,7 @@
- ;;
-
- # This must be Linux ELF.
--linux-gnu*)
-+linux-gnu*|linux-uclibc*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
---- binutils-2.16.91.0.7/gprof/configure
-+++ binutils-2.16.91.0.7/gprof/configure
-@@ -3419,6 +3419,11 @@
- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
- ;;
-
-+linux-uclibc*)
-+ lt_cv_deplibs_check_method=pass_all
-+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+ ;;
-+
- netbsd* | knetbsd*-gnu)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- binutils-2.16.91.0.7/ld/configure
-+++ binutils-2.16.91.0.7/ld/configure
-@@ -3413,7 +3413,7 @@
- ;;
-
- # This must be Linux ELF.
--linux-gnu*)
-+linux-gnu*|linux-uclibc*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
---- binutils-2.16.91.0.7/libtool.m4
-+++ binutils-2.16.91.0.7/libtool.m4
-@@ -739,7 +739,7 @@
- ;;
-
- # This must be Linux ELF.
--linux-gnu*)
-+linux-gnu*|linux-uclibc*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
---- binutils-2.16.91.0.7/ltconfig
-+++ binutils-2.16.91.0.7/ltconfig
-@@ -602,6 +602,7 @@
-
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
-+linux-uclibc*) ;;
- linux-gnu*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
-@@ -1247,7 +1248,7 @@
- ;;
-
- # This must be Linux ELF.
--linux-gnu*)
-+linux-gnu*|linux-uclibc*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
---- binutils-2.16.91.0.7/opcodes/configure
-+++ binutils-2.16.91.0.7/opcodes/configure
-@@ -3579,7 +3579,7 @@
- ;;
-
- # This must be Linux ELF.
--linux-gnu*)
-+linux-gnu*|linux-uclibc*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
diff --git a/toolchain/binutils/2.17/110-arm-eabi-conf.patch b/toolchain/binutils/2.17/110-arm-eabi-conf.patch
deleted file mode 100644
index be85ceb..0000000
--- a/toolchain/binutils/2.17/110-arm-eabi-conf.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
-@@ -1299,7 +1299,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
-diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
-+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
-@@ -497,7 +497,7 @@
- arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- ;;
-- arm*-*-linux-gnueabi)
-+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
- noconfigdirs="$noconfigdirs target-libffi target-qthreads"
- noconfigdirs="$noconfigdirs target-libjava target-libobjc"
- ;;
diff --git a/toolchain/binutils/2.17/300-001_ld_makefile_patch.patch b/toolchain/binutils/2.17/300-001_ld_makefile_patch.patch
deleted file mode 100644
index 04a7e61..0000000
--- a/toolchain/binutils/2.17/300-001_ld_makefile_patch.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh -e
-## 001_ld_makefile_patch.dpatch
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: correct where ld scripts are installed
-## DP: Author: Chris Chimelis <chris@debian.org>
-## DP: Upstream status: N/A
-## DP: Date: ??
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
- at DPATCH@
---- binutils-2.16.91.0.1/ld/Makefile.am
-+++ binutils-2.16.91.0.1/ld/Makefile.am
-@@ -20,7 +20,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- binutils-2.16.91.0.1/ld/Makefile.in
-+++ binutils-2.16.91.0.1/ld/Makefile.in
-@@ -268,7 +268,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/toolchain/binutils/2.17/300-006_better_file_error.patch b/toolchain/binutils/2.17/300-006_better_file_error.patch
deleted file mode 100644
index f337611..0000000
--- a/toolchain/binutils/2.17/300-006_better_file_error.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh -e
-## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Specify which filename is causing an error if the filename is a
-## DP: directory. (#45832)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
- at DPATCH@
-diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
---- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
-+++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
-@@ -150,6 +150,13 @@
- {
- bfd *nbfd;
- const bfd_target *target_vec;
-+ struct stat s;
-+
-+ if (stat (filename, &s) == 0)
-+ if (S_ISDIR(s.st_mode)) {
-+ bfd_set_error (bfd_error_file_not_recognized);
-+ return NULL;
-+ }
-
- nbfd = _bfd_new_bfd ();
- if (nbfd == NULL)
diff --git a/toolchain/binutils/2.17/300-012_check_ldrunpath_length.patch b/toolchain/binutils/2.17/300-012_check_ldrunpath_length.patch
deleted file mode 100644
index 498651a..0000000
--- a/toolchain/binutils/2.17/300-012_check_ldrunpath_length.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
-## DP: cases where -rpath isn't specified. (#151024)
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
- at DPATCH@
-diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
-+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
-@@ -692,6 +692,8 @@
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((lib_path) && (strlen (lib_path) == 0))
-+ lib_path = NULL;
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
-@@ -871,6 +873,8 @@
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
- if (! (bfd_elf_size_dynamic_sections
- (output_bfd, command_line.soname, rpath,
- command_line.filter_shlib,
diff --git a/toolchain/binutils/2.17/400-mips-ELF_MAXPAGESIZE-4K.patch b/toolchain/binutils/2.17/400-mips-ELF_MAXPAGESIZE-4K.patch
deleted file mode 100644
index 5959c71..0000000
--- a/toolchain/binutils/2.17/400-mips-ELF_MAXPAGESIZE-4K.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- binutils/bfd/elf32-mips.c~
-+++ binutils/bfd/elf32-mips.c
-@@ -1613,7 +1613,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
---- binutils/bfd/elfn32-mips.c~
-+++ binutils/bfd/elfn32-mips.c
-@@ -2399,7 +2399,9 @@
-
- /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
- page sizes of up to that limit, so we need to respect it. */
--#define ELF_MAXPAGESIZE 0x10000
-+/*#define ELF_MAXPAGESIZE 0x10000*/
-+/* Use 4K to shrink the elf header. NOT for general use! */
-+#define ELF_MAXPAGESIZE 0x1000
- #define elf32_bed elf32_tradbed
-
- /* Include the target file again for this target. */
diff --git a/toolchain/binutils/2.17/500-fix-makeinfo-check.patch b/toolchain/binutils/2.17/500-fix-makeinfo-check.patch
deleted file mode 100644
index c4c8888..0000000
--- a/toolchain/binutils/2.17/500-fix-makeinfo-check.patch
+++ /dev/null
@@ -1,17 +0,0 @@
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: binutils-2.17/configure
-===================================================================
---- binutils-2.17.orig/configure
-+++ binutils-2.17/configure
-@@ -3637,7 +3637,7 @@
- # For an installed makeinfo, we require it to be from texinfo 4.4 or
- # higher, else we use the "missing" dummy.
- if ${MAKEINFO} --version \
-- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-9][0-9]|[5-9])' >/dev/null 2>&1; then
- :
- else
- MAKEINFO="$MISSING makeinfo"
diff --git a/toolchain/binutils/binutils.mk b/toolchain/binutils/binutils.mk
deleted file mode 100644
index 8ab383b..0000000
--- a/toolchain/binutils/binutils.mk
+++ /dev/null
@@ -1,179 +0,0 @@
-#############################################################
-#
-# build binutils for use on the host system
-#
-#############################################################
-BINUTILS_VERSION:=$(call qstrip,$(BR2_BINUTILS_VERSION))
-
-EXTRA_BINUTILS_CONFIG_OPTIONS=$(call qstrip,$(BR2_EXTRA_BINUTILS_CONFIG_OPTIONS))
-ifeq ($(findstring avr32,$(BINUTILS_VERSION)),avr32)
-BINUTILS_SITE:=ftp://www.at91.com/pub/buildroot/
-else
-BINUTILS_SITE:=$(BR2_GNU_MIRROR)/binutils/
-endif
-
-# We do not rely on the host's gmp/mpfr but use a known working one
-BINUTILS_HOST_PREREQ:=
-BINUTILS_TARGET_PREREQ:=
-
-BINUTILS_HOST_PREREQ:=host-gmp host-mpfr
-HOST_SOURCE += host-gmp-source host-mpfr-source
-
-BINUTILS_TARGET_PREREQ:=gmp mpfr
-
-EXTRA_BINUTILS_CONFIG_OPTIONS+=--with-gmp=$(HOST_DIR)/usr
-EXTRA_BINUTILS_CONFIG_OPTIONS+=--with-mpfr=$(HOST_DIR)/usr
-
-BINUTILS_TARGET_CONFIG_OPTIONS=--with-gmp=$(STAGING_DIR)/usr
-BINUTILS_TARGET_CONFIG_OPTIONS+=--with-mpfr=$(STAGING_DIR)/usr
-
-ifeq ($(BR2_PACKAGE_LIBMPC),y)
-BINUTILS_ADD_MPC = y
-endif
-
-ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
-BINUTILS_ADD_MPC = y
-endif
-
-ifeq ($(BINUTILS_ADD_MPC),y)
-BINUTILS_HOST_PREREQ += host-mpc
-HOST_SOURCE += host-mpc-source
-BINUTILS_TARGET_PREREQ += mpc
-EXTRA_BINUTILS_CONFIG_OPTIONS += --with-mpc=$(HOST_DIR)/usr
-BINUTILS_TARGET_CONFIG_OPTIONS += --with-mpc=$(STAGING_DIR)/usr
-endif
-
-BINUTILS_PATCH_DIR:=toolchain/binutils/$(BINUTILS_VERSION)
-
-ifneq ($(filter xtensa%,$(ARCH)),)
-include target/xtensa/patch.in
-BINUTILS_PATCH_EXTRA:=$(call XTENSA_PATCH,binutils,$(BINUTILS_PATCH_DIR),. ..)
-endif
-
-BINUTILS_SOURCE:=binutils-$(BINUTILS_VERSION).tar.bz2
-BINUTILS_DIR:=$(TOOLCHAIN_DIR)/binutils-$(BINUTILS_VERSION)
-BINUTILS_CAT:=$(BZCAT)
-
-BINUTILS_DIR1:=$(TOOLCHAIN_DIR)/binutils-$(BINUTILS_VERSION)-build
-
-$(DL_DIR)/$(BINUTILS_SOURCE):
- mkdir -p $(DL_DIR)
- $(call DOWNLOAD,$(BINUTILS_SITE),$(BINUTILS_SOURCE))
-
-binutils-unpacked: $(BINUTILS_DIR)/.patched
-$(BINUTILS_DIR)/.unpacked: $(DL_DIR)/$(BINUTILS_SOURCE)
- mkdir -p $(TOOLCHAIN_DIR)
- rm -rf $(BINUTILS_DIR)
- $(BINUTILS_CAT) $(DL_DIR)/$(BINUTILS_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
- $(CONFIG_UPDATE) $(@D)
- touch $@
-
-binutils-patched: $(BINUTILS_DIR)/.patched
-$(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked
- # Apply appropriate binutils patches.
-ifneq ($(wildcard $(BINUTILS_PATCH_DIR)),)
- toolchain/patch-kernel.sh $(BINUTILS_DIR) $(BINUTILS_PATCH_DIR) \*.patch $(BINUTILS_PATCH_EXTRA)
-endif
- touch $@
-
-$(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched
- mkdir -p $(BINUTILS_DIR1)
- (cd $(BINUTILS_DIR1); rm -rf config.cache; \
- $(HOST_CONFIGURE_OPTS) \
- $(BINUTILS_DIR)/configure $(QUIET) \
- --prefix=$(STAGING_DIR)/usr \
- --build=$(GNU_HOST_NAME) \
- --host=$(GNU_HOST_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
- $(BR2_CONFIGURE_DEVEL_SYSROOT) \
- $(BR2_CONFIGURE_STAGING_SYSROOT) \
- $(DISABLE_NLS) \
- --disable-multilib \
- --disable-werror \
- $(SOFT_FLOAT_CONFIG_OPTION) \
- $(EXTRA_BINUTILS_CONFIG_OPTIONS) \
- $(QUIET) \
- )
- touch $@
-
-$(BINUTILS_DIR1)/binutils/objdump: $(BINUTILS_DIR1)/.configured
- $(MAKE) -C $(BINUTILS_DIR1) all
-
-# Make install will put gettext data in staging_dir/share/locale.
-# Unfortunatey, it isn't configureable.
-$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ld: $(BINUTILS_DIR1)/binutils/objdump
- $(MAKE) -C $(BINUTILS_DIR1) install
- # tooldir=/usr build_tooldir=/usr install
- #rm -f $(STAGING_DIR)/usr/bin/{ar,as,ld,nm,objdump,ranlib,strip}
-
-binutils: $(BINUTILS_HOST_PREREQ) $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ld
-
-binutils-source: $(DL_DIR)/$(BINUTILS_SOURCE)
-
-binutils-clean:
- -$(MAKE) -C $(BINUTILS_DIR1) DESTDIR=$(STAGING_DIR) \
- tooldir=/usr build_tooldir=/usr uninstall
- -$(MAKE) -C $(BINUTILS_DIR1) clean
- rm -rf $(wildcard $(patsubst %,$(STAGING_DIR)/usr/bin/*%,ar as ld nm objdump ranlib strip c++filt)) \
- $(wildcard $(patsubst %,$(STAGING_DIR)/usr/lib/%*,libiberty ldscripts))
-
-binutils-dirclean:
- rm -rf $(BINUTILS_DIR1)
-
-binutils-src-dirclean:
- rm -rf $(BINUTILS_DIR)
-
-#############################################################
-#
-# build binutils for use on the target system
-#
-#############################################################
-BINUTILS_DIR2:=$(BUILD_DIR)/binutils-$(BINUTILS_VERSION)-target
-$(BINUTILS_DIR2)/.configured: $(BINUTILS_DIR)/.patched
- mkdir -p $(BINUTILS_DIR2)
- (cd $(BINUTILS_DIR2); rm -rf config.cache; \
- $(TARGET_CONFIGURE_OPTS) \
- $(BINUTILS_DIR)/configure $(QUIET) \
- --prefix=/usr \
- --exec-prefix=/usr \
- --build=$(GNU_HOST_NAME) \
- --host=$(REAL_GNU_TARGET_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- $(DISABLE_NLS) \
- $(BINUTILS_TARGET_CONFIG_OPTIONS) \
- --disable-multilib \
- --disable-werror \
- $(SOFT_FLOAT_CONFIG_OPTION) \
- )
- touch $@
-
-$(BINUTILS_DIR2)/binutils/objdump: $(BINUTILS_DIR2)/.configured
- PATH=$(TARGET_PATH) $(MAKE) -C $(BINUTILS_DIR2) all
-
-$(TARGET_DIR)/usr/bin/ld: $(BINUTILS_DIR2)/binutils/objdump
- PATH=$(TARGET_PATH) \
- $(MAKE) DESTDIR=$(TARGET_DIR) \
- tooldir=/usr build_tooldir=/usr \
- -C $(BINUTILS_DIR2) install
- rm -rf $(TARGET_DIR)/share/locale
- -$(STRIPCMD) $(TARGET_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/* > /dev/null 2>&1
- -$(STRIPCMD) $(TARGET_DIR)/usr/bin/* > /dev/null 2>&1
-
-# If both binutils-target and busybox are selected, make certain binutils
-# gets to run after busybox, so it can overwrite the busybox symlink for
-# ar if enabled
-ifeq ($(BR2_PACKAGE_BUSYBOX),y)
-BINUTILS_TARGET_PREREQ += busybox
-endif
-
-binutils_target: $(BINUTILS_TARGET_PREREQ) $(TARGET_DIR)/usr/bin/ld
-
-binutils_target-clean:
- -$(MAKE) -C $(BINUTILS_DIR2) clean
- rm -f $(TARGET_DIR)/bin/$(REAL_GNU_TARGET_NAME)* \
- $(addprefix $(TARGET_DIR)/usr/bin/, addr2line ar as gprof ld nm objcopy objdump ranlib readelf size strings strip c++filt)
-
-binutils_target-dirclean:
- rm -rf $(BINUTILS_DIR2)
diff --git a/toolchain/gcc/Config.in.2 b/toolchain/gcc/Config.in.2
index d9ebfcd..9b500f2 100644
--- a/toolchain/gcc/Config.in.2
+++ b/toolchain/gcc/Config.in.2
@@ -1,6 +1,7 @@
config BR2_PACKAGE_GCC_TARGET
bool "native toolchain in the target filesystem"
depends on BR2_HAVE_DEVFILES
+ select BR2_PACKAGE_BINUTILS_TARGET
help
If you want the target system to be able to run
binutils/gcc and compile native code, say Y here.
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 9e7127d..543454b 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -53,9 +53,6 @@ else
GCC_OPTSPACE=--enable-target-optspace
endif
-GCC_TARGET_PREREQ=
-GCC_STAGING_PREREQ=
-
#############################################################
#
# Setup some initial stuff
@@ -203,17 +200,12 @@ endif
#############################################################
GCC_BUILD_DIR1:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-initial
-
-# The --without-headers option stopped working with gcc 3.0 and has never been
-# fixed, so we need to actually have working C library header files prior to
-# the step or libgcc will not build...
-
$(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
mkdir -p $(GCC_BUILD_DIR1)
(cd $(GCC_BUILD_DIR1); rm -rf config.cache; \
$(HOST_CONFIGURE_OPTS) \
$(GCC_DIR)/configure $(QUIET) \
- --prefix=$(STAGING_DIR)/usr \
+ --prefix=$(HOST_DIR)/usr \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
@@ -243,7 +235,6 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
touch $@
$(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
- # gcc >= 4.3.0 have to also build all-target-libgcc
ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
$(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
else
@@ -252,16 +243,11 @@ endif
touch $@
gcc_initial=$(GCC_BUILD_DIR1)/.installed
-$(gcc_initial) $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
- # gcc >= 4.3.0 have to also install install-target-libgcc
-ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
- PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
-else
+$(gcc_initial) $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
-endif
touch $(gcc_initial)
-gcc_initial: binutils $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
+gcc_initial: host-binutils $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
gcc_initial-clean:
rm -rf $(GCC_BUILD_DIR1)
@@ -276,22 +262,16 @@ gcc_initial-dirclean:
#############################################################
GCC_BUILD_DIR2:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-intermediate
-
# The --without-headers option stopped working with gcc 3.0 and has never been
# fixed, so we need to actually have working C library header files prior to
# the step or libgcc will not build...
$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
mkdir -p $(GCC_BUILD_DIR2)
- -rmdir $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
- mkdir -p $(STAGING_DIR)/lib
- ln -snf ../../lib $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
- $(if $(BR2_ARCH_IS_64),mkdir -p $(STAGING_DIR)/lib64)
- $(if $(BR2_ARCH_IS_64),ln -snf ../../lib64 $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib64)
(cd $(GCC_BUILD_DIR2); rm -rf config.cache; \
$(HOST_CONFIGURE_OPTS) \
$(GCC_DIR)/configure $(QUIET) \
- --prefix=$(STAGING_DIR)/usr \
+ --prefix=$(HOST_DIR)/usr \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
@@ -338,7 +318,7 @@ else
endif
touch $(gcc_intermediate)
-gcc_intermediate: uclibc-configured $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
+gcc_intermediate: uclibc-configured $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
gcc_intermediate-clean:
rm -rf $(GCC_BUILD_DIR2)
@@ -363,11 +343,11 @@ GCC_BUILD_DIR3:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-final
$(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
mkdir -p $(GCC_BUILD_DIR3)
# Important! Required for limits.h to be fixed.
- ln -snf ../include/ $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sys-include
+ ln -snf ../include/ $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sys-include
(cd $(GCC_BUILD_DIR3); rm -rf config.cache; \
$(HOST_CONFIGURE_OPTS) \
$(GCC_SRC_DIR)/configure $(QUIET) \
- --prefix=$(STAGING_DIR)/usr \
+ --prefix=$(HOST_DIR)/usr \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
@@ -412,19 +392,19 @@ $(GCC_BUILD_DIR3)/.installed: $(GCC_BUILD_DIR3)/.compiled
fi
# Strip the host binaries
ifeq ($(GCC_STRIP_HOST_BINARIES),true)
- strip --strip-all -R .note -R .comment $(filter-out %-gccbug %-embedspu,$(wildcard $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-*))
+ strip --strip-all -R .note -R .comment $(filter-out %-gccbug %-embedspu,$(wildcard $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-*))
endif
# Make sure we have 'cc'.
- if [ ! -e $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-cc ]; then \
+ if [ ! -e $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-cc ]; then \
ln -snf $(REAL_GNU_TARGET_NAME)-gcc \
- $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-cc; \
+ $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-cc; \
fi
- if [ ! -e $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/cc ]; then \
- ln -snf gcc $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/cc; \
+ if [ ! -e $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/cc ]; then \
+ ln -snf gcc $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/cc; \
fi
# Set up the symlinks to enable lying about target name.
set -e; \
- (cd $(STAGING_DIR)/usr; \
+ (cd $(HOST_DIR)/usr; \
ln -snf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \
cd bin; \
for app in $(REAL_GNU_TARGET_NAME)-*; do \
@@ -438,31 +418,31 @@ endif
$(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR3)/.installed
ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
- # These are in /lib, so...
+ # These go in /lib, so...
rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
- -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgcc_s* \
+ -cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgcc_s* \
$(TARGET_DIR)/lib/
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/libgcc_s*
endif
ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
mkdir -p $(TARGET_DIR)/usr/lib
- -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libstdc++.so* \
+ -cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libstdc++.so* \
$(TARGET_DIR)/usr/lib/
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libstdc++.so*
endif
endif
ifeq ($(BR2_INSTALL_LIBGCJ),y)
- cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgcj.so* $(TARGET_DIR)/usr/lib/
+ cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgcj.so* $(TARGET_DIR)/usr/lib/
mkdir -p $(TARGET_DIR)/usr/lib/security
- cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security \
+ cp -dpf $(HOST_DIR)/usr/lib/security/classpath.security \
$(TARGET_DIR)/usr/lib/security/
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libgcj.so*
endif
mkdir -p $(@D)
touch $@
-cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
+cross_compiler:=$(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
cross_compiler gcc: gcc_intermediate \
$(LIBFLOAT_TARGET) uclibc $(GCC_BUILD_DIR3)/.installed \
$(STAMP_DIR)/gcc_libs_target_installed \
@@ -473,8 +453,8 @@ gcc-source: $(DL_DIR)/$(GCC_SOURCE)
gcc-clean:
rm -rf $(GCC_BUILD_DIR3)
for prog in cpp gcc gcc-[0-9]* protoize unprotoize gcov gccbug cc; do \
- rm -f $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-$$prog; \
- rm -f $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-$$prog; \
+ rm -f $(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-$$prog; \
+ rm -f $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-$$prog; \
done
gcc-dirclean: gcc_initial-dirclean
@@ -556,7 +536,7 @@ $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR4)/.compiled
# Work around problem of missing syslimits.h
if [ ! -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/$(GCC_INCLUDE_DIR)/syslimits.h ]; then \
echo "warning: working around missing syslimits.h"; \
- cp -f $(STAGING_DIR)/$(GCC_LIB_SUBDIR)/$(GCC_INCLUDE_DIR)/syslimits.h \
+ cp -f $(HOST_DIR)/$(GCC_LIB_SUBDIR)/$(GCC_INCLUDE_DIR)/syslimits.h \
$(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/$(GCC_INCLUDE_DIR)/; \
fi
# Make sure we have 'cc'.
@@ -567,7 +547,7 @@ $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR4)/.compiled
#rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
touch -c $@
-gcc_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc
+gcc_target: uclibc_target binutils $(TARGET_DIR)/usr/bin/gcc
gcc_target-clean:
rm -rf $(GCC_BUILD_DIR4)
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index f12a480..c611562 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -1,7 +1,6 @@
# Include files required for the internal toolchain backend
include toolchain/dependencies/dependencies.mk
-include toolchain/binutils/binutils.mk
include toolchain/elf2flt/elf2flt.mk
include toolchain/gcc/gcc-uclibc-4.x.mk
include toolchain/gdb/gdb.mk
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index c458251..3894890 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -3,6 +3,6 @@
if BR2_TOOLCHAIN_BUILDROOT
source "toolchain/kernel-headers/Config.in"
source "toolchain/uClibc/Config.in"
-source "toolchain/binutils/Config.in"
+source "package/binutils/Config.in.host"
source "toolchain/gcc/Config.in"
endif
diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk
index 1befff2..e480da9 100644
--- a/toolchain/toolchain-crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng.mk
@@ -2,7 +2,6 @@
# Explicit ordering:
include toolchain/helpers.mk
-include toolchain/binutils/binutils.mk
include toolchain/dependencies/dependencies.mk
include toolchain/elf2flt/elf2flt.mk
include toolchain/gcc/gcc-uclibc-4.x.mk
diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
index c43618b..d67405b 100644
--- a/toolchain/toolchain-external.mk
+++ b/toolchain/toolchain-external.mk
@@ -1,7 +1,6 @@
# Required includes for the external toolchain backend
include toolchain/helpers.mk
-include toolchain/binutils/binutils.mk
include toolchain/dependencies/dependencies.mk
include toolchain/elf2flt/elf2flt.mk
include toolchain/gcc/gcc-uclibc-4.x.mk
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 04/10] binutils: make it a proper package
2010-12-28 19:10 ` [Buildroot] [PATCH 04/10] binutils: make it a proper package Gustavo Zacarias
@ 2010-12-28 22:38 ` Peter Korsgaard
2010-12-29 20:41 ` Gustavo Zacarias
0 siblings, 1 reply; 22+ messages in thread
From: Peter Korsgaard @ 2010-12-28 22:38 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Hi,
Gustavo> * Convert binutils to a proper autotargets package
Gustavo> * Add version 2.21
Gustavo> * Drop version 2.17
Gustavo> * Hook up packaged binutils for target gcc
Gustavo> * Build tools are on HOST_DIR now so change it
Gustavo> * TARGET_CROSS is now in HOST_DIR too
Gustavo> diff --git a/package/Config.in b/package/Config.in
Gustavo> index 27d8023..fb47e27 100644
Gustavo> --- a/package/Config.in
Gustavo> +++ b/package/Config.in
Gustavo> @@ -35,6 +35,7 @@ endmenu
Gustavo> menu "Development tools"
Gustavo> source "package/autoconf/Config.in"
Gustavo> source "package/automake/Config.in"
Gustavo> +source "package/binutils/Config.in"
Gustavo> source "package/bison/Config.in"
Gustavo> source "package/bsdiff/Config.in"
Gustavo> source "package/ccache/Config.in"
Gustavo> diff --git a/package/Makefile.in b/package/Makefile.in
Gustavo> index 9765a1a..983f9f5 100644
Gustavo> --- a/package/Makefile.in
Gustavo> +++ b/package/Makefile.in
Gustavo> @@ -114,7 +114,7 @@ TARGET_CXXFLAGS=$(TARGET_CFLAGS)
Gustavo> TARGET_SYSROOT_OPT=--sysroot=$(STAGING_DIR)
Gustavo> ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
Gustavo> -TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
Gustavo> +TARGET_CROSS=$(HOST_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
Seeing this I thought the build would be broken because GCC isn't moved
yet, but I see you do move it later on in this patch, even if it isn't
mentioned in the commit message.
Gustavo> +config BR2_PACKAGE_BINUTILS
Gustavo> + bool
Gustavo> + depends on BR2_TOOLCHAIN_BUILDROOT
Gustavo> + default y if BR2_PACKAGE_BINUTILS_TARGET || BR2_PACKAGE_BINUTILS_LIBBFD
Gustavo> +
Gustavo> +config BR2_PACKAGE_BINUTILS_TARGET
Gustavo> + bool "binutils"
Gustavo> + select BR2_PACKAGE_MPC if BR2_GCC_VERSION_4_5_X
Gustavo> + select BR2_PACKAGE_MPFR
Gustavo> + select BR2_PACKAGE_GMP
Gustavo> + help
Gustavo> + The GNU Binutils are a collection of binary tools.
Gustavo> +
Gustavo> + http://www.gnu.org/software/binutils/
Gustavo> +
Gustavo> +config BR2_PACKAGE_BINUTILS_LIBBFD
Gustavo> + bool
Gustavo> + help
Gustavo> + Install libbfd from binutils in the target.
Gustavo> +
Gustavo> + This option is currently used by oprofile to just install
Gustavo> + the minimum libbfd needed instead of a full-blown binutils.
I find this quite complicated. I would prefer something like:
config BR2_PACKAGE_BINUTILS
bool "binutils"
depends on BR2_TOOLCHAIN_BUILDROOT
help
..
config BR2_PACKAGE_BINUTILS_FULLINSTALL
bool "perform full installation"
depends on BR2_PACKAGE_BINUTILS
help
Select this to install all binary utilies and not just libbfd.
And then move the MPC/MPFR/GMP selects under
BR2_PACKAGE_GCC_TARGET. Also add selects for BR2_PACKAGE_BINUTILS +
FULLINSTALL.
Gustavo> +++ b/package/binutils/binutils.mk
Gustavo> @@ -0,0 +1,68 @@
Gustavo> +#############################################################
Gustavo> +#
Gustavo> +# binutils
Gustavo> +#
Gustavo> +#############################################################
Gustavo> +
Gustavo> +BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
Gustavo> +BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.bz2
Gustavo> +BINUTILS_SITE = $(BR2_GNU_MIRROR)/binutils
Gustavo> +ifeq ($(ARCH),avr32)
Gustavo> +BINUTILS_SITE = ftp://www.at91.com/pub/buildroot
Gustavo> +endif
Gustavo> +BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
Gustavo> +BINUTILS_INSTALL_STAGING = YES
Gustavo> +
Gustavo> +# These aren't really needed, we just pull them until gcc is a proper package
Gustavo> +ifeq ($(BR2_PACKAGE_BINUTILS_TARGET),y)
Gustavo> +BINUTILS_DEPENDENCIES = gmp mpfr
Gustavo> +ifeq ($(BR2_GCC_VERSION_4_5_X),y)
You have trailing spaces here and elsewhere.
Gustavo> +++ b/toolchain/gcc/gcc-uclibc-4.x.mk
Gustavo> @@ -53,9 +53,6 @@ else
Gustavo> GCC_OPTSPACE=--enable-target-optspace
Gustavo> endif
Gustavo> -GCC_TARGET_PREREQ=
Gustavo> -GCC_STAGING_PREREQ=
Gustavo> -
Gustavo> #############################################################
Gustavo> #
Gustavo> # Setup some initial stuff
Gustavo> @@ -203,17 +200,12 @@ endif
Gustavo> #############################################################
Gustavo> GCC_BUILD_DIR1:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-initial
Gustavo> -
Gustavo> -# The --without-headers option stopped working with gcc 3.0 and has never been
Gustavo> -# fixed, so we need to actually have working C library header files prior to
Gustavo> -# the step or libgcc will not build...
Gustavo> -
Gustavo> $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
Gustavo> mkdir -p $(GCC_BUILD_DIR1)
Gustavo> (cd $(GCC_BUILD_DIR1); rm -rf config.cache; \
Gustavo> $(HOST_CONFIGURE_OPTS) \
Gustavo> $(GCC_DIR)/configure $(QUIET) \
Gustavo> - --prefix=$(STAGING_DIR)/usr \
Gustavo> + --prefix=$(HOST_DIR)/usr \
Gustavo> --build=$(GNU_HOST_NAME) \
Gustavo> --host=$(GNU_HOST_NAME) \
Gustavo> --target=$(REAL_GNU_TARGET_NAME) \
Gustavo> @@ -243,7 +235,6 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
Gustavo> touch $@
Gustavo> $(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
Gustavo> - # gcc >= 4.3.0 have to also build all-target-libgcc
Why are you removing those comments? We still support gcc 4.2.x
Gustavo> ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
Gustavo> $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
Gustavo> else
Gustavo> @@ -276,22 +262,16 @@ gcc_initial-dirclean:
Gustavo> #############################################################
Gustavo> GCC_BUILD_DIR2:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-intermediate
Gustavo> -
Gustavo> # The --without-headers option stopped working with gcc 3.0 and has never been
Gustavo> # fixed, so we need to actually have working C library header files prior to
Gustavo> # the step or libgcc will not build...
Gustavo> $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
Gustavo> mkdir -p $(GCC_BUILD_DIR2)
Gustavo> - -rmdir $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
Gustavo> - mkdir -p $(STAGING_DIR)/lib
Gustavo> - ln -snf ../../lib $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
Gustavo> - $(if $(BR2_ARCH_IS_64),mkdir -p $(STAGING_DIR)/lib64)
Gustavo> - $(if $(BR2_ARCH_IS_64),ln -snf ../../lib64 $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib64)
Why remove this ARCH_IS_64 stuff?
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 04/10] binutils: make it a proper package
2010-12-28 22:38 ` Peter Korsgaard
@ 2010-12-29 20:41 ` Gustavo Zacarias
2010-12-29 20:58 ` Peter Korsgaard
2011-01-03 9:14 ` Thomas Petazzoni
0 siblings, 2 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-29 20:41 UTC (permalink / raw)
To: buildroot
On 12/28/10 19:38, Peter Korsgaard wrote:
> Seeing this I thought the build would be broken because GCC isn't moved
> yet, but I see you do move it later on in this patch, even if it isn't
> mentioned in the commit message.
Comment added.
> I find this quite complicated. I would prefer something like:
>
> config BR2_PACKAGE_BINUTILS
> bool "binutils"
> depends on BR2_TOOLCHAIN_BUILDROOT
> help
> ..
>
> config BR2_PACKAGE_BINUTILS_FULLINSTALL
> bool "perform full installation"
> depends on BR2_PACKAGE_BINUTILS
> help
> Select this to install all binary utilies and not just libbfd.
>
> And then move the MPC/MPFR/GMP selects under
> BR2_PACKAGE_GCC_TARGET. Also add selects for BR2_PACKAGE_BINUTILS +
> FULLINSTALL.
Easier to define BR2_PACKAGE_BINUTILS that builds all
of binutils and only installs libbfd + BR2_PACKAGE_BINUTILS_TARGET to
install the full version.
> You have trailing spaces here and elsewhere.
Hopefully fixed.
> Gustavo> -
> Gustavo> -# The --without-headers option stopped working with gcc 3.0 and has never been
> Gustavo> -# fixed, so we need to actually have working C library header files prior to
> Gustavo> -# the step or libgcc will not build...
>
> Gustavo> $(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
> Gustavo> - # gcc >= 4.3.0 have to also build all-target-libgcc
>
> Why are you removing those comments? We still support gcc 4.2.x
Because these are in STAGE1 (DIR1) where it's completely irrelevant /
doesn't apply and just amounts to misinformation.
gcc-initial doesn't use nor install headers since the extra gcc build
stage was added. Same scenario for libgcc.
They're leftover comments. That's the reason i kept the ones in
gcc-intermediate.
> Gustavo> ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
> Gustavo> $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
> Gustavo> else
> Gustavo> @@ -276,22 +262,16 @@ gcc_initial-dirclean:
> Gustavo> #############################################################
> Gustavo> GCC_BUILD_DIR2:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-intermediate
>
> Gustavo> -
> Gustavo> # The --without-headers option stopped working with gcc 3.0 and has never been
> Gustavo> # fixed, so we need to actually have working C library header files prior to
> Gustavo> # the step or libgcc will not build...
>
> Gustavo> $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
> Gustavo> mkdir -p $(GCC_BUILD_DIR2)
> Gustavo> - -rmdir $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
> Gustavo> - mkdir -p $(STAGING_DIR)/lib
> Gustavo> - ln -snf ../../lib $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
> Gustavo> - $(if $(BR2_ARCH_IS_64),mkdir -p $(STAGING_DIR)/lib64)
> Gustavo> - $(if $(BR2_ARCH_IS_64),ln -snf ../../lib64 $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib64)
>
> Why remove this ARCH_IS_64 stuff?
This is from commit 3c77bab2eeace3ee675bd745ca335fa3dd1630bb which does
a symlink trick to make libstdc++ available. It's simpler to just copy
libstdc++ (and libgcj/libgcc while at it) to the sysroot which is fixed
in patch #5 from my series.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Buildroot] [PATCH 04/10] binutils: make it a proper package
2010-12-29 20:41 ` Gustavo Zacarias
@ 2010-12-29 20:58 ` Peter Korsgaard
2011-01-03 9:14 ` Thomas Petazzoni
1 sibling, 0 replies; 22+ messages in thread
From: Peter Korsgaard @ 2010-12-29 20:58 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Gustavo> On 12/28/10 19:38, Peter Korsgaard wrote:
>> Seeing this I thought the build would be broken because GCC isn't moved
>> yet, but I see you do move it later on in this patch, even if it isn't
>> mentioned in the commit message.
Gustavo> Comment added.
Thanks.
>> I find this quite complicated. I would prefer something like:
>>
>> config BR2_PACKAGE_BINUTILS
>> bool "binutils"
>> depends on BR2_TOOLCHAIN_BUILDROOT
>> help
>> ..
>>
>> config BR2_PACKAGE_BINUTILS_FULLINSTALL
>> bool "perform full installation"
>> depends on BR2_PACKAGE_BINUTILS
>> help
>> Select this to install all binary utilies and not just libbfd.
>>
>> And then move the MPC/MPFR/GMP selects under
>> BR2_PACKAGE_GCC_TARGET. Also add selects for BR2_PACKAGE_BINUTILS +
>> FULLINSTALL.
Gustavo> Easier to define BR2_PACKAGE_BINUTILS that builds all
Gustavo> of binutils and only installs libbfd + BR2_PACKAGE_BINUTILS_TARGET to
Gustavo> install the full version.
Yes, that's what I meant about the _FULLINSTALL option.
>> You have trailing spaces here and elsewhere.
Gustavo> Hopefully fixed.
Thanks.
Gustavo> $(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
Gustavo> - # gcc >= 4.3.0 have to also build all-target-libgcc
>>
>> Why are you removing those comments? We still support gcc 4.2.x
Gustavo> Because these are in STAGE1 (DIR1) where it's completely irrelevant /
Gustavo> doesn't apply and just amounts to misinformation.
Gustavo> gcc-initial doesn't use nor install headers since the extra gcc build
Gustavo> stage was added. Same scenario for libgcc.
Gustavo> They're leftover comments. That's the reason i kept the ones in
Gustavo> gcc-intermediate.
Ahh ok, thanks.
>> Why remove this ARCH_IS_64 stuff?
Gustavo> This is from commit 3c77bab2eeace3ee675bd745ca335fa3dd1630bb
Gustavo> which does a symlink trick to make libstdc++ available. It's
Gustavo> simpler to just copy libstdc++ (and libgcj/libgcc while at it)
Gustavo> to the sysroot which is fixed in patch #5 from my series.
Ok, good.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Buildroot] [PATCH 04/10] binutils: make it a proper package
2010-12-29 20:41 ` Gustavo Zacarias
2010-12-29 20:58 ` Peter Korsgaard
@ 2011-01-03 9:14 ` Thomas Petazzoni
2011-01-03 10:13 ` Gustavo Zacarias
1 sibling, 1 reply; 22+ messages in thread
From: Thomas Petazzoni @ 2011-01-03 9:14 UTC (permalink / raw)
To: buildroot
On Wed, 29 Dec 2010 17:41:58 -0300
Gustavo Zacarias <gustavo@zacarias.com.ar> wrote:
> > Gustavo> $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
> > Gustavo> mkdir -p $(GCC_BUILD_DIR2)
> > Gustavo> - -rmdir $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
> > Gustavo> - mkdir -p $(STAGING_DIR)/lib
> > Gustavo> - ln -snf ../../lib $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
> > Gustavo> - $(if $(BR2_ARCH_IS_64),mkdir -p $(STAGING_DIR)/lib64)
> > Gustavo> - $(if $(BR2_ARCH_IS_64),ln -snf ../../lib64 $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib64)
> >
> > Why remove this ARCH_IS_64 stuff?
>
> This is from commit 3c77bab2eeace3ee675bd745ca335fa3dd1630bb which does
> a symlink trick to make libstdc++ available. It's simpler to just copy
> libstdc++ (and libgcj/libgcc while at it) to the sysroot which is fixed
> in patch #5 from my series.
I am not sure about this justification, since I don't see what change
in the toolchain build procedure removes the need for this symbolic
link. Have you actually tested building WebKit on x86_64 for example ?
Thanks,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Buildroot] [PATCH 04/10] binutils: make it a proper package
2011-01-03 9:14 ` Thomas Petazzoni
@ 2011-01-03 10:13 ` Gustavo Zacarias
0 siblings, 0 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2011-01-03 10:13 UTC (permalink / raw)
To: buildroot
On 01/03/2011 06:14 AM, Thomas Petazzoni wrote:
>>> Why remove this ARCH_IS_64 stuff?
>>
>> This is from commit 3c77bab2eeace3ee675bd745ca335fa3dd1630bb which does
>> a symlink trick to make libstdc++ available. It's simpler to just copy
>> libstdc++ (and libgcj/libgcc while at it) to the sysroot which is fixed
>> in patch #5 from my series.
>
> I am not sure about this justification, since I don't see what change
> in the toolchain build procedure removes the need for this symbolic
> link. Have you actually tested building WebKit on x86_64 for example ?
>
> Thanks,
>
> Thomas
Yes, tested on an x86_64 host building an x86_64 target (full midori).
First test was removing all the symlink stuff which in fact broke
webkit, then i added my lib* in staging patch. Everything was built from
scratch.
To throw in some extra testing i did the same with an arm target for
both runs with the same result.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Buildroot] [PATCH 05/10] gcc: install copies of libgcc, libstdc++ and libgcj to the sysroot too
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
` (3 preceding siblings ...)
2010-12-28 19:10 ` [Buildroot] [PATCH 04/10] binutils: make it a proper package Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 06/10] gdb: make it a proper package Gustavo Zacarias
` (5 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
We want to keep a copy around for the future SDK functionality.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
toolchain/gcc/gcc-uclibc-4.x.mk | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 543454b..215915d 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -421,6 +421,8 @@ ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
# These go in /lib, so...
rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
-cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgcc_s* \
+ $(STAGING_DIR)/lib/
+ -cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgcc_s* \
$(TARGET_DIR)/lib/
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/libgcc_s*
endif
@@ -428,14 +430,20 @@ ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
mkdir -p $(TARGET_DIR)/usr/lib
-cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libstdc++.so* \
+ $(STAGING_DIR)/usr/lib/
+ -cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libstdc++.so* \
$(TARGET_DIR)/usr/lib/
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libstdc++.so*
endif
endif
ifeq ($(BR2_INSTALL_LIBGCJ),y)
+ cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgcj.so* $(STAGING_DIR)/usr/lib/
cp -dpf $(HOST_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib*/libgcj.so* $(TARGET_DIR)/usr/lib/
+ mkdir -p $(STAGING_DIR)/usr/lib/security
mkdir -p $(TARGET_DIR)/usr/lib/security
cp -dpf $(HOST_DIR)/usr/lib/security/classpath.security \
+ $(STAGING_DIR)/usr/lib/security/
+ cp -dpf $(HOST_DIR)/usr/lib/security/classpath.security \
$(TARGET_DIR)/usr/lib/security/
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libgcj.so*
endif
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 06/10] gdb: make it a proper package
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
` (4 preceding siblings ...)
2010-12-28 19:10 ` [Buildroot] [PATCH 05/10] gcc: install copies of libgcc, libstdc++ and libgcj to the sysroot too Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 07/10] package: drop sparc64 bits Gustavo Zacarias
` (4 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
* Convert gdb to a proper autotargets package
* Add version 7.2
* Drop version 6.6
* Mark version 6.7.1 (non-avr32) as deprecated
Kconfig can't handle duplicate choices and we can't make source depend
on anything.
To fix this we suffix the different version choices for each case (in
the toolchain menu with internal toolchain, in the package menu for
target gdb/gdbserver for internal and external toolchains.
TODO: copy gdbserver from external toolchains
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
Makefile | 2 +-
package/Config.in | 6 +
package/gdb/Config.in.external | 66 ++++++
package/gdb/Config.in.host | 49 ++++
package/gdb/Config.in.internal | 70 ++++++
.../gdb-6.7.1}/600-fix-compile-flag-mismatch.patch | 0
.../gdb-6.8}/600-fix-compile-flag-mismatch.patch | 0
package/gdb/gdb-7.2/100-fix-ipa.patch | 25 ++
.../gdb/gdb-7.2/101-fix-gdbserver-uninstall.patch | 23 ++
package/gdb/gdb.mk | 62 +++++
toolchain/gdb/6.6/100-uclibc-conf.patch | 82 -------
.../gdb/6.6/600-fix-compile-flag-mismatch.patch | 69 ------
toolchain/gdb/Config.in | 69 ------
toolchain/gdb/gdb.mk | 237 --------------------
toolchain/toolchain-buildroot.mk | 1 -
toolchain/toolchain-buildroot/Config.in | 1 +
toolchain/toolchain-common.in | 5 -
toolchain/toolchain-crosstool-ng.mk | 1 -
toolchain/toolchain-external.mk | 1 -
19 files changed, 303 insertions(+), 466 deletions(-)
create mode 100644 package/gdb/Config.in.external
create mode 100644 package/gdb/Config.in.host
create mode 100644 package/gdb/Config.in.internal
rename {toolchain/gdb/6.7.1 => package/gdb/gdb-6.7.1}/600-fix-compile-flag-mismatch.patch (100%)
rename {toolchain/gdb/6.8 => package/gdb/gdb-6.8}/600-fix-compile-flag-mismatch.patch (100%)
create mode 100644 package/gdb/gdb-7.2/100-fix-ipa.patch
create mode 100644 package/gdb/gdb-7.2/101-fix-gdbserver-uninstall.patch
create mode 100644 package/gdb/gdb.mk
delete mode 100644 toolchain/gdb/6.6/100-uclibc-conf.patch
delete mode 100644 toolchain/gdb/6.6/600-fix-compile-flag-mismatch.patch
delete mode 100644 toolchain/gdb/Config.in
delete mode 100644 toolchain/gdb/gdb.mk
diff --git a/Makefile b/Makefile
index 2325319..d0f9032 100644
--- a/Makefile
+++ b/Makefile
@@ -612,7 +612,7 @@ endif
configured: dirs kernel-headers uclibc-config busybox-config linux26-config
-prepatch: gcc-patched gdb-patched uclibc-patched
+prepatch: gcc-patched uclibc-patched
cross: $(BASE_TARGETS)
diff --git a/package/Config.in b/package/Config.in
index fb47e27..3b442da 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -55,6 +55,12 @@ source "package/flex/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/gawk/Config.in"
endif
+if BR2_TOOLCHAIN_BUILDROOT
+source "package/gdb/Config.in.internal"
+endif
+if !BR2_TOOLCHAIN_BUILDROOT
+source "package/gdb/Config.in.external"
+endif
source "toolchain/gcc/Config.in.2"
source "package/gettext/Config.in"
source "package/gmp/Config.in"
diff --git a/package/gdb/Config.in.external b/package/gdb/Config.in.external
new file mode 100644
index 0000000..9f7b0bf
--- /dev/null
+++ b/package/gdb/Config.in.external
@@ -0,0 +1,66 @@
+config BR2_PACKAGE_GDB
+ bool
+ default y if BR2_PACKAGE_GDB_TARGET || BR2_PACKAGE_GDB_SERVER
+
+config BR2_PACKAGE_GDB_TARGET
+ bool "gdb"
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_GDB
+ depends on BR2_USE_WCHAR
+ help
+ Build the full gdb debugger to run on the target.
+
+comment "GDB debugger for the target needs WCHAR support in toolchain"
+ depends on !BR2_USE_WCHAR
+
+config BR2_PACKAGE_GDB_SERVER
+ bool "gdbserver"
+ select BR2_PACKAGE_GDB
+ help
+ Build the gdbserver stub to run on the target.
+ A full gdb is needed to debug the progam.
+
+choice
+ prompt "GDB debugger Version"
+ depends on BR2_PACKAGE_GDB
+ default BR2_GDB_VERSION_6_8_e if !BR2_avr32
+ default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5_e if BR2_avr32
+ help
+ Select the version of gdb you wish to use.
+
+ config BR2_GDB_VERSION_6_7_1_e
+ depends on !BR2_avr32
+ bool "gdb 6.7.1"
+ depends on BR2_DEPRECATED
+
+ config BR2_GDB_VERSION_6_7_1_AVR32_2_1_5_e
+ depends on BR2_avr32
+ bool "gdb 6.7.1-avr32-2.1.5"
+
+ config BR2_GDB_VERSION_6_8_e
+ bool "gdb 6.8"
+ depends on !BR2_avr32
+
+ config BR2_GDB_VERSION_7_0_1_e
+ bool "gdb 7.0.1"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+ config BR2_GDB_VERSION_7_1_e
+ bool "gdb 7.1"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+ config BR2_GDB_VERSION_7_2_e
+ bool "gdb 7.2"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+endchoice
+
+config BR2_GDB_VERSION
+ depends on BR2_PACKAGE_GDB
+ string
+ default "6.7.1" if BR2_GDB_VERSION_6_7_1_e
+ default "6.7.1-avr32-2.1.5" if BR2_GDB_VERSION_6_7_1_AVR32_2_1_5_e
+ default "6.8" if BR2_GDB_VERSION_6_8_e
+ default "7.0.1" if BR2_GDB_VERSION_7_0_1_e
+ default "7.1" if BR2_GDB_VERSION_7_1_e
+ default "7.2" if BR2_GDB_VERSION_7_2_e
diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
new file mode 100644
index 0000000..78182ae
--- /dev/null
+++ b/package/gdb/Config.in.host
@@ -0,0 +1,49 @@
+config BR2_PACKAGE_HOST_GDB
+ bool "Build/install gdb for the host"
+ help
+ Build gdb to run on the host to debug programs run on the target.
+
+choice
+ prompt "GDB debugger Version"
+ depends on BR2_PACKAGE_HOST_GDB
+ default BR2_GDB_VERSION_6_8 if !BR2_avr32
+ default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 if BR2_avr32
+ help
+ Select the version of gdb you wish to use.
+
+ config BR2_GDB_VERSION_6_7_1
+ depends on !BR2_avr32
+ bool "gdb 6.7.1"
+ depends on BR2_DEPRECATED
+
+ config BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
+ depends on BR2_avr32
+ bool "gdb 6.7.1-avr32-2.1.5"
+
+ config BR2_GDB_VERSION_6_8
+ bool "gdb 6.8"
+ depends on !BR2_avr32
+
+ config BR2_GDB_VERSION_7_0_1
+ bool "gdb 7.0.1"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+ config BR2_GDB_VERSION_7_1
+ bool "gdb 7.1"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+ config BR2_GDB_VERSION_7_2
+ bool "gdb 7.2"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+endchoice
+
+config BR2_GDB_VERSION
+ depends on BR2_PACKAGE_HOST_GDB
+ string
+ default "6.7.1" if BR2_GDB_VERSION_6_7_1
+ default "6.7.1-avr32-2.1.5" if BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
+ default "6.8" if BR2_GDB_VERSION_6_8
+ default "7.0.1" if BR2_GDB_VERSION_7_0_1
+ default "7.1" if BR2_GDB_VERSION_7_1
+ default "7.2" if BR2_GDB_VERSION_7_2
diff --git a/package/gdb/Config.in.internal b/package/gdb/Config.in.internal
new file mode 100644
index 0000000..d3d8de5
--- /dev/null
+++ b/package/gdb/Config.in.internal
@@ -0,0 +1,70 @@
+config BR2_PACKAGE_GDB
+ bool
+ default y if BR2_PACKAGE_GDB_TARGET || BR2_PACKAGE_GDB_SERVER
+
+config BR2_PACKAGE_GDB_TARGET
+ bool "gdb"
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_GDB
+ depends on BR2_USE_WCHAR
+ help
+ Build the full gdb debugger to run on the target.
+
+comment "GDB debugger for the target needs WCHAR support in toolchain"
+ depends on !BR2_USE_WCHAR
+
+config BR2_PACKAGE_GDB_SERVER
+ bool "gdbserver"
+ depends on BR2_PACKAGE_HOST_GDB
+ select BR2_PACKAGE_GDB
+ help
+ Build the gdbserver stub to run on the target.
+ A full gdb is needed to debug the progam.
+
+comment "GDB server needs you to build a host GDB in toolchain"
+ depends on !BR2_PACKAGE_HOST_GDB
+
+choice
+ prompt "GDB debugger Version"
+ depends on !BR2_PACKAGE_HOST_GDB && BR2_PACKAGE_GDB
+ default BR2_GDB_VERSION_6_8_i if !BR2_avr32
+ default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5_i if BR2_avr32
+ help
+ Select the version of gdb you wish to use.
+
+ config BR2_GDB_VERSION_6_7_1_i
+ depends on !BR2_avr32
+ bool "gdb 6.7.1"
+ depends on BR2_DEPRECATED
+
+ config BR2_GDB_VERSION_6_7_1_AVR32_2_1_5_i
+ depends on BR2_avr32
+ bool "gdb 6.7.1-avr32-2.1.5"
+
+ config BR2_GDB_VERSION_6_8_i
+ bool "gdb 6.8"
+ depends on !BR2_avr32
+
+ config BR2_GDB_VERSION_7_0_1_i
+ bool "gdb 7.0.1"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+ config BR2_GDB_VERSION_7_1_i
+ bool "gdb 7.1"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+ config BR2_GDB_VERSION_7_2_i
+ bool "gdb 7.2"
+ select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
+
+endchoice
+
+config BR2_GDB_VERSION
+ depends on !BR2_PACKAGE_HOST_GDB && BR2_PACKAGE_GDB
+ string
+ default "6.7.1" if BR2_GDB_VERSION_6_7_1_i
+ default "6.7.1-avr32-2.1.5" if BR2_GDB_VERSION_6_7_1_AVR32_2_1_5_i
+ default "6.8" if BR2_GDB_VERSION_6_8_i
+ default "7.0.1" if BR2_GDB_VERSION_7_0_1_i
+ default "7.1" if BR2_GDB_VERSION_7_1_i
+ default "7.2" if BR2_GDB_VERSION_7_2_i
diff --git a/toolchain/gdb/6.7.1/600-fix-compile-flag-mismatch.patch b/package/gdb/gdb-6.7.1/600-fix-compile-flag-mismatch.patch
similarity index 100%
rename from toolchain/gdb/6.7.1/600-fix-compile-flag-mismatch.patch
rename to package/gdb/gdb-6.7.1/600-fix-compile-flag-mismatch.patch
diff --git a/toolchain/gdb/6.8/600-fix-compile-flag-mismatch.patch b/package/gdb/gdb-6.8/600-fix-compile-flag-mismatch.patch
similarity index 100%
rename from toolchain/gdb/6.8/600-fix-compile-flag-mismatch.patch
rename to package/gdb/gdb-6.8/600-fix-compile-flag-mismatch.patch
diff --git a/package/gdb/gdb-7.2/100-fix-ipa.patch b/package/gdb/gdb-7.2/100-fix-ipa.patch
new file mode 100644
index 0000000..96037a9
--- /dev/null
+++ b/package/gdb/gdb-7.2/100-fix-ipa.patch
@@ -0,0 +1,25 @@
+Fix gdbserver standalone
+
+See http://www.cygwin.com/ml/gdb-patches/2010-09/msg00148.html
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ gdb/gdbserver/Makefile.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
+index 76577cf..c2fc245 100644
+--- a/gdb/gdbserver/Makefile.in
++++ b/gdb/gdbserver/Makefile.in
+@@ -164,7 +164,7 @@ install: all install-only
+ install-only:
+ n=`echo gdbserver | sed '$(program_transform_name)'`; \
+ if [ x$$n = x ]; then n=gdbserver; else true; fi; \
+- if [ x$IPA_DEPFILES != x ]; then \
++ if [ x$$IPA_DEPFILES != x ]; then \
+ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(libdir); \
+ $(INSTALL_PROGRAM) $(IPA_LIB) $(DESTDIR)$(libdir)/$(IPA_LIB); \
+ fi; \
+--
+1.7.2.2
+
diff --git a/package/gdb/gdb-7.2/101-fix-gdbserver-uninstall.patch b/package/gdb/gdb-7.2/101-fix-gdbserver-uninstall.patch
new file mode 100644
index 0000000..c42fddc
--- /dev/null
+++ b/package/gdb/gdb-7.2/101-fix-gdbserver-uninstall.patch
@@ -0,0 +1,23 @@
+Fix uninstall target of gdbserver... meaning honor DESTDIR.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ gdb/gdbserver/Makefile.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
+index 76577cf..43024fe 100644
+--- a/gdb/gdbserver/Makefile.in
++++ b/gdb/gdbserver/Makefile.in
+@@ -176,7 +176,7 @@ install-only:
+ uninstall: force
+ n=`echo gdbserver | sed '$(program_transform_name)'`; \
+ if [ x$$n = x ]; then n=gdbserver; else true; fi; \
+- rm -f $(bindir)/$$n$(EXEEXT) $(DESTDIR)$(man1dir)/$$n.1
++ rm -f $(DESTDIR)$(bindir)/$$n$(EXEEXT) $(DESTDIR)$(man1dir)/$$n.1
+
+ installcheck:
+ check:
+--
+1.7.2.2
+
diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
new file mode 100644
index 0000000..92cc4af
--- /dev/null
+++ b/package/gdb/gdb.mk
@@ -0,0 +1,62 @@
+#############################################################
+#
+# gdb
+#
+#############################################################
+
+GDB_VERSION = $(call qstrip,$(BR2_GDB_VERSION))
+GDB_SOURCE = gdb-$(GDB_VERSION).tar.bz2
+GDB_SITE = $(BR2_GNU_MIRROR)/gdb
+ifeq ($(ARCH),avr32)
+GDB_SITE = ftp://www.at91.com/pub/buildroot
+endif
+GDB_TARGET_BINS = gdb gdbserver gdbtui
+
+HOST_GDB_CONF_ENV = gdb_cv_func_sigsetjmp=yes \
+ bash_cv_have_mbstate_t=yes
+HOST_GDB_CONF_OPT = --without-uiout --disable-werror \
+ --disable-gdbtk --without-x \
+ --without-included-gettext --enable-threads \
+ --target=$(REAL_GNU_TARGET_NAME)
+
+define HOST_GDB_SYMLINK_CREATE
+ cd $(HOST_DIR)/usr/bin ; \
+ ln -sf $(REAL_GNU_TARGET_NAME)-gdb gdb ; \
+ ln -sf $(REAL_GNU_TARGET_NAME)-gdbtui gdbtui
+endef
+
+HOST_GDB_POST_INSTALL_HOOKS += HOST_GDB_SYMLINK_CREATE
+
+# If it's not full gdb then it's just gdbserver (if built at all)
+ifeq ($(BR2_PACKAGE_GDB_TARGET),y)
+GDB_DEPENDENCIES = ncurses
+GDB_CONF_ENV = ac_cv_type_uintptr_t=yes \
+ gt_cv_func_gettext_libintl=yes \
+ ac_cv_func_dcgettext=yes \
+ gdb_cv_func_sigsetjmp=yes \
+ bash_cv_func_strcoll_broken=no \
+ bash_cv_must_reinstall_sighandlers=no \
+ bash_cv_func_sigsetjmp=present \
+ bash_cv_have_mbstate_t=yes
+GDB_CONF_OPT = --cache-file=/dev/null --without-uiout \
+ --disable-sim --enable-gdbserver \
+ --without-included-gettext --disable-werror \
+ --program-transform-name=''
+else
+GDB_CONF_ENV = gdb_cv_func_sigsetjmp=yes \
+ bash_cv_have_mbstate_t=yes
+GDB_CONF_OPT = --cache-file=/dev/null --without-uiout \
+ --disable-tui --disable-gdbtk \
+ --without-included-gettext \
+ --includedir=$(STAGING_DIR)/usr/include \
+ --program-transform-name=''
+GDB_SUBDIR = gdb/gdbserver
+endif
+
+define GDB_UNINSTALL_TARGET_CMDS
+ rm -rf $(TARGET_DIR)/usr/share/gdb
+ rm -f $(addprefix $(TARGET_DIR)/usr/bin/, $(GDB_TARGET_BINS))
+endef
+
+$(eval $(call AUTOTARGETS,package,gdb))
+$(eval $(call AUTOTARGETS,package,gdb,host))
diff --git a/toolchain/gdb/6.6/100-uclibc-conf.patch b/toolchain/gdb/6.6/100-uclibc-conf.patch
deleted file mode 100644
index a790b6f..0000000
--- a/toolchain/gdb/6.6/100-uclibc-conf.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-diff -rNdup gdb-6.6.orig/bfd/configure gdb-6.6/bfd/configure
---- gdb-6.6.orig/bfd/configure 2006-10-25 08:49:20.000000000 +0200
-+++ gdb-6.6/bfd/configure 2007-05-14 10:35:50.000000000 +0200
-@@ -3579,6 +3579,11 @@ linux-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-+linux-uclibc*)
-+ lt_cv_deplibs_check_method=pass_all
-+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+ ;;
-+
- netbsd* | knetbsd*-gnu)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
-diff -rNdup gdb-6.6.orig/libtool.m4 gdb-6.6/libtool.m4
---- gdb-6.6.orig/libtool.m4 2005-12-27 17:37:57.000000000 +0100
-+++ gdb-6.6/libtool.m4 2007-05-14 10:35:50.000000000 +0200
-@@ -751,6 +751,11 @@ netbsd* | knetbsd*-gnu)
- fi
- ;;
-
-+linux-uclibc*)
-+ lt_cv_deplibs_check_method=pass_all
-+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+ ;;
-+
- newsos6)
- [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
- lt_cv_file_magic_cmd=/usr/bin/file
-diff -rNdup gdb-6.6.orig/ltconfig gdb-6.6/ltconfig
---- gdb-6.6.orig/ltconfig 2006-07-04 22:31:03.000000000 +0200
-+++ gdb-6.6/ltconfig 2007-05-14 10:35:50.000000000 +0200
-@@ -602,7 +602,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
-
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
-
-@@ -1270,6 +1270,24 @@ linux-gnu*)
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-+linux-uclibc*)
-+ version_type=linux
-+ need_lib_prefix=no
-+ need_version=no
-+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-+ soname_spec='${libname}${release}.so$major'
-+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-+ shlibpath_var=LD_LIBRARY_PATH
-+ shlibpath_overrides_runpath=no
-+ # This implies no fast_install, which is unacceptable.
-+ # Some rework will be needed to allow for fast_install
-+ # before this can be enabled.
-+ # Note: copied from linux-gnu, and may not be appropriate.
-+ hardcode_into_libs=yes
-+ # Assume using the uClibc dynamic linker.
-+ dynamic_linker="uClibc ld.so"
-+ ;;
-+
- netbsd*)
- need_lib_prefix=no
- need_version=no
-diff -rNdup gdb-6.6.orig/opcodes/configure gdb-6.6/opcodes/configure
---- gdb-6.6.orig/opcodes/configure 2006-10-25 08:49:20.000000000 +0200
-+++ gdb-6.6/opcodes/configure 2007-05-14 10:35:50.000000000 +0200
-@@ -3590,6 +3590,11 @@ netbsd* | knetbsd*-gnu)
- fi
- ;;
-
-+linux-uclibc*)
-+ lt_cv_deplibs_check_method=pass_all
-+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+ ;;
-+
- newsos6)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
diff --git a/toolchain/gdb/6.6/600-fix-compile-flag-mismatch.patch b/toolchain/gdb/6.6/600-fix-compile-flag-mismatch.patch
deleted file mode 100644
index 60f0ace..0000000
--- a/toolchain/gdb/6.6/600-fix-compile-flag-mismatch.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-diff -rduNp gdb-6.6-100/Makefile.in gdb-6.6/Makefile.in
---- gdb-6.6-100/Makefile.in 2006-12-18 08:21:19.000000000 +0100
-+++ gdb-6.6/Makefile.in 2007-05-14 10:54:29.000000000 +0200
-@@ -331,7 +331,7 @@ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_
- # CFLAGS will be just -g. We want to ensure that TARGET libraries
- # (which we know are built with gcc) are built with optimizations so
- # prepend -O2 when setting CFLAGS_FOR_TARGET.
--CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
-+CFLAGS_FOR_TARGET = $(strip $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
- SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
- CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
- LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
-diff -rduNp gdb-6.6-100/Makefile.tpl gdb-6.6/Makefile.tpl
---- gdb-6.6-100/Makefile.tpl 2006-11-15 00:26:39.000000000 +0100
-+++ gdb-6.6/Makefile.tpl 2007-05-14 10:54:29.000000000 +0200
-@@ -334,7 +334,7 @@ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_
- # CFLAGS will be just -g. We want to ensure that TARGET libraries
- # (which we know are built with gcc) are built with optimizations so
- # prepend -O2 when setting CFLAGS_FOR_TARGET.
--CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
-+CFLAGS_FOR_TARGET = $(strip $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
- SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
- CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
- LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
-diff -rduNp gdb-6.6-100/gdb/configure gdb-6.6/gdb/configure
---- gdb-6.6-100/gdb/configure 2006-12-17 16:38:59.000000000 +0100
-+++ gdb-6.6/gdb/configure 2007-05-14 10:55:41.000000000 +0200
-@@ -272,7 +272,7 @@ PACKAGE_STRING=
- PACKAGE_BUGREPORT=
-
- ac_unique_file="main.c"
--ac_subdirs_all="$ac_subdirs_all doc testsuite"
-+ac_subdirs_all="$ac_subdirs_all doc"
- # Factoring default headers for most tests.
- ac_includes_default="\
- #include <stdio.h>
-@@ -3055,7 +3055,7 @@ _ACEOF
-
-
-
--subdirs="$subdirs doc testsuite"
-+subdirs="$subdirs doc"
-
-
- # Provide defaults for some variables set by the per-host and per-target
-diff -rduNp gdb-6.6-100/gdb/gdbserver/configure gdb-6.6/gdb/gdbserver/configure
---- gdb-6.6-100/gdb/gdbserver/configure 2006-11-22 01:10:19.000000000 +0100
-+++ gdb-6.6/gdb/gdbserver/configure 2007-05-14 10:54:29.000000000 +0200
-@@ -1239,7 +1239,7 @@ echo "$as_me: error: \`$ac_var' was not
- ac_cache_corrupted=: ;;
- ,);;
- *)
-- if test "x$ac_old_val" != "x$ac_new_val"; then
-+ if test "`echo $ac_old_val`" != "`echo $ac_new_val`"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
- echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-diff -rduNp gdb-6.6-100/gdb/testsuite/configure gdb-6.6/gdb/testsuite/configure
---- gdb-6.6-100/gdb/testsuite/configure 2006-06-21 15:57:21.000000000 +0200
-+++ gdb-6.6/gdb/testsuite/configure 2007-05-14 10:54:29.000000000 +0200
-@@ -1248,7 +1248,7 @@ echo "$as_me: error: \`$ac_var' was not
- ac_cache_corrupted=: ;;
- ,);;
- *)
-- if test "x$ac_old_val" != "x$ac_new_val"; then
-+ if test "`echo $ac_old_val" != "`echo $ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
- echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
diff --git a/toolchain/gdb/Config.in b/toolchain/gdb/Config.in
deleted file mode 100644
index b45de9a..0000000
--- a/toolchain/gdb/Config.in
+++ /dev/null
@@ -1,69 +0,0 @@
-comment "Gdb Options"
-
-config BR2_PACKAGE_GDB
- bool "Build gdb debugger for the Target"
- select BR2_PACKAGE_NCURSES
- depends on BR2_USE_WCHAR
- help
- Build the full gdb debugger to run on the target.
-
-comment "Gdb debugger for the target needs WCHAR support in toolchain"
- depends on !BR2_USE_WCHAR
-
-config BR2_PACKAGE_GDB_SERVER
- bool "Build gdb server for the Target"
- help
- Build the gdbserver stub to run on the target.
- A full gdb is needed to debug the progam.
-
-config BR2_PACKAGE_GDB_HOST
- bool "Build gdb for the Host"
- # cross-gdb is supposed to be part of the external
- # toolchain. And the build currently fails.
- depends on !BR2_TOOLCHAIN_EXTERNAL
- help
- Build gdb to run on the host to debug programs run on the target.
-
-choice
- prompt "GDB debugger Version"
- default BR2_GDB_VERSION_6_8 if !BR2_avr32
- default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 if BR2_avr32
- depends on BR2_PACKAGE_GDB || BR2_PACKAGE_GDB_SERVER || BR2_PACKAGE_GDB_HOST
- help
- Select the version of gdb you wish to use.
-
- config BR2_GDB_VERSION_6_6
- bool "gdb 6.6"
- depends on !BR2_avr32
- depends on BR2_DEPRECATED
-
- config BR2_GDB_VERSION_6_7_1
- depends on !BR2_avr32
- bool "gdb 6.7.1"
-
- config BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
- depends on BR2_avr32
- bool "gdb 6.7.1-avr32-2.1.5"
-
- config BR2_GDB_VERSION_6_8
- bool "gdb 6.8"
- depends on !BR2_avr32
-
- config BR2_GDB_VERSION_7_0_1
- bool "gdb 7.0.1"
- select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
-
- config BR2_GDB_VERSION_7_1
- bool "gdb 7.1"
- select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
-
-endchoice
-
-config BR2_GDB_VERSION
- string
- default "6.6" if BR2_GDB_VERSION_6_6
- default "6.7.1" if BR2_GDB_VERSION_6_7_1
- default "6.7.1-avr32-2.1.5" if BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
- default "6.8" if BR2_GDB_VERSION_6_8
- default "7.0.1" if BR2_GDB_VERSION_7_0_1
- default "7.1" if BR2_GDB_VERSION_7_1
diff --git a/toolchain/gdb/gdb.mk b/toolchain/gdb/gdb.mk
deleted file mode 100644
index af08d1e..0000000
--- a/toolchain/gdb/gdb.mk
+++ /dev/null
@@ -1,237 +0,0 @@
-######################################################################
-#
-# gdb
-#
-######################################################################
-GDB_VERSION:=$(call qstrip,$(BR2_GDB_VERSION))
-
-GDB_SOURCE:=gdb-$(GDB_VERSION).tar.bz2
-GDB_CAT:=$(BZCAT)
-
-ifeq ($(findstring avr32,$(GDB_VERSION)),avr32)
- GDB_SITE:=ftp://www.at91.com/pub/buildroot/
- GDB_PATCH_DIR:=toolchain/gdb/$(GDB_VERSION)
-else
- GDB_SITE:=$(BR2_GNU_MIRROR)/gdb
- GDB_PATCH_DIR:=toolchain/gdb/$(GDB_VERSION)
-endif
-
-ifneq ($(filter xtensa%,$(ARCH)),)
-include target/xtensa/patch.in
-GDB_PATCH_EXTRA:=$(call XTENSA_PATCH,gdb,$(GDB_PATCH_DIR),. ..)
-endif
-
-GDB_DIR:=$(TOOLCHAIN_DIR)/gdb-$(GDB_VERSION)
-
-$(DL_DIR)/$(GDB_SOURCE):
- $(call DOWNLOAD,$(GDB_SITE),$(GDB_SOURCE))
-
-gdb-unpacked: $(GDB_DIR)/.unpacked
-$(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE)
- mkdir -p $(TOOLCHAIN_DIR)
- $(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
-ifeq ($(GDB_VERSION),snapshot)
- GDB_REAL_DIR=$(shell \
- tar jtf $(DL_DIR)/$(GDB_SOURCE) | head -1 | cut -d"/" -f1)
- ln -sf $(TOOLCHAIN_DIR)/$(shell tar jtf $(DL_DIR)/$(GDB_SOURCE) | head -1 | cut -d"/" -f1) $(GDB_DIR)
-endif
-ifneq ($(wildcard $(GDB_PATCH_DIR)),)
- toolchain/patch-kernel.sh $(GDB_DIR) $(GDB_PATCH_DIR) \*.patch $(GDB_PATCH_EXTRA)
-endif
- $(CONFIG_UPDATE) $(@D)
- touch $@
-
-gdb-patched: $(GDB_DIR)/.unpacked
-
-gdb-source: $(DL_DIR)/$(GDB_SOURCE)
-gdb-dirclean:
- rm -rf $(GDB_DIR)
-
-######################################################################
-#
-# gdb target
-#
-######################################################################
-
-GDB_TARGET_DIR:=$(BUILD_DIR)/gdb-$(GDB_VERSION)-target
-
-GDB_TARGET_CONFIGURE_VARS:= \
- ac_cv_type_uintptr_t=yes \
- gt_cv_func_gettext_libintl=yes \
- ac_cv_func_dcgettext=yes \
- gdb_cv_func_sigsetjmp=yes \
- bash_cv_func_strcoll_broken=no \
- bash_cv_must_reinstall_sighandlers=no \
- bash_cv_func_sigsetjmp=present \
- bash_cv_have_mbstate_t=yes
-
-$(GDB_TARGET_DIR)/.configured: $(GDB_DIR)/.unpacked
- mkdir -p $(GDB_TARGET_DIR)
- (cd $(GDB_TARGET_DIR); \
- gdb_cv_func_sigsetjmp=yes \
- $(TARGET_CONFIGURE_OPTS) \
- CFLAGS_FOR_TARGET="$(TARGET_CFLAGS) $(TARGET_LDFLAGS) -Wno-error" \
- CFLAGS="$(TARGET_CFLAGS) $(TARGET_LDFLAGS) -Wno-error" \
- $(GDB_TARGET_CONFIGURE_VARS) \
- $(GDB_DIR)/configure $(QUIET) \
- --cache-file=/dev/null \
- --build=$(GNU_HOST_NAME) \
- --host=$(REAL_GNU_TARGET_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
- --prefix=/usr \
- $(DISABLE_NLS) \
- --without-uiout $(DISABLE_GDBMI) \
- --disable-tui --disable-gdbtk --without-x \
- --disable-sim --enable-gdbserver \
- --without-included-gettext \
- --disable-werror \
- $(QUIET) \
- )
-ifeq ($(BR2_ENABLE_LOCALE),y)
- -$(SED) "s,^INTL *=.*,INTL = -lintl,g;" $(GDB_DIR)/gdb/Makefile
-endif
- touch $@
-
-$(GDB_TARGET_DIR)/gdb/gdb: $(GDB_TARGET_DIR)/.configured
- # force ELF support since it fails due to BFD linking problems
- gdb_cv_var_elf=yes \
- $(MAKE) CC="$(TARGET_CC)" MT_CFLAGS="$(TARGET_CFLAGS)" \
- -C $(GDB_TARGET_DIR)
-
-$(TARGET_DIR)/usr/bin/gdb: $(GDB_TARGET_DIR)/gdb/gdb
- install -c -D $(GDB_TARGET_DIR)/gdb/gdb $(TARGET_DIR)/usr/bin/gdb
-
-gdb_target: ncurses $(TARGET_DIR)/usr/bin/gdb
-
-gdb_target-source: $(DL_DIR)/$(GDB_SOURCE)
-
-gdb_target-clean:
- -$(MAKE) -C $(GDB_DIR) clean
-
-gdb_target-dirclean:
- rm -rf $(GDB_DIR)
-
-######################################################################
-#
-# gdbserver
-#
-######################################################################
-
-GDB_SERVER_DIR:=$(BUILD_DIR)/gdbserver-$(GDB_VERSION)
-
-$(GDB_SERVER_DIR)/.configured: $(GDB_DIR)/.unpacked
- mkdir -p $(GDB_SERVER_DIR)
- (cd $(GDB_SERVER_DIR); \
- $(TARGET_CONFIGURE_OPTS) \
- gdb_cv_func_sigsetjmp=yes \
- bash_cv_have_mbstate_t=yes \
- $(GDB_DIR)/gdb/gdbserver/configure $(QUIET) \
- --cache-file=/dev/null \
- --build=$(GNU_HOST_NAME) \
- --host=$(REAL_GNU_TARGET_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
- --prefix=/usr \
- --exec-prefix=/usr \
- --bindir=/usr/bin \
- --sbindir=/usr/sbin \
- --libexecdir=/usr/lib \
- --sysconfdir=/etc \
- --datadir=/usr/share \
- --localstatedir=/var \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --includedir=$(STAGING_DIR)/usr/include \
- $(DISABLE_NLS) \
- --without-uiout $(DISABLE_GDBMI) \
- --disable-tui --disable-gdbtk --without-x \
- --without-included-gettext \
- )
- touch $@
-
-$(GDB_SERVER_DIR)/gdbserver: $(GDB_SERVER_DIR)/.configured
- $(MAKE) CC="$(TARGET_CC)" MT_CFLAGS="$(TARGET_CFLAGS)" \
- -C $(GDB_SERVER_DIR)
-
-$(TARGET_DIR)/usr/bin/gdbserver: $(GDB_SERVER_DIR)/gdbserver
-ifeq ($(BR2_CROSS_TOOLCHAIN_TARGET_UTILS),y)
- mkdir -p $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils
- install -c $(GDB_SERVER_DIR)/gdbserver \
- $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils/gdbserver
-endif
- install -c -D $(GDB_SERVER_DIR)/gdbserver $(TARGET_DIR)/usr/bin/gdbserver
-
-gdbserver: $(TARGET_DIR)/usr/bin/gdbserver
-
-gdbserver-source: $(DL_DIR)/$(GDB_SOURCE)
-
-gdbserver-clean:
- -$(MAKE) -C $(GDB_SERVER_DIR) clean
-
-gdbserver-dirclean:
- rm -rf $(GDB_SERVER_DIR)
-
-######################################################################
-#
-# gdb on host
-#
-######################################################################
-
-GDB_HOST_DIR:=$(TOOLCHAIN_DIR)/gdbhost-$(GDB_VERSION)
-
-$(GDB_HOST_DIR)/.configured: $(GDB_DIR)/.unpacked
- mkdir -p $(GDB_HOST_DIR)
- (cd $(GDB_HOST_DIR); \
- gdb_cv_func_sigsetjmp=yes \
- bash_cv_have_mbstate_t=yes \
- $(GDB_DIR)/configure $(QUIET) \
- --cache-file=/dev/null \
- --prefix=$(STAGING_DIR) \
- --build=$(GNU_HOST_NAME) \
- --host=$(GNU_HOST_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
- $(DISABLE_NLS) \
- --without-uiout $(DISABLE_GDBMI) \
- --disable-tui --disable-gdbtk --without-x \
- --without-included-gettext \
- --enable-threads \
- --disable-werror \
- )
- touch $@
-
-$(GDB_HOST_DIR)/gdb/gdb: $(GDB_HOST_DIR)/.configured
- $(MAKE) -C $(GDB_HOST_DIR)
- strip $(GDB_HOST_DIR)/gdb/gdb
-
-$(TARGET_CROSS)gdb: $(GDB_HOST_DIR)/gdb/gdb
- install -c $(GDB_HOST_DIR)/gdb/gdb $(TARGET_CROSS)gdb
- ln -snf ../../bin/$(REAL_GNU_TARGET_NAME)-gdb \
- $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/gdb
- ln -snf $(REAL_GNU_TARGET_NAME)-gdb \
- $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-gdb
-
-gdbhost: $(TARGET_CROSS)gdb
-
-gdbhost-source: $(DL_DIR)/$(GDB_SOURCE)
-
-gdbhost-clean:
- -$(MAKE) -C $(GDB_HOST_DIR) clean
-
-gdbhost-dirclean:
- rm -rf $(GDB_HOST_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_GDB),y)
-TARGETS+=gdb_target
-endif
-
-ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
-TARGETS+=gdbserver
-endif
-
-ifeq ($(BR2_PACKAGE_GDB_HOST),y)
-TARGETS+=gdbhost
-endif
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index c611562..764a1da 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -3,7 +3,6 @@
include toolchain/dependencies/dependencies.mk
include toolchain/elf2flt/elf2flt.mk
include toolchain/gcc/gcc-uclibc-4.x.mk
-include toolchain/gdb/gdb.mk
include toolchain/kernel-headers/kernel-headers.mk
include toolchain/mklibs/mklibs.mk
include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 3894890..485ab7c 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -5,4 +5,5 @@ source "toolchain/kernel-headers/Config.in"
source "toolchain/uClibc/Config.in"
source "package/binutils/Config.in.host"
source "toolchain/gcc/Config.in"
+source "package/gdb/Config.in.host"
endif
diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
index bdc6e76..1276305 100644
--- a/toolchain/toolchain-common.in
+++ b/toolchain/toolchain-common.in
@@ -1,10 +1,5 @@
# Generic toolchain options
-# we want gdb config in the middle of both source and external
-# toolchains, but mconf won't let us source the same file twice,
-# so put it here instead
-source "toolchain/gdb/Config.in"
-
config BR2_LARGEFILE
bool
diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk
index e480da9..5b0cc4e 100644
--- a/toolchain/toolchain-crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng.mk
@@ -5,7 +5,6 @@ include toolchain/helpers.mk
include toolchain/dependencies/dependencies.mk
include toolchain/elf2flt/elf2flt.mk
include toolchain/gcc/gcc-uclibc-4.x.mk
-include toolchain/gdb/gdb.mk
include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
include toolchain/mklibs/mklibs.mk
include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
index d67405b..4ade92a 100644
--- a/toolchain/toolchain-external.mk
+++ b/toolchain/toolchain-external.mk
@@ -4,7 +4,6 @@ include toolchain/helpers.mk
include toolchain/dependencies/dependencies.mk
include toolchain/elf2flt/elf2flt.mk
include toolchain/gcc/gcc-uclibc-4.x.mk
-include toolchain/gdb/gdb.mk
include toolchain/kernel-headers/kernel-headers.mk
include toolchain/mklibs/mklibs.mk
include toolchain/toolchain-external/ext-tool.mk
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 07/10] package: drop sparc64 bits
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
` (5 preceding siblings ...)
2010-12-28 19:10 ` [Buildroot] [PATCH 06/10] gdb: make it a proper package Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-29 22:15 ` Peter Korsgaard
2010-12-28 19:10 ` [Buildroot] [PATCH 08/10] oprofile: use new libbfd option Gustavo Zacarias
` (3 subsequent siblings)
10 siblings, 1 reply; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
Remove VIS optimization, it's for sparc64 and it's gone.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/Makefile.in | 5 -----
1 files changed, 0 insertions(+), 5 deletions(-)
diff --git a/package/Makefile.in b/package/Makefile.in
index 983f9f5..a1e290f 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -92,11 +92,6 @@ ifeq ($(BR2_VFP_FLOAT),y)
TARGET_CFLAGS+=-mfpu=vfp
endif
-# enable VIS for v9a and v9b
-ifeq ($(findstring y,$(BR2_sparc_v9a)$(BR2_sparc64_v9a)$(BR2_sparc_v9b)$(BR2_sparc64_v9b)),y)
-TARGET_CFLAGS+=-mvis
-endif
-
ifeq ($(findstring yy,$(BR2_mips)$(BR2_MIPS_ABI64)),yy)
TARGET_CFLAGS+=-fno-pic -mno-abicalls
endif
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 08/10] oprofile: use new libbfd option
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
` (6 preceding siblings ...)
2010-12-28 19:10 ` [Buildroot] [PATCH 07/10] package: drop sparc64 bits Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 09/10] binutils: needs libintl when locales are enabled Gustavo Zacarias
` (2 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
Convert the oprofile target to select the new libbfd staging/target
option to avoid a huge target binutils for a simple task.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/oprofile/Config.in | 1 +
package/oprofile/oprofile.mk | 5 +----
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/package/oprofile/Config.in b/package/oprofile/Config.in
index c877dae..15e8186 100644
--- a/package/oprofile/Config.in
+++ b/package/oprofile/Config.in
@@ -5,6 +5,7 @@ config BR2_PACKAGE_OPROFILE
# choosen in the config. This will have to be fixed later.
depends on !BR2_TOOLCHAIN_EXTERNAL
select BR2_PACKAGE_POPT
+ select BR2_PACKAGE_BINUTILS_LIBBFD
depends on BR2_INSTALL_LIBSTDCPP
help
OProfile is a system-wide profiler for Linux systems,
diff --git a/package/oprofile/oprofile.mk b/package/oprofile/oprofile.mk
index 3be50f2..42bf0e2 100644
--- a/package/oprofile/oprofile.mk
+++ b/package/oprofile/oprofile.mk
@@ -5,9 +5,6 @@
#############################################################
OPROFILE_VERSION := 0.9.4
OPROFILE_CONF_OPT := --localstatedir=/var \
- --with-extra-includes="$(BUILD_DIR)/binutils-$(BR2_BINUTILS_VERSION)-target/bfd \
- -I$(TOOLCHAIN_DIR)/binutils-$(BR2_BINUTILS_VERSION)/include" \
- --with-extra-libs=$(BUILD_DIR)/binutils-$(BR2_BINUTILS_VERSION)-target/bfd \
--with-kernel-support
OPROFILE_BINARIES := utils/ophelp
@@ -24,7 +21,7 @@ ifeq ($(OPROFILE_ARCH),)
OPROFILE_ARCH := $(BR2_ARCH)
endif
-OPROFILE_DEPENDENCIES := popt binutils_target
+OPROFILE_DEPENDENCIES := popt binutils
define OPROFILE_INSTALL_TARGET_CMDS
$(INSTALL) -d -m 755 $(TARGET_DIR)/usr/bin
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 09/10] binutils: needs libintl when locales are enabled
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
` (7 preceding siblings ...)
2010-12-28 19:10 ` [Buildroot] [PATCH 08/10] oprofile: use new libbfd option Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-28 19:10 ` [Buildroot] [PATCH 10/10] toolchain: drop BR2_CROSS_TOOLCHAIN_TARGET_UTILS option Gustavo Zacarias
2010-12-29 8:17 ` [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Peter Korsgaard
10 siblings, 0 replies; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/binutils/Config.in | 2 ++
package/binutils/binutils.mk | 1 +
2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/package/binutils/Config.in b/package/binutils/Config.in
index 942562e..65b0f30 100644
--- a/package/binutils/Config.in
+++ b/package/binutils/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_BINUTILS
bool
depends on BR2_TOOLCHAIN_BUILDROOT
default y if BR2_PACKAGE_BINUTILS_TARGET || BR2_PACKAGE_BINUTILS_LIBBFD
+ select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+ select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
config BR2_PACKAGE_BINUTILS_TARGET
bool "binutils"
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 634c7ae..62b8b89 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -12,6 +12,7 @@ BINUTILS_SITE = ftp://www.at91.com/pub/buildroot
endif
BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
BINUTILS_INSTALL_STAGING = YES
+BINUTILS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
# These aren't really needed, we just pull them until gcc is a proper package
ifeq ($(BR2_PACKAGE_BINUTILS_TARGET),y)
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 10/10] toolchain: drop BR2_CROSS_TOOLCHAIN_TARGET_UTILS option
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
` (8 preceding siblings ...)
2010-12-28 19:10 ` [Buildroot] [PATCH 09/10] binutils: needs libintl when locales are enabled Gustavo Zacarias
@ 2010-12-28 19:10 ` Gustavo Zacarias
2010-12-29 22:15 ` Peter Korsgaard
2010-12-29 8:17 ` [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Peter Korsgaard
10 siblings, 1 reply; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-28 19:10 UTC (permalink / raw)
To: buildroot
It's really not very useful, all it does is install a target
strace and ldd in a target_utils directory in staging.
While at it clean up the strace makefile a bit.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
configs/arm_nptl_toolchain_defconfig | 1 -
configs/arm_toolchain_defconfig | 1 -
package/strace/strace.mk | 22 +++++-----------------
target/xtensa/defconfig | 1 -
toolchain/toolchain-buildroot/Config.in.2 | 12 ------------
toolchain/uClibc/uclibc.mk | 5 -----
6 files changed, 5 insertions(+), 37 deletions(-)
diff --git a/configs/arm_nptl_toolchain_defconfig b/configs/arm_nptl_toolchain_defconfig
index 99c526e..1bb1193 100644
--- a/configs/arm_nptl_toolchain_defconfig
+++ b/configs/arm_nptl_toolchain_defconfig
@@ -10,7 +10,6 @@ BR2_ENABLE_LOCALE=y
BR2_USE_WCHAR=y
BR2_PTHREADS_NATIVE=y
BR2_INSTALL_LIBSTDCPP=y
-BR2_CROSS_TOOLCHAIN_TARGET_UTILS=y
# No package
# BR2_PACKAGE_BUSYBOX is not set
diff --git a/configs/arm_toolchain_defconfig b/configs/arm_toolchain_defconfig
index 455564c..e46c5c9 100644
--- a/configs/arm_toolchain_defconfig
+++ b/configs/arm_toolchain_defconfig
@@ -8,7 +8,6 @@ BR2_INET_RPC=y
BR2_ENABLE_LOCALE=y
BR2_USE_WCHAR=y
BR2_INSTALL_LIBSTDCPP=y
-BR2_CROSS_TOOLCHAIN_TARGET_UTILS=y
# No package
# BR2_PACKAGE_BUSYBOX is not set
diff --git a/package/strace/strace.mk b/package/strace/strace.mk
index f4a52bc..85e82c1 100644
--- a/package/strace/strace.mk
+++ b/package/strace/strace.mk
@@ -3,14 +3,12 @@
# strace
#
#############################################################
-STRACE_VERSION:=4.5.20
-STRACE_SOURCE:=strace-$(STRACE_VERSION).tar.bz2
-STRACE_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/strace
-STRACE_AUTORECONF:=NO
-STRACE_INSTALL_STAGING:=NO
-STRACE_INSTALL_TARGET:=YES
-STRACE_CONF_ENV:= ac_cv_header_linux_if_packet_h=yes \
+STRACE_VERSION = 4.5.20
+STRACE_SOURCE = strace-$(STRACE_VERSION).tar.bz2
+STRACE_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/strace
+
+STRACE_CONF_ENV = ac_cv_header_linux_if_packet_h=yes \
ac_cv_header_linux_netlink_h=yes \
$(if $(BR2_LARGEFILE),ac_cv_type_stat64=yes,ac_cv_type_stat64=no)
@@ -20,14 +18,4 @@ endef
STRACE_POST_INSTALL_TARGET_HOOKS += STRACE_REMOVE_STRACE_GRAPH
-define STRACE_INSTALL_TOOLCHAIN_TARGET_UTILS
- mkdir -p $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils
- install -c $(TARGET_DIR)/usr/bin/strace \
- $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils/strace
-endef
-
-ifeq ($(BR2_CROSS_TOOLCHAIN_TARGET_UTILS),y)
-STRACE_POST_INSTALL_TARGET_HOOKS += STRACE_INSTALL_TOOLCHAIN_TARGET_UTILS
-endif
-
$(eval $(call AUTOTARGETS,package,strace))
diff --git a/target/xtensa/defconfig b/target/xtensa/defconfig
index 200ff21..0eee5c0 100644
--- a/target/xtensa/defconfig
+++ b/target/xtensa/defconfig
@@ -80,7 +80,6 @@ BR2_GDB_VERSION="6.8"
BR2_LARGEFILE=y
BR2_INET_RPC=y
BR2_TARGET_OPTIMIZATION="-Os -pipe"
-BR2_CROSS_TOOLCHAIN_TARGET_UTILS=y
## Added by Maxim
diff --git a/toolchain/toolchain-buildroot/Config.in.2 b/toolchain/toolchain-buildroot/Config.in.2
index 6a383f6..3fd433a 100644
--- a/toolchain/toolchain-buildroot/Config.in.2
+++ b/toolchain/toolchain-buildroot/Config.in.2
@@ -118,16 +118,4 @@ config BR2_VFP_FLOAT
Most people will answer N.
-config BR2_CROSS_TOOLCHAIN_TARGET_UTILS
- bool "Include target utils in cross toolchain"
- default y
- help
- When using buildroot to build a deployable cross toolchain,
- it is handy to include certain target apps with that toolchain
- as a convenience.
- Examples include ldd, gdbserver, and strace.
-
- Answer Y if you want these apps (if built) copied into the
- cross toolchain dir under <arch>-linux-uclibc/target_utils/.
-
endif
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index ec92824..a677be7 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -479,11 +479,6 @@ $(TARGET_DIR)/usr/bin/ldd: $(cross_compiler)
CPP=$(TARGET_CROSS)cpp LD=$(TARGET_CROSS)ld \
ARCH="$(UCLIBC_TARGET_ARCH)" \
PREFIX=$(TARGET_DIR) utils install_utils
-ifeq ($(BR2_CROSS_TOOLCHAIN_TARGET_UTILS),y)
- mkdir -p $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils
- install -c $(TARGET_DIR)/usr/bin/ldd \
- $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils/ldd
-endif
touch -c $@
ifneq ($(BR2_PREFER_STATIC_LIB),y)
--
1.7.2.2
^ permalink raw reply related [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 00/10] Toolchain rework, take 3
2010-12-28 19:10 [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Gustavo Zacarias
` (9 preceding siblings ...)
2010-12-28 19:10 ` [Buildroot] [PATCH 10/10] toolchain: drop BR2_CROSS_TOOLCHAIN_TARGET_UTILS option Gustavo Zacarias
@ 2010-12-29 8:17 ` Peter Korsgaard
2010-12-29 20:43 ` Gustavo Zacarias
10 siblings, 1 reply; 22+ messages in thread
From: Peter Korsgaard @ 2010-12-29 8:17 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Gustavo> This is the third batch of patches for the internal toolchain rework.
Gustavo> Peter merged some of the work so this is a rebase with a few
Gustavo> fixes and additions related to oprofile and removing
Gustavo> the BR2_CROSS_TOOLCHAIN_TARGET_UTILS option.
Thanks. Committed first 3 (up to binutils). Care to respin the rest of
the series? Maybe patch 9 should get merged with the main binutils patch
as well.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 22+ messages in thread* [Buildroot] [PATCH 00/10] Toolchain rework, take 3
2010-12-29 8:17 ` [Buildroot] [PATCH 00/10] Toolchain rework, take 3 Peter Korsgaard
@ 2010-12-29 20:43 ` Gustavo Zacarias
2010-12-29 21:04 ` Peter Korsgaard
0 siblings, 1 reply; 22+ messages in thread
From: Gustavo Zacarias @ 2010-12-29 20:43 UTC (permalink / raw)
To: buildroot
On 12/29/10 05:17, Peter Korsgaard wrote:
> Thanks. Committed first 3 (up to binutils). Care to respin the rest of
> the series? Maybe patch 9 should get merged with the main binutils patch
> as well.
Respined.
They're at the usual git://repo.or.cz/buildroot-gz.git toolchain-rework
branch.
Give them a spin to see if there's anything big i missed before sending
a ton of email again ;-)
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Buildroot] [PATCH 00/10] Toolchain rework, take 3
2010-12-29 20:43 ` Gustavo Zacarias
@ 2010-12-29 21:04 ` Peter Korsgaard
2010-12-29 22:02 ` Gustavo Zacarias
0 siblings, 1 reply; 22+ messages in thread
From: Peter Korsgaard @ 2010-12-29 21:04 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Gustavo> On 12/29/10 05:17, Peter Korsgaard wrote:
>> Thanks. Committed first 3 (up to binutils). Care to respin the rest of
>> the series? Maybe patch 9 should get merged with the main binutils patch
>> as well.
Gustavo> Respined.
Gustavo> They're at the usual git://repo.or.cz/buildroot-gz.git toolchain-rework
Gustavo> branch.
Gustavo> Give them a spin to see if there's anything big i missed before sending
Gustavo> a ton of email again ;-)
Thanks, but we're down to 6 patches now so it's no loner a ton ;)
I see that you are still hiding the BR2_PACKAGE_BINUTILS option, why is that?
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 22+ messages in thread