From 2eb4068e50c5a02df6c9c8b303980a9b1060af76 Mon Sep 17 00:00:00 2001 From: Jason Self Date: Sat, 16 Jan 2021 10:11:26 -0800 Subject: [PATCH] carl9170: Update to latest upstream --- WHENCE | 4 +- carl9170fw/config/.gitignore | 9 +- carl9170fw/config/CMakeLists.txt | 12 +- carl9170fw/config/conf.c | 36 +++-- carl9170fw/config/confdata.c | 168 +++++++++++++++--------- carl9170fw/config/expr.c | 7 + carl9170fw/config/expr.h | 3 +- carl9170fw/config/{zconf.l => lexer.l} | 5 +- carl9170fw/config/lkc.h | 4 +- carl9170fw/config/lkc_proto.h | 3 +- carl9170fw/config/{zconf.y => parser.y} | 1 - carl9170fw/config/preprocess.c | 3 +- carl9170fw/config/symbol.c | 4 +- carl9170fw/toolchain/Makefile | 18 +-- carl9170fw/toolchain/SHA256SUMS | 8 +- 15 files changed, 162 insertions(+), 123 deletions(-) rename carl9170fw/config/{zconf.l => lexer.l} (99%) rename carl9170fw/config/{zconf.y => parser.y} (99%) diff --git a/WHENCE b/WHENCE index cffa41d..65d1724 100644 --- a/WHENCE +++ b/WHENCE @@ -154,8 +154,8 @@ From https://git.kernel.org/pub/scm/utils/cis-tools/cis-tools.git Driver: carl9170 -- Atheros AR9170 802.11 draft-n USB driver -Version: Based on commit 001384147050b9cd9daadb4d3115cc0f13f5b319 -dated May 5 2019. +Version: Based on commit bdb09091452a302db607b14c9025a91d9c09405a +dated July 25 2020. Licence: GPLv2 or later. diff --git a/carl9170fw/config/.gitignore b/carl9170fw/config/.gitignore index f4679a3..c68f45b 100644 --- a/carl9170fw/config/.gitignore +++ b/carl9170fw/config/.gitignore @@ -1,7 +1,4 @@ -zconf.hash.c -zconf.tab.c conf -lex.backup -zconf.lex.c -zconf.tab.h - +parser.tab.c +parser.tab.h +lexer.lex.c diff --git a/carl9170fw/config/CMakeLists.txt b/carl9170fw/config/CMakeLists.txt index 23e7218..5b341fc 100644 --- a/carl9170fw/config/CMakeLists.txt +++ b/carl9170fw/config/CMakeLists.txt @@ -11,13 +11,13 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../include/generated") -BISON_TARGET(zconf zconf.y zconf.tab.c COMPILE_FLAGS "-l -b zconf -p yy -t") -FLEX_TARGET(zconfscan zconf.l zconf.lex.c COMPILE_FLAGS "-Pyy -L") +BISON_TARGET(parser parser.y parser.tab.c COMPILE_FLAGS "-l -b parser -p yy -t") +FLEX_TARGET(lexer lexer.l lexer.lex.c COMPILE_FLAGS "-Pyy -L") -SET(zconf_deps ${FLEX_zconfscan_OUTPUTS}) -SET_SOURCE_FILES_PROPERTIES(${BISON_zconf_OUTPUTS} - PROPERTIES OBJECT_DEPENDS "${zconf_deps}") +SET(parser_deps ${FLEX_lexer_OUTPUTS}) +SET_SOURCE_FILES_PROPERTIES(${BISON_parser_OUTPUTS} + PROPERTIES OBJECT_DEPENDS "${parser_deps}") -set(conf_src conf.c symbol.c confdata.c expr.c preprocess.c ${BISON_zconf_OUTPUTS} ${FLEX_zconfscan_OUTPUTS}) +set(conf_src conf.c util.c symbol.c confdata.c expr.c preprocess.c ${BISON_parser_OUTPUTS} ${FLEX_lexer_OUTPUTS}) add_executable(conf ${conf_src}) diff --git a/carl9170fw/config/conf.c b/carl9170fw/config/conf.c index 2949b7d..5f1758c 100644 --- a/carl9170fw/config/conf.c +++ b/carl9170fw/config/conf.c @@ -32,6 +32,7 @@ enum input_mode { defconfig, savedefconfig, listnewconfig, + helpnewconfig, olddefconfig, }; static enum input_mode input_mode = oldaskconfig; @@ -90,7 +91,7 @@ static int conf_askvalue(struct symbol *sym, const char *def) line[0] = '\n'; line[1] = 0; - if (!sym_is_changable(sym)) { + if (!sym_is_changeable(sym)) { printf("%s\n", def); line[0] = '\n'; line[1] = 0; @@ -234,7 +235,7 @@ static int conf_choice(struct menu *menu) sym = menu->sym; is_new = !sym_has_value(sym); - if (sym_is_changable(sym)) { + if (sym_is_changeable(sym)) { conf_sym(menu); sym_calc_value(sym); switch (sym_get_tristate_value(sym)) { @@ -418,7 +419,7 @@ static void check_conf(struct menu *menu) sym = menu->sym; if (sym && !sym_has_value(sym)) { - if (sym_is_changable(sym) || + if (sym_is_changeable(sym) || (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) { if (input_mode == listnewconfig) { if (sym->name) { @@ -434,6 +435,11 @@ static void check_conf(struct menu *menu) printf("%s%s=%s\n", CONFIG_, sym->name, str); } } + } else if (input_mode == helpnewconfig) { + printf("-----\n"); + print_help(menu); + printf("-----\n"); + } else { if (!conf_cnt++) printf("*\n* Restart config...\n*\n"); @@ -451,7 +457,7 @@ static struct option long_opts[] = { {"oldaskconfig", no_argument, NULL, oldaskconfig}, {"oldconfig", no_argument, NULL, oldconfig}, {"syncconfig", no_argument, NULL, syncconfig}, - {"defconfig", optional_argument, NULL, defconfig}, + {"defconfig", required_argument, NULL, defconfig}, {"savedefconfig", required_argument, NULL, savedefconfig}, {"allnoconfig", no_argument, NULL, allnoconfig}, {"allyesconfig", no_argument, NULL, allyesconfig}, @@ -459,6 +465,7 @@ static struct option long_opts[] = { {"alldefconfig", no_argument, NULL, alldefconfig}, {"randconfig", no_argument, NULL, randconfig}, {"listnewconfig", no_argument, NULL, listnewconfig}, + {"helpnewconfig", no_argument, NULL, helpnewconfig}, {"olddefconfig", no_argument, NULL, olddefconfig}, {NULL, 0, NULL, 0} }; @@ -469,6 +476,7 @@ static void conf_usage(const char *progname) printf("Usage: %s [-s] [option] \n", progname); printf("[option] is _one_ of the following:\n"); printf(" --listnewconfig List new options\n"); + printf(" --helpnewconfig List new options and help text\n"); printf(" --oldaskconfig Start a new configuration using a line-oriented program\n"); printf(" --oldconfig Update a configuration using a provided .config as base\n"); printf(" --syncconfig Similar to oldconfig but generates configuration in\n" @@ -488,7 +496,6 @@ int main(int ac, char **av) const char *progname = av[0]; int opt; const char *name, *defconfig_file = NULL /* gcc uninit */; - struct stat tmpstat; int no_conf_write = 0; tty_stdio = isatty(0) && isatty(1); @@ -544,6 +551,7 @@ int main(int ac, char **av) case allmodconfig: case alldefconfig: case listnewconfig: + case helpnewconfig: case olddefconfig: break; case '?': @@ -560,23 +568,9 @@ int main(int ac, char **av) name = av[optind]; conf_parse(name); //zconfdump(stdout); - if (sync_kconfig) { - name = conf_get_configname(); - if (stat(name, &tmpstat)) { - fprintf(stderr, "***\n" - "*** Configuration file \"%s\" not found!\n" - "***\n" - "*** Please run some configurator (e.g. \"make oldconfig\" or\n" - "*** \"make menuconfig\" or \"make xconfig\").\n" - "***\n", name); - exit(1); - } - } switch (input_mode) { case defconfig: - if (!defconfig_file) - defconfig_file = conf_get_default_confname(); if (conf_read(defconfig_file)) { fprintf(stderr, "***\n" @@ -591,6 +585,7 @@ int main(int ac, char **av) case oldaskconfig: case oldconfig: case listnewconfig: + case helpnewconfig: case olddefconfig: conf_read(NULL); break; @@ -672,6 +667,7 @@ int main(int ac, char **av) /* fall through */ case oldconfig: case listnewconfig: + case helpnewconfig: case syncconfig: /* Update until a loop caused no more changes */ do { @@ -690,7 +686,7 @@ int main(int ac, char **av) defconfig_file); return 1; } - } else if (input_mode != listnewconfig) { + } else if (input_mode != listnewconfig && input_mode != helpnewconfig) { if (!no_conf_write && conf_write(NULL)) { fprintf(stderr, "\n*** Error during writing of the configuration.\n\n"); exit(1); diff --git a/carl9170fw/config/confdata.c b/carl9170fw/config/confdata.c index d67695d..a124a25 100644 --- a/carl9170fw/config/confdata.c +++ b/carl9170fw/config/confdata.c @@ -3,6 +3,7 @@ * Copyright (C) 2002 Roman Zippel */ +#include #include #include #include @@ -36,6 +37,52 @@ static bool is_dir(const char *path) return S_ISDIR(st.st_mode); } +/* return true if the given two files are the same, false otherwise */ +static bool is_same(const char *file1, const char *file2) +{ + int fd1, fd2; + struct stat st1, st2; + void *map1, *map2; + bool ret = false; + + fd1 = open(file1, O_RDONLY); + if (fd1 < 0) + return ret; + + fd2 = open(file2, O_RDONLY); + if (fd2 < 0) + goto close1; + + ret = fstat(fd1, &st1); + if (ret) + goto close2; + ret = fstat(fd2, &st2); + if (ret) + goto close2; + + if (st1.st_size != st2.st_size) + goto close2; + + map1 = mmap(NULL, st1.st_size, PROT_READ, MAP_PRIVATE, fd1, 0); + if (map1 == MAP_FAILED) + goto close2; + + map2 = mmap(NULL, st2.st_size, PROT_READ, MAP_PRIVATE, fd2, 0); + if (map2 == MAP_FAILED) + goto close2; + + if (bcmp(map1, map2, st1.st_size)) + goto close2; + + ret = true; +close2: + close(fd2); +close1: + close(fd1); + + return ret; +} + /* * Create the parent directory of the given path. * @@ -130,8 +177,6 @@ static void conf_message(const char *fmt, ...) static const char *conf_filename; static int conf_lineno, conf_warnings; -const char conf_defname[] = "include/generated/defconfig"; - static void conf_warning(const char *fmt, ...) { va_list ap; @@ -179,28 +224,13 @@ const char *conf_get_configname(void) return name ? name : ".config"; } -const char *conf_get_autoconfig_name(void) +static const char *conf_get_autoconfig_name(void) { char *name = getenv("KCONFIG_AUTOCONFIG"); return name ? name : "include/generated/auto.conf"; } -char *conf_get_default_confname(void) -{ - static char fullname[PATH_MAX+1]; - char *env, *name; - - name = expand_string(conf_defname); - env = getenv(SRCTREE); - if (env) { - sprintf(fullname, "%s/%s", env, name); - if (is_present(fullname)) - return fullname; - } - return name; -} - static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p) { char *p2; @@ -504,11 +534,9 @@ int conf_read(const char *name) switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: - if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym)) - break; - if (!sym_is_choice(sym)) + if (sym->def[S_DEF_USER].tri == sym_get_tristate_value(sym)) continue; - /* fall through */ + break; default: if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val)) continue; @@ -812,7 +840,7 @@ int conf_write_defconfig(const char *filename) goto next_menu; sym->flags &= ~SYMBOL_WRITE; /* If we cannot change the symbol - skip */ - if (!sym_is_changable(sym)) + if (!sym_is_changeable(sym)) goto next_menu; /* If symbol equals to default value - skip */ if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0) @@ -863,40 +891,36 @@ int conf_write(const char *name) FILE *out; struct symbol *sym; struct menu *menu; - const char *basename; const char *str; - char dirname[PATH_MAX+1], tmpname[PATH_MAX+22], newname[PATH_MAX+8]; + char tmpname[PATH_MAX + 1], oldname[PATH_MAX + 1]; char *env; + int i; + bool need_newline = false; + + if (!name) + name = conf_get_configname(); + + if (!*name) { + fprintf(stderr, "config name is empty\n"); + return -1; + } + + if (is_dir(name)) { + fprintf(stderr, "%s: Is a directory\n", name); + return -1; + } + + if (make_parent_dir(name)) + return -1; - dirname[0] = 0; - if (name && name[0]) { - char *slash; - - if (is_dir(name)) { - strcpy(dirname, name); - strcat(dirname, "/"); - basename = conf_get_configname(); - } else if ((slash = strrchr(name, '/'))) { - int size = slash - name + 1; - memcpy(dirname, name, size); - dirname[size] = 0; - if (slash[1]) - basename = slash + 1; - else - basename = conf_get_configname(); - } else - basename = name; - } else - basename = conf_get_configname(); - - sprintf(newname, "%s%s", dirname, basename); env = getenv("KCONFIG_OVERWRITECONFIG"); - if (!env || !*env) { - sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid()); - out = fopen(tmpname, "w"); - } else { + if (env && *env) { *tmpname = 0; - out = fopen(newname, "w"); + out = fopen(name, "w"); + } else { + snprintf(tmpname, sizeof(tmpname), "%s.%d.tmp", + name, (int)getpid()); + out = fopen(tmpname, "w"); } if (!out) return 1; @@ -917,12 +941,17 @@ int conf_write(const char *name) "#\n" "# %s\n" "#\n", str); - } else if (!(sym->flags & SYMBOL_CHOICE)) { + need_newline = false; + } else if (!(sym->flags & SYMBOL_CHOICE) && + !(sym->flags & SYMBOL_WRITTEN)) { sym_calc_value(sym); if (!(sym->flags & SYMBOL_WRITE)) goto next; - sym->flags &= ~SYMBOL_WRITE; - + if (need_newline) { + fprintf(out, "\n"); + need_newline = false; + } + sym->flags |= SYMBOL_WRITTEN; conf_write_symbol(out, sym, &kconfig_printer_cb, NULL); } @@ -934,6 +963,12 @@ next: if (menu->next) menu = menu->next; else while ((menu = menu->parent)) { + if (!menu->sym && menu_is_visible(menu) && + menu != &rootmenu) { + str = menu_get_prompt(menu); + fprintf(out, "# end of %s\n", str); + need_newline = true; + } if (menu->next) { menu = menu->next; break; @@ -942,15 +977,24 @@ next: } fclose(out); + for_all_symbols(i, sym) + sym->flags &= ~SYMBOL_WRITTEN; + if (*tmpname) { - strcat(dirname, basename); - strcat(dirname, ".old"); - rename(newname, dirname); - if (rename(tmpname, newname)) + if (is_same(name, tmpname)) { + conf_message("No change to %s", name); + unlink(tmpname); + sym_set_change_count(0); + return 0; + } + + snprintf(oldname, sizeof(oldname), "%s.old", name); + rename(name, oldname); + if (rename(tmpname, name)) return 1; } - conf_message("configuration written to %s", newname); + conf_message("configuration written to %s", name); sym_set_change_count(0); @@ -963,8 +1007,6 @@ static int conf_write_dep(const char *name) struct file *file; FILE *out; - if (!name) - name = ".kconfig.d"; out = fopen("..config.tmp", "w"); if (!out) return 1; @@ -1072,8 +1114,6 @@ int conf_write_autoconf(int overwrite) if (!overwrite && is_present(autoconf_name)) return 0; - sym_clear_all_valid(); - conf_write_dep("include/generated/auto.conf.cmd"); if (conf_touch_deps()) diff --git a/carl9170fw/config/expr.c b/carl9170fw/config/expr.c index 77ffff3..9f1de58 100644 --- a/carl9170fw/config/expr.c +++ b/carl9170fw/config/expr.c @@ -254,6 +254,13 @@ static int expr_eq(struct expr *e1, struct expr *e2) { int res, old_count; + /* + * A NULL expr is taken to be yes, but there's also a different way to + * represent yes. expr_is_yes() checks for either representation. + */ + if (!e1 || !e2) + return expr_is_yes(e1) && expr_is_yes(e2); + if (e1->type != e2->type) return 0; switch (e1->type) { diff --git a/carl9170fw/config/expr.h b/carl9170fw/config/expr.h index 999edb6..017843c 100644 --- a/carl9170fw/config/expr.h +++ b/carl9170fw/config/expr.h @@ -141,6 +141,7 @@ struct symbol { #define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */ #define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */ #define SYMBOL_CHANGED 0x0400 /* ? */ +#define SYMBOL_WRITTEN 0x0800 /* track info to avoid double-write to .config */ #define SYMBOL_NO_WRITE 0x1000 /* Symbol for internal use only; it will not be written */ #define SYMBOL_CHECKED 0x2000 /* used during dependency checking */ #define SYMBOL_WARNED 0x8000 /* warning has been issued */ @@ -172,7 +173,7 @@ struct symbol { * int "BAZ Value" * range 1..255 * - * Please, also check zconf.y:print_symbol() when modifying the + * Please, also check parser.y:print_symbol() when modifying the * list of property types! */ enum prop_type { diff --git a/carl9170fw/config/zconf.l b/carl9170fw/config/lexer.l similarity index 99% rename from carl9170fw/config/zconf.l rename to carl9170fw/config/lexer.l index c52cce8..8aa0197 100644 --- a/carl9170fw/config/zconf.l +++ b/carl9170fw/config/lexer.l @@ -15,7 +15,7 @@ #include #include "lkc.h" -#include "zconf.tab.h" +#include "parser.tab.h" #define YY_DECL static int yylex1(void) @@ -378,7 +378,8 @@ FILE *zconf_fopen(const char *name) if (!f && name != NULL && name[0] != '/') { env = getenv(SRCTREE); if (env) { - sprintf(fullname, "%s/%s", env, name); + snprintf(fullname, sizeof(fullname), + "%s/%s", env, name); f = fopen(fullname, "r"); } } diff --git a/carl9170fw/config/lkc.h b/carl9170fw/config/lkc.h index 531ff7c..4fb16f3 100644 --- a/carl9170fw/config/lkc.h +++ b/carl9170fw/config/lkc.h @@ -49,8 +49,6 @@ const char *zconf_curname(void); /* confdata.c */ const char *conf_get_configname(void); -const char *conf_get_autoconfig_name(void); -char *conf_get_default_confname(void); void sym_set_change_count(int count); void sym_add_change_count(int count); bool conf_set_all_new_symbols(enum conf_def_mode mode); @@ -90,7 +88,7 @@ void *xrealloc(void *p, size_t size); char *xstrdup(const char *s); char *xstrndup(const char *s, size_t n); -/* zconf.l */ +/* lexer.l */ int yylex(void); struct gstr { diff --git a/carl9170fw/config/lkc_proto.h b/carl9170fw/config/lkc_proto.h index 86c2675..f9ab982 100644 --- a/carl9170fw/config/lkc_proto.h +++ b/carl9170fw/config/lkc_proto.h @@ -42,7 +42,7 @@ tristate sym_toggle_tristate_value(struct symbol *sym); bool sym_string_valid(struct symbol *sym, const char *newval); bool sym_string_within_range(struct symbol *sym, const char *str); bool sym_set_string_value(struct symbol *sym, const char *newval); -bool sym_is_changable(struct symbol *sym); +bool sym_is_changeable(struct symbol *sym); struct property * sym_get_choice_prop(struct symbol *sym); const char * sym_get_string_value(struct symbol *sym); @@ -58,7 +58,6 @@ void env_write_dep(FILE *f, const char *auto_conf_name); void variable_add(const char *name, const char *value, enum variable_flavor flavor); void variable_all_del(void); -char *expand_string(const char *in); char *expand_dollar(const char **str); char *expand_one_token(const char **str); diff --git a/carl9170fw/config/zconf.y b/carl9170fw/config/parser.y similarity index 99% rename from carl9170fw/config/zconf.y rename to carl9170fw/config/parser.y index 60936c7..b3eff96 100644 --- a/carl9170fw/config/zconf.y +++ b/carl9170fw/config/parser.y @@ -727,5 +727,4 @@ void zconfdump(FILE *out) } } -#include "util.c" #include "menu.c" diff --git a/carl9170fw/config/preprocess.c b/carl9170fw/config/preprocess.c index 592dfbf..0243086 100644 --- a/carl9170fw/config/preprocess.c +++ b/carl9170fw/config/preprocess.c @@ -15,6 +15,7 @@ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) static char *expand_string_with_args(const char *in, int argc, char *argv[]); +static char *expand_string(const char *in); static void __attribute__((noreturn)) pperror(const char *format, ...) { @@ -550,7 +551,7 @@ static char *expand_string_with_args(const char *in, int argc, char *argv[]) return __expand_string(&in, is_end_of_str, argc, argv); } -char *expand_string(const char *in) +static char *expand_string(const char *in) { return expand_string_with_args(in, 0, NULL); } diff --git a/carl9170fw/config/symbol.c b/carl9170fw/config/symbol.c index 1f9266d..f56eec5 100644 --- a/carl9170fw/config/symbol.c +++ b/carl9170fw/config/symbol.c @@ -785,7 +785,7 @@ const char *sym_get_string_value(struct symbol *sym) return (const char *)sym->curr.val; } -bool sym_is_changable(struct symbol *sym) +bool sym_is_changeable(struct symbol *sym) { return sym->visible > sym->rev_dep.tri; } @@ -1114,7 +1114,7 @@ static void sym_check_print_recursive(struct symbol *last_sym) } fprintf(stderr, - "For a resolution refer to Documentation/kbuild/kconfig-language.txt\n" + "For a resolution refer to Documentation/kbuild/kconfig-language.rst\n" "subsection \"Kconfig recursive dependency limitations\"\n" "\n"); diff --git a/carl9170fw/toolchain/Makefile b/carl9170fw/toolchain/Makefile index 43e546d..6f53563 100644 --- a/carl9170fw/toolchain/Makefile +++ b/carl9170fw/toolchain/Makefile @@ -1,26 +1,26 @@ -BINUTILS_VER=2.32 +BINUTILS_VER=2.34 BINUTILS_TAR=binutils-$(BINUTILS_VER).tar.xz -BINUTILS_URL="https://ftp.gnu.org/gnu/binutils/$(BINUTILS_TAR)" +BINUTILS_URL="http://ftpmirror.gnu.org/gnu/binutils/$(BINUTILS_TAR)" -NEWLIB_VER=3.1.0 +NEWLIB_VER=3.3.0 NEWLIB_TAR=newlib-$(NEWLIB_VER).tar.gz NEWLIB_URL="ftp://sourceware.org/pub/newlib/$(NEWLIB_TAR)" -GCC_VER=9.1.0 +GCC_VER=10.2.0 GCC_TAR=gcc-$(GCC_VER).tar.xz -GCC_URL="https://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VER)/$(GCC_TAR)" +GCC_URL="http://ftpmirror.gnu.org/gnu/gcc/gcc-$(GCC_VER)/$(GCC_TAR)" MPFR_VER=4.0.2 MPFR_TAR=mpfr-$(MPFR_VER).tar.xz -MPFR_URL="https://ftp.gnu.org/gnu/mpfr/$(MPFR_TAR)" +MPFR_URL="http://ftpmirror.gnu.org/gnu/mpfr/$(MPFR_TAR)" -GMP_VER=6.1.2 +GMP_VER=6.2.0 GMP_TAR=gmp-$(GMP_VER).tar.xz -GMP_URL="https://ftp.gnu.org/gnu/gmp/$(GMP_TAR)" +GMP_URL="http://ftpmirror.gnu.org/gnu/gmp/$(GMP_TAR)" MPC_VER=1.1.0 MPC_TAR=mpc-$(MPC_VER).tar.gz -MPC_URL="https://ftp.gnu.org/gnu/mpc/$(MPC_TAR)" +MPC_URL="http://ftpmirror.gnu.org/gnu/mpc/$(MPC_TAR)" JOBS?=$(shell grep -c ^processor /proc/cpuinfo) diff --git a/carl9170fw/toolchain/SHA256SUMS b/carl9170fw/toolchain/SHA256SUMS index 3a53959..5fcebf4 100644 --- a/carl9170fw/toolchain/SHA256SUMS +++ b/carl9170fw/toolchain/SHA256SUMS @@ -1,6 +1,6 @@ -87b565e89a9a684fe4ebeeddb8399dce2599f9c9049854ca8c0dfbdea0e21912 src/gmp-6.1.2.tar.xz 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e src/mpc-1.1.0.tar.gz -fb4fa1cc21e9060719208300a61420e4089d6de6ef59cf533b57fe74801d102a src/newlib-3.1.0.tar.gz 1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a src/mpfr-4.0.2.tar.xz -0ab6c55dd86a92ed561972ba15b9b70a8b9f75557f896446c82e8b36e473ee04 src/binutils-2.32.tar.xz -79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0 src/gcc-9.1.0.tar.xz +f00b0e8803dc9bab1e2165bd568528135be734df3fabf8d0161828cd56028952 src/binutils-2.34.tar.xz +258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526 src/gmp-6.2.0.tar.xz +58dd9e3eaedf519360d92d84205c3deef0b3fc286685d1c562e245914ef72c66 src/newlib-3.3.0.tar.gz +b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c src/gcc-10.2.0.tar.xz -- 2.31.1