svn commit: r364266 - stable/11/sbin/ifconfig
Author: eugen Date: Sun Aug 16 02:05:18 2020 New Revision: 364266 URL: https://svnweb.freebsd.org/changeset/base/364266 Log: MFC r364186: ifconfig(8): plug memory leak Modified: stable/11/sbin/ifconfig/ifconfig.c Modified: stable/11/sbin/ifconfig/ifconfig.c == --- stable/11/sbin/ifconfig/ifconfig.c Sun Aug 16 02:04:35 2020 (r364265) +++ stable/11/sbin/ifconfig/ifconfig.c Sun Aug 16 02:05:18 2020 (r364266) @@ -714,6 +714,7 @@ group_member(const char *ifname, const char *match, co if (nomatch) nomatched &= fnmatch(nomatch, ifg->ifgrq_group, 0); } + free(ifgr.ifgr_groups); if (match && !nomatch) return (matched); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364265 - stable/12/sbin/ifconfig
Author: eugen Date: Sun Aug 16 02:04:35 2020 New Revision: 364265 URL: https://svnweb.freebsd.org/changeset/base/364265 Log: MFC r364186: ifconfig(8): plug memory leak Modified: stable/12/sbin/ifconfig/ifconfig.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/ifconfig/ifconfig.c == --- stable/12/sbin/ifconfig/ifconfig.c Sat Aug 15 22:59:44 2020 (r364264) +++ stable/12/sbin/ifconfig/ifconfig.c Sun Aug 16 02:04:35 2020 (r364265) @@ -748,6 +748,7 @@ group_member(const char *ifname, const char *match, co if (nomatch) nomatched &= fnmatch(nomatch, ifg->ifgrq_group, 0); } + free(ifgr.ifgr_groups); if (match && !nomatch) return (matched); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364262 - head/sbin/fsck_ffs
Author: mckusick Date: Sat Aug 15 21:40:36 2020 New Revision: 364262 URL: https://svnweb.freebsd.org/changeset/base/364262 Log: Use the sbput() function to write alternate superblocks so that they get a checkhash. PR: 246983 Sponsored by: Netflix Modified: head/sbin/fsck_ffs/main.c Modified: head/sbin/fsck_ffs/main.c == --- head/sbin/fsck_ffs/main.c Sat Aug 15 19:45:50 2020(r364261) +++ head/sbin/fsck_ffs/main.c Sat Aug 15 21:40:36 2020(r364262) @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -604,10 +605,8 @@ checkfilesys(char *filesys) /* * Write out the duplicate super blocks */ - for (cylno = 0; cylno < sblock.fs_ncg; cylno++) - blwrite(fswritefd, (char *)&sblock, - fsbtodb(&sblock, cgsblock(&sblock, cylno)), - SBLOCKSIZE); + if (sbput(fswritefd, &sblock, sblock.fs_ncg) == 0) + fsmodified = 1; } if (rerun) resolved = 0; ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364261 - head/sys/kern
Author: cem Date: Sat Aug 15 19:45:50 2020 New Revision: 364261 URL: https://svnweb.freebsd.org/changeset/base/364261 Log: witness(4): Print stack of prior observed lock order on reversal The first time Witness observes a lock order between two locks, it records the caller's stack. On detected reversal, print out that previous observed stack. It is quite possible that the reported "LOR" is the correct ordering, and the violation was the observed earlier ordering. Reviewed by: mjg Differential Revision:https://reviews.freebsd.org/D26070 Modified: head/sys/kern/subr_witness.c Modified: head/sys/kern/subr_witness.c == --- head/sys/kern/subr_witness.cSat Aug 15 18:46:26 2020 (r364260) +++ head/sys/kern/subr_witness.cSat Aug 15 19:45:50 2020 (r364261) @@ -338,6 +338,7 @@ static void witness_ddb_display_list(int(*prnt)(const static voidwitness_ddb_level_descendants(struct witness *parent, int l); static voidwitness_ddb_list(struct thread *td); #endif +static voidwitness_enter_debugger(const char *msg); static voidwitness_debugger(int cond, const char *msg); static voidwitness_free(struct witness *m); static struct witness *witness_get(void); @@ -358,6 +359,8 @@ static struct witness_lock_order_data *witness_lock_or static voidwitness_list_lock(struct lock_instance *instance, int (*prnt)(const char *fmt, ...)); static int witness_output(const char *fmt, ...) __printflike(1, 2); +static int witness_output_drain(void *arg __unused, const char *data, + int len); static int witness_voutput(const char *fmt, va_list ap) __printflike(1, 0); static voidwitness_setflag(struct lock_object *lock, int flag, int set); @@ -1281,6 +1284,8 @@ witness_checkorder(struct lock_object *lock, int flags for (j = 0, lle = lock_list; lle != NULL; lle = lle->ll_next) { for (i = lle->ll_count - 1; i >= 0; i--, j++) { + struct stack pstack; + bool pstackv, trace; MPASS(j < LOCK_CHILDCOUNT * LOCK_NCHILDREN); lock1 = &lle->ll_children[i]; @@ -1367,6 +1372,19 @@ witness_checkorder(struct lock_object *lock, int flags */ if (blessed(w, w1)) goto out; + + trace = atomic_load_int(&witness_trace); + if (trace) { + struct witness_lock_order_data *data; + + pstackv = false; + data = witness_lock_order_get(w, w1); + if (data != NULL) { + stack_copy(&data->wlod_stack, + &pstack); + pstackv = true; + } + } mtx_unlock_spin(&w_mtx); #ifdef WITNESS_NO_VNODE @@ -1413,28 +1431,60 @@ witness_checkorder(struct lock_object *lock, int flags i--; } while (i >= 0); if (i < 0) { - witness_output(" 1st %p %s (%s) @ %s:%d\n", + witness_output(" 1st %p %s (%s, %s) @ %s:%d\n", lock1->li_lock, lock1->li_lock->lo_name, - w1->w_name, fixup_filename(lock1->li_file), + w1->w_name, w1->w_class->lc_name, + fixup_filename(lock1->li_file), lock1->li_line); - witness_output(" 2nd %p %s (%s) @ %s:%d\n", lock, - lock->lo_name, w->w_name, - fixup_filename(file), line); + witness_output(" 2nd %p %s (%s, %s) @ %s:%d\n", + lock, lock->lo_name, w->w_name, + w->w_class->lc_name, fixup_filename(file), + line); } else { - witness_output(" 1st %p %s (%s) @ %s:%d\n", + struct witness *w2 = lock2->li_lock->lo_witness; + + witness_output(" 1st %p %s (%s, %s) @ %s:%d\n", lock2->li_lock, lock2->li_lock->lo_name, - lock2->li_lock->lo_witness->w_name, + w2->w_name, w2->w_class->lc_name, fixup_filename(lock2->li_file), lock2->li_line); - witness_output(
svn commit: r364260 - head/sys/contrib/pcg-c/include
Author: cem Date: Sat Aug 15 18:46:26 2020 New Revision: 364260 URL: https://svnweb.freebsd.org/changeset/base/364260 Log: pcg-c: Add 'static' to inline function definitions Make the inlines static to avoid kernel build failure with Clang 11 on i386. (The issue was not observed with Clang 10, currently in tree; reproduction depends on compiler inlining choices.) The compiler may choose not to inline 'bare' C inlines, and in that case expects a symbol of the same name will be available. It does not automatically define that symbol at use, because of traditional C linking semantics. (In contrast, C++ does define it, and then deduplicates redundant definitions at link). As we do not instantiate the C99 inline ('extern inline ...;'), the linker errors with "undefined symbol." Reported by: dim Tested by:dim Fixes:r364219 Modified: head/sys/contrib/pcg-c/include/pcg_variants.h Modified: head/sys/contrib/pcg-c/include/pcg_variants.h == --- head/sys/contrib/pcg-c/include/pcg_variants.h Sat Aug 15 17:18:36 2020(r364259) +++ head/sys/contrib/pcg-c/include/pcg_variants.h Sat Aug 15 18:46:26 2020(r364260) @@ -53,7 +53,7 @@ extern "C" { * Rotate helper functions. */ -inline uint8_t pcg_rotr_8(uint8_t value, unsigned int rot) +static inline uint8_t pcg_rotr_8(uint8_t value, unsigned int rot) { /* Unfortunately, clang is kinda pathetic when it comes to properly * recognizing idiomatic rotate code, so for clang we actually provide @@ -67,7 +67,7 @@ inline uint8_t pcg_rotr_8(uint8_t value, unsigned int #endif } -inline uint16_t pcg_rotr_16(uint16_t value, unsigned int rot) +static inline uint16_t pcg_rotr_16(uint16_t value, unsigned int rot) { #if PCG_USE_INLINE_ASM && defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) __asm__ ("rorw %%cl, %0" : "=r" (value) : "0" (value), "c" (rot)); @@ -77,7 +77,7 @@ inline uint16_t pcg_rotr_16(uint16_t value, unsigned i #endif } -inline uint32_t pcg_rotr_32(uint32_t value, unsigned int rot) +static inline uint32_t pcg_rotr_32(uint32_t value, unsigned int rot) { #if PCG_USE_INLINE_ASM && defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) __asm__ ("rorl %%cl, %0" : "=r" (value) : "0" (value), "c" (rot)); @@ -87,7 +87,7 @@ inline uint32_t pcg_rotr_32(uint32_t value, unsigned i #endif } -inline uint64_t pcg_rotr_64(uint64_t value, unsigned int rot) +static inline uint64_t pcg_rotr_64(uint64_t value, unsigned int rot) { #if 0 && PCG_USE_INLINE_ASM && defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) /* For whatever reason, clang actually *does* generate rotq by @@ -100,7 +100,7 @@ inline uint64_t pcg_rotr_64(uint64_t value, unsigned i } #if PCG_HAS_128BIT_OPS -inline pcg128_t pcg_rotr_128(pcg128_t value, unsigned int rot) +static inline pcg128_t pcg_rotr_128(pcg128_t value, unsigned int rot) { return (value >> rot) | (value << ((- rot) & 127)); } @@ -112,24 +112,24 @@ inline pcg128_t pcg_rotr_128(pcg128_t value, unsigned /* XSH RS */ -inline uint8_t pcg_output_xsh_rs_16_8(uint16_t state) +static inline uint8_t pcg_output_xsh_rs_16_8(uint16_t state) { return (uint8_t)(((state >> 7u) ^ state) >> ((state >> 14u) + 3u)); } -inline uint16_t pcg_output_xsh_rs_32_16(uint32_t state) +static inline uint16_t pcg_output_xsh_rs_32_16(uint32_t state) { return (uint16_t)(((state >> 11u) ^ state) >> ((state >> 30u) + 11u)); } -inline uint32_t pcg_output_xsh_rs_64_32(uint64_t state) +static inline uint32_t pcg_output_xsh_rs_64_32(uint64_t state) { return (uint32_t)(((state >> 22u) ^ state) >> ((state >> 61u) + 22u)); } #if PCG_HAS_128BIT_OPS -inline uint64_t pcg_output_xsh_rs_128_64(pcg128_t state) +static inline uint64_t pcg_output_xsh_rs_128_64(pcg128_t state) { return (uint64_t)(((state >> 43u) ^ state) >> ((state >> 124u) + 45u)); } @@ -137,23 +137,23 @@ inline uint64_t pcg_output_xsh_rs_128_64(pcg128_t stat /* XSH RR */ -inline uint8_t pcg_output_xsh_rr_16_8(uint16_t state) +static inline uint8_t pcg_output_xsh_rr_16_8(uint16_t state) { return pcg_rotr_8(((state >> 5u) ^ state) >> 5u, state >> 13u); } -inline uint16_t pcg_output_xsh_rr_32_16(uint32_t state) +static inline uint16_t pcg_output_xsh_rr_32_16(uint32_t state) { return pcg_rotr_16(((state >> 10u) ^ state) >> 12u, state >> 28u); } -inline uint32_t pcg_output_xsh_rr_64_32(uint64_t state) +static inline uint32_t pcg_output_xsh_rr_64_32(uint64_t state) { return pcg_rotr_32(((state >> 18u) ^ state) >> 27u, state >> 59u); } #if PCG_HAS_128BIT_OPS -inline uint64_t pcg_output_xsh_rr_128_64(pcg128_t state) +static inline uint64_t pcg_output_xsh_rr_128_64(pcg128_t state) { return pcg_rotr_64(((state >> 35u) ^ state) >> 58u, state >> 122u); } @@ -161,25 +161,25 @@ inline uint64_t pcg_output_xsh_rr_12
svn commit: r364259 - stable/12/share/man/man4
Author: trasz Date: Sat Aug 15 17:18:36 2020 New Revision: 364259 URL: https://svnweb.freebsd.org/changeset/base/364259 Log: MFC r354139: Document the fact that Linux binaries depend on pty(4). Sponsored by: The FreeBSD Foundation Modified: stable/12/share/man/man4/linux.4 stable/12/share/man/man4/pty.4 Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/linux.4 == --- stable/12/share/man/man4/linux.4Sat Aug 15 17:02:23 2020 (r364258) +++ stable/12/share/man/man4/linux.4Sat Aug 15 17:18:36 2020 (r364259) @@ -139,6 +139,7 @@ limited Linux system file system .El .Sh SEE ALSO .Xr brandelf 1 , +.Xr pty 4 , .Xr elf 5 , .Xr fdescfs 5 , .Xr linprocfs 5 , Modified: stable/12/share/man/man4/pty.4 == --- stable/12/share/man/man4/pty.4 Sat Aug 15 17:02:23 2020 (r364258) +++ stable/12/share/man/man4/pty.4 Sat Aug 15 17:18:36 2020 (r364259) @@ -27,19 +27,21 @@ .\" .\" $FreeBSD$ .\" -.Dd August 20, 2008 +.Dd October 28, 2019 .Dt PTY 4 .Os .Sh NAME .Nm pty -.Nd BSD-style and System V-style compatibility pseudo-terminal driver +.Nd old-style compatibility pseudo-terminal driver .Sh SYNOPSIS .Cd "device pty" .Sh DESCRIPTION The .Nm driver provides support for the traditional BSD naming scheme that was -used for accessing pseudo-terminals. +used for accessing pseudo-terminals before it was replaced by +.Xr pts 4 . +This traditional naming is still used in Linux. When the device .Pa /dev/ptyXX is being opened, a new terminal shall be created with the @@ -59,7 +61,8 @@ interface. It is only provided for compatibility with older C libraries that tried to open such devices when .Xr posix_openpt 2 -was being called. +was being called, +and for running Linux binaries. .Sh FILES The BSD-style compatibility pseudo-terminal driver uses the following device names: ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364258 - stable/12/sys/amd64/linux
Author: trasz Date: Sat Aug 15 17:02:23 2020 New Revision: 364258 URL: https://svnweb.freebsd.org/changeset/base/364258 Log: MFC r351783: Unbreak Linux binaries linked against new glibc, such as the ones from recent Ubuntu versions. Without it they segfault on startup. Sponsored by: The FreeBSD Foundation Modified: stable/12/sys/amd64/linux/linux_sysvec.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/amd64/linux/linux_sysvec.c == --- stable/12/sys/amd64/linux/linux_sysvec.cSat Aug 15 16:48:58 2020 (r364257) +++ stable/12/sys/amd64/linux/linux_sysvec.cSat Aug 15 17:02:23 2020 (r364258) @@ -357,6 +357,12 @@ linux_copyout_strings(struct image_params *imgp) */ vectp -= imgp->args->argc + 1 + imgp->args->envc + 1; + /* +* Starting with 2.24, glibc depends on a 16-byte stack alignment. +* One "long argc" will be prepended later. +*/ + vectp = (char **)uintptr_t)vectp + 8) & ~0xF) - 8); + /* vectp also becomes our initial stack base. */ stack_base = (register_t *)vectp; ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364257 - head/sys/net
Author: qingli Date: Sat Aug 15 16:48:58 2020 New Revision: 364257 URL: https://svnweb.freebsd.org/changeset/base/364257 Log: Correct the mask byte order when checking for reserved bits. Reviewed by: gnn Approved by: gnn MFC after:2 weeks Differential Revision:https://reviews.freebsd.org/D26071 Modified: head/sys/net/if_vxlan.c Modified: head/sys/net/if_vxlan.c == --- head/sys/net/if_vxlan.c Sat Aug 15 16:15:34 2020(r364256) +++ head/sys/net/if_vxlan.c Sat Aug 15 16:48:58 2020(r364257) @@ -2545,7 +2545,7 @@ vxlan_rcv_udp_packet(struct mbuf *m, int offset, struc * the behavior of the Linux implementation. */ if (vxh->vxlh_flags != htonl(VXLAN_HDR_FLAGS_VALID_VNI) || - vxh->vxlh_vni & ~htonl(VXLAN_VNI_MASK)) + vxh->vxlh_vni & ~VXLAN_VNI_MASK) goto out; vni = ntohl(vxh->vxlh_vni) >> VXLAN_HDR_VNI_SHIFT; ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364256 - head/sys/riscv/riscv
Author: mhorne Date: Sat Aug 15 16:15:34 2020 New Revision: 364256 URL: https://svnweb.freebsd.org/changeset/base/364256 Log: RISC-V: copy kernelname from the environment This is allows kern.bootfile to report the correct value. Modified: head/sys/riscv/riscv/machdep.c Modified: head/sys/riscv/riscv/machdep.c == --- head/sys/riscv/riscv/machdep.c Sat Aug 15 15:06:39 2020 (r364255) +++ head/sys/riscv/riscv/machdep.c Sat Aug 15 16:15:34 2020 (r364256) @@ -861,6 +861,7 @@ initriscv(struct riscv_bootparams *rvbp) phandle_t chosen; uint32_t hart; #endif + char *env; TSRAW(&thread0, TS_ENTER, __func__, NULL); @@ -954,6 +955,10 @@ initriscv(struct riscv_bootparams *rvbp) mutex_init(); init_param2(physmem); kdb_init(); + + env = kern_getenv("kernelname"); + if (env != NULL) + strlcpy(kernelname, env, sizeof(kernelname)); if (boothowto & RB_VERBOSE) physmem_print_tables(); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364255 - head/sys/arm64/arm64
Author: mhorne Date: Sat Aug 15 15:06:39 2020 New Revision: 364255 URL: https://svnweb.freebsd.org/changeset/base/364255 Log: arm64: parse HWCAP values using user_cpu_desc The hard work of parsing fields per-CPU, handling heterogeneous features, and excluding features from userspace is already done by update_special_regs. We can build our set of HWCAPs from the result. This exposed a small bug in update_special_regs, in which the generated bitmask was not wide enough, and as a result some bits weren't being exposed in user_cpu_desc. Fix this. While here, adjust some formatting. Reviewed by: andrew MFC after:2 weeks Sponsored by: The FreeBSD Foundation Differential Revision:https://reviews.freebsd.org/D26069 Modified: head/sys/arm64/arm64/identcpu.c Modified: head/sys/arm64/arm64/identcpu.c == --- head/sys/arm64/arm64/identcpu.c Sat Aug 15 14:57:53 2020 (r364254) +++ head/sys/arm64/arm64/identcpu.c Sat Aug 15 15:06:39 2020 (r364255) @@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$"); #include static void print_cpu_features(u_int cpu); -static u_long parse_cpu_features_hwcap(u_int cpu); +static u_long parse_cpu_features_hwcap(void); char machine[] = "arm64"; @@ -1095,7 +1095,7 @@ update_special_regs(u_int cpu) for (j = 0; fields[j].type != 0; j++) { switch (fields[j].type & MRS_TYPE_MASK) { case MRS_EXACT: - user_reg &= ~(0xfu << fields[j].shift); + user_reg &= ~(0xful << fields[j].shift); user_reg |= (uint64_t)MRS_EXACT_FIELD(fields[j].type) << fields[j].shift; @@ -1131,7 +1131,6 @@ static void identify_cpu_sysinit(void *dummy __unused) { int cpu; - u_long hwcap; bool dic, idc; dic = (allow_dic != 0); @@ -1139,11 +1138,6 @@ identify_cpu_sysinit(void *dummy __unused) CPU_FOREACH(cpu) { check_cpu_regs(cpu); - hwcap = parse_cpu_features_hwcap(cpu); - if (elf_hwcap == 0) - elf_hwcap = hwcap; - else - elf_hwcap &= hwcap; if (cpu != 0) update_special_regs(cpu); @@ -1153,6 +1147,9 @@ identify_cpu_sysinit(void *dummy __unused) idc = false; } + /* Exposed to userspace as AT_HWCAP */ + elf_hwcap = parse_cpu_features_hwcap(); + if (dic && idc) { arm64_icache_sync_range = &arm64_dic_idc_icache_sync_range; if (bootverbose) @@ -1184,43 +1181,49 @@ cpu_features_sysinit(void *dummy __unused) SYSINIT(cpu_features, SI_SUB_SMP, SI_ORDER_ANY, cpu_features_sysinit, NULL); static u_long -parse_cpu_features_hwcap(u_int cpu) +parse_cpu_features_hwcap(void) { u_long hwcap = 0; - if (ID_AA64ISAR0_DP_VAL(cpu_desc[cpu].id_aa64isar0) == ID_AA64ISAR0_DP_IMPL) + if (ID_AA64ISAR0_DP_VAL(user_cpu_desc.id_aa64isar0) == + ID_AA64ISAR0_DP_IMPL) hwcap |= HWCAP_ASIMDDP; - if (ID_AA64ISAR0_SM4_VAL(cpu_desc[cpu].id_aa64isar0) == ID_AA64ISAR0_SM4_IMPL) + if (ID_AA64ISAR0_SM4_VAL(user_cpu_desc.id_aa64isar0) == + ID_AA64ISAR0_SM4_IMPL) hwcap |= HWCAP_SM4; - if (ID_AA64ISAR0_SM3_VAL(cpu_desc[cpu].id_aa64isar0) == ID_AA64ISAR0_SM3_IMPL) + if (ID_AA64ISAR0_SM3_VAL(user_cpu_desc.id_aa64isar0) == + ID_AA64ISAR0_SM3_IMPL) hwcap |= HWCAP_SM3; - if (ID_AA64ISAR0_RDM_VAL(cpu_desc[cpu].id_aa64isar0) == ID_AA64ISAR0_RDM_IMPL) + if (ID_AA64ISAR0_RDM_VAL(user_cpu_desc.id_aa64isar0) == + ID_AA64ISAR0_RDM_IMPL) hwcap |= HWCAP_ASIMDRDM; - if (ID_AA64ISAR0_Atomic_VAL(cpu_desc[cpu].id_aa64isar0) == ID_AA64ISAR0_Atomic_IMPL) + if (ID_AA64ISAR0_Atomic_VAL(user_cpu_desc.id_aa64isar0) == + ID_AA64ISAR0_Atomic_IMPL) hwcap |= HWCAP_ATOMICS; - if (ID_AA64ISAR0_CRC32_VAL(cpu_desc[cpu].id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) + if (ID_AA64ISAR0_CRC32_VAL(user_cpu_desc.id_aa64isar0) == + ID_AA64ISAR0_CRC32_BASE) hwcap |= HWCAP_CRC32; - switch (ID_AA64ISAR0_SHA2_VAL(cpu_desc[cpu].id_aa64isar0)) { - case ID_AA64ISAR0_SHA2_BASE: - hwcap |= HWCAP_SHA2; - break; - case ID_AA64ISAR0_SHA2_512: - hwcap |= HWCAP_SHA2 | HWCAP_SHA512; - break; + switch (ID_AA64ISAR0_SHA2_VAL(user_cpu_desc.id_aa64isar0)) { + case ID_AA64ISAR0_SHA2_BASE: + hwcap |= HWCAP_SHA2; + break; + case ID_AA64ISAR0_SHA2_512: + hwcap |= HW
svn commit: r364254 - in head/sys/arm64: arm64 include
Author: mhorne Date: Sat Aug 15 14:57:53 2020 New Revision: 364254 URL: https://svnweb.freebsd.org/changeset/base/364254 Log: arm64: update instruction set attribute register definitions This adds definitions for the latest additions to the AA64ISAR[01] ID registers. This brings these registers in sync with ARMv8.6 initial spec release. An future change will parse many of these fields for HWCAP features. Reviewed by: andrew, manu, markj (all previous versions) MFC after:2 weeks Sponsored by: The FreeBSD Foundation Differential Revision:https://reviews.freebsd.org/D26029 Modified: head/sys/arm64/arm64/identcpu.c head/sys/arm64/include/armreg.h Modified: head/sys/arm64/arm64/identcpu.c == --- head/sys/arm64/arm64/identcpu.c Sat Aug 15 12:29:55 2020 (r364253) +++ head/sys/arm64/arm64/identcpu.c Sat Aug 15 14:57:53 2020 (r364254) @@ -364,6 +364,31 @@ static struct mrs_field id_aa64dfr1_fields[] = { /* ID_AA64ISAR0_EL1 */ +static struct mrs_field_value id_aa64isar0_rndr[] = { + MRS_FIELD_VALUE(ID_AA64ISAR0_RNDR_NONE, ""), + MRS_FIELD_VALUE(ID_AA64ISAR0_RNDR_IMPL, "RNG"), + MRS_FIELD_VALUE_END, +}; + +static struct mrs_field_value id_aa64isar0_tlb[] = { + MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_NONE, ""), + MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_TLBIOS, "TLBI-OS"), + MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_TLBIOSR, "TLBI-OSR"), + MRS_FIELD_VALUE_END, +}; + +static struct mrs_field_value id_aa64isar0_ts[] = { + MRS_FIELD_VALUE(ID_AA64ISAR0_TS_NONE, ""), + MRS_FIELD_VALUE(ID_AA64ISAR0_TS_CondM_8_4, "CondM-8.4"), + MRS_FIELD_VALUE(ID_AA64ISAR0_TS_CondM_8_5, "CondM-8.5"), + MRS_FIELD_VALUE_END, +}; + +static struct mrs_field_value id_aa64isar0_fhm[] = { + MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, FHM, NONE, IMPL), + MRS_FIELD_VALUE_END, +}; + static struct mrs_field_value id_aa64isar0_dp[] = { MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, DP, NONE, IMPL), MRS_FIELD_VALUE_END, @@ -417,6 +442,10 @@ static struct mrs_field_value id_aa64isar0_aes[] = { }; static struct mrs_field id_aa64isar0_fields[] = { + MRS_FIELD(ID_AA64ISAR0, RNDR, false, MRS_LOWER, id_aa64isar0_rndr), + MRS_FIELD(ID_AA64ISAR0, TLB, false, MRS_LOWER, id_aa64isar0_tlb), + MRS_FIELD(ID_AA64ISAR0, TS, false, MRS_LOWER, id_aa64isar0_ts), + MRS_FIELD(ID_AA64ISAR0, FHM, false, MRS_LOWER, id_aa64isar0_fhm), MRS_FIELD(ID_AA64ISAR0, DP, false, MRS_LOWER, id_aa64isar0_dp), MRS_FIELD(ID_AA64ISAR0, SM4, false, MRS_LOWER, id_aa64isar0_sm4), MRS_FIELD(ID_AA64ISAR0, SM3, false, MRS_LOWER, id_aa64isar0_sm3), @@ -432,6 +461,37 @@ static struct mrs_field id_aa64isar0_fields[] = { /* ID_AA64ISAR1_EL1 */ +static struct mrs_field_value id_aa64isar1_i8mm[] = { + MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, I8MM, NONE, IMPL), + MRS_FIELD_VALUE_END, +}; + +static struct mrs_field_value id_aa64isar1_dgh[] = { + MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, DGH, NONE, IMPL), + MRS_FIELD_VALUE_END, +}; + +static struct mrs_field_value id_aa64isar1_bf16[] = { + MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, BF16, NONE, IMPL), + MRS_FIELD_VALUE_END, +}; + +static struct mrs_field_value id_aa64isar1_specres[] = { + MRS_FIELD_VALUE(ID_AA64ISAR1_SPECRES_NONE, ""), + MRS_FIELD_VALUE(ID_AA64ISAR1_SPECRES_IMPL, "PredInv"), + MRS_FIELD_VALUE_END, +}; + +static struct mrs_field_value id_aa64isar1_sb[] = { + MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, SB, NONE, IMPL), + MRS_FIELD_VALUE_END, +}; + +static struct mrs_field_value id_aa64isar1_frintts[] = { + MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, FRINTTS, NONE, IMPL), + MRS_FIELD_VALUE_END, +}; + static struct mrs_field_value id_aa64isar1_gpi[] = { MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, GPI, NONE, IMPL), MRS_FIELD_VALUE_END, @@ -443,7 +503,9 @@ static struct mrs_field_value id_aa64isar1_gpa[] = { }; static struct mrs_field_value id_aa64isar1_lrcpc[] = { - MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, LRCPC, NONE, IMPL), + MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_NONE, ""), + MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_RCPC_8_3, "RCPC-8.3"), + MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_RCPC_8_4, "RCPC-8.4"), MRS_FIELD_VALUE_END, }; @@ -463,16 +525,26 @@ static struct mrs_field_value id_aa64isar1_api[] = { }; static struct mrs_field_value id_aa64isar1_apa[] = { - MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, GPA, NONE, IMPL), + MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, APA, NONE, IMPL), MRS_FIELD_VALUE_END, }; static struct mrs_field_value id_aa64isar1_dpb[] = { - MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, DPB, NONE, IMPL), + MRS_FIELD_VALUE(ID_AA64ISAR1_DPB_NONE, ""), + MRS_FIELD_VALUE(ID_AA64ISAR1_DPB_DCCVAP, "DCPoP"), + MRS_FIELD_VALUE(ID_AA64I
svn commit: r364250 - in head/sys: net netinet6
Author: melifaro Date: Sat Aug 15 11:37:44 2020 New Revision: 364250 URL: https://svnweb.freebsd.org/changeset/base/364250 Log: Make net.inet6.ip6.deembed_scopeid behaviour default & remove sysctl. Submitted by: Neel Chauhan Differential Revision:https://reviews.freebsd.org/D25637 Modified: head/sys/net/rtsock.c head/sys/netinet6/in6.c head/sys/netinet6/scope6.c head/sys/netinet6/scope6_var.h Modified: head/sys/net/rtsock.c == --- head/sys/net/rtsock.c Sat Aug 15 11:28:01 2020(r364249) +++ head/sys/net/rtsock.c Sat Aug 15 11:37:44 2020(r364250) @@ -900,7 +900,7 @@ route_output(struct mbuf *m, struct socket *so, ...) error = lla_rt_output(rtm, &info); #ifdef INET6 if (error == 0) - rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; + rti_need_deembed = 1; #endif goto flush; } @@ -915,7 +915,7 @@ route_output(struct mbuf *m, struct socket *so, ...) error = rib_action(fibnum, rtm->rtm_type, &info, &rc); if (error == 0) { #ifdef INET6 - rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; + rti_need_deembed = 1; #endif rtm->rtm_index = rc.rc_nh_new->nh_ifp->if_index; nh = rc.rc_nh_new; @@ -930,7 +930,7 @@ route_output(struct mbuf *m, struct socket *so, ...) } #ifdef INET6 /* rt_msg2() will not be used when RTM_DELETE fails. */ - rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; + rti_need_deembed = 1; #endif break; @@ -1192,7 +1192,7 @@ rtsock_msg_mbuf(int type, struct rt_addrinfo *rtinfo) rtinfo->rti_addrs |= (1 << i); dlen = SA_SIZE(sa); #ifdef INET6 - if (V_deembed_scopeid && sa->sa_family == AF_INET6) { + if (sa->sa_family == AF_INET6) { sin6 = (struct sockaddr_in6 *)&ss; bcopy(sa, sin6, sizeof(*sin6)); if (sa6_recoverscope(sin6) == 0) @@ -1298,7 +1298,7 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo dlen = SA_SIZE(sa); if (cp != NULL && buflen >= dlen) { #ifdef INET6 - if (V_deembed_scopeid && sa->sa_family == AF_INET6) { + if (sa->sa_family == AF_INET6) { sin6 = (struct sockaddr_in6 *)&ss; bcopy(sa, sin6, sizeof(*sin6)); if (sa6_recoverscope(sin6) == 0) Modified: head/sys/netinet6/in6.c == --- head/sys/netinet6/in6.c Sat Aug 15 11:28:01 2020(r364249) +++ head/sys/netinet6/in6.c Sat Aug 15 11:37:44 2020(r364250) @@ -2374,8 +2374,7 @@ in6_lltable_dump_entry(struct lltable *llt, struct lle ndpc.rtm.rtm_type = RTM_GET; ndpc.rtm.rtm_flags = RTF_UP; ndpc.rtm.rtm_addrs = RTA_DST | RTA_GATEWAY; - if (V_deembed_scopeid) - sa6_recoverscope(&ndpc.sin6); + sa6_recoverscope(&ndpc.sin6); /* publish */ if (lle->la_flags & LLE_PUB) Modified: head/sys/netinet6/scope6.c == --- head/sys/netinet6/scope6.c Sat Aug 15 11:28:01 2020(r364249) +++ head/sys/netinet6/scope6.c Sat Aug 15 11:37:44 2020(r364250) @@ -60,11 +60,7 @@ VNET_DEFINE(int, ip6_use_defzone) = 1; #else VNET_DEFINE(int, ip6_use_defzone) = 0; #endif -VNET_DEFINE(int, deembed_scopeid) = 1; SYSCTL_DECL(_net_inet6_ip6); -SYSCTL_INT(_net_inet6_ip6, OID_AUTO, deembed_scopeid, CTLFLAG_VNET | CTLFLAG_RW, -&VNET_NAME(deembed_scopeid), 0, -"Extract embedded zone ID and set it to sin6_scope_id in sockaddr_in6."); /* * The scope6_lock protects the global sid default stored in Modified: head/sys/netinet6/scope6_var.h == --- head/sys/netinet6/scope6_var.h Sat Aug 15 11:28:01 2020 (r364249) +++ head/sys/netinet6/scope6_var.h Sat Aug 15 11:37:44 2020 (r364250) @@ -47,9 +47,6 @@ struct scope6_id { uint32_t s6id_list[IPV6_ADDR_SCOPES_COUNT]; }; -VNET_DECLARE(int, deembed_scopeid); -#define V_deembed_scopeid VNET(deembed_scopeid) - void scope6_init(void); struct scope6_id *scope6_ifattach(struct ifnet *); void scope6_ifdetach(struct scope6_id *); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364249 - vendor/llvm-project/llvmorg-11.0.0-rc1-47-gff47911ddfc
Author: dim Date: Sat Aug 15 11:28:01 2020 New Revision: 364249 URL: https://svnweb.freebsd.org/changeset/base/364249 Log: Tag llvm-project branch release/11.x llvmorg-11.0.0-rc1-47-gff47911ddfc. Added: vendor/llvm-project/llvmorg-11.0.0-rc1-47-gff47911ddfc/ - copied from r364248, vendor/llvm-project/release-11.x/ ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364248 - in vendor/llvm-project/release-11.x: clang/lib/AST clang/lib/Serialization compiler-rt/lib/profile lld/ELF llvm/include/llvm llvm/lib/Analysis llvm/lib/CodeGen llvm/lib/CodeGe...
Author: dim Date: Sat Aug 15 11:27:21 2020 New Revision: 364248 URL: https://svnweb.freebsd.org/changeset/base/364248 Log: Vendor import of llvm-project branch release/11.x llvmorg-11.0.0-rc1-47-gff47911ddfc. Modified: vendor/llvm-project/release-11.x/clang/lib/AST/ExprConstant.cpp vendor/llvm-project/release-11.x/clang/lib/Serialization/ASTReaderDecl.cpp vendor/llvm-project/release-11.x/compiler-rt/lib/profile/InstrProfilingPort.h vendor/llvm-project/release-11.x/lld/ELF/InputSection.cpp vendor/llvm-project/release-11.x/llvm/include/llvm/module.modulemap vendor/llvm-project/release-11.x/llvm/lib/Analysis/LoopAccessAnalysis.cpp vendor/llvm-project/release-11.x/llvm/lib/CodeGen/AtomicExpandPass.cpp vendor/llvm-project/release-11.x/llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp vendor/llvm-project/release-11.x/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp vendor/llvm-project/release-11.x/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp vendor/llvm-project/release-11.x/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp vendor/llvm-project/release-11.x/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm-project/release-11.x/llvm/lib/Target/PowerPC/PPCInstrInfo.h vendor/llvm-project/release-11.x/openmp/runtime/src/kmp_lock.cpp Modified: vendor/llvm-project/release-11.x/clang/lib/AST/ExprConstant.cpp == --- vendor/llvm-project/release-11.x/clang/lib/AST/ExprConstant.cpp Sat Aug 15 11:22:07 2020(r364247) +++ vendor/llvm-project/release-11.x/clang/lib/AST/ExprConstant.cpp Sat Aug 15 11:27:21 2020(r364248) @@ -8974,6 +8974,7 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe const Expr *Init = E->getInitializer(); const InitListExpr *ResizedArrayILE = nullptr; const CXXConstructExpr *ResizedArrayCCE = nullptr; + bool ValueInit = false; QualType AllocType = E->getAllocatedType(); if (Optional ArraySize = E->getArraySize()) { @@ -9017,7 +9018,14 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe // -- the new-initializer is a braced-init-list and the number of // array elements for which initializers are provided [...] // exceeds the number of elements to initialize -if (Init && !isa(Init)) { +if (!Init) { + // No initialization is performed. +} else if (isa(Init) || + isa(Init)) { + ValueInit = true; +} else if (auto *CCE = dyn_cast(Init)) { + ResizedArrayCCE = CCE; +} else { auto *CAT = Info.Ctx.getAsConstantArrayType(Init->getType()); assert(CAT && "unexpected type for array initializer"); @@ -9040,8 +9048,6 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe // special handling for this case when we initialize. if (InitBound != AllocBound) ResizedArrayILE = cast(Init); -} else if (Init) { - ResizedArrayCCE = cast(Init); } AllocType = Info.Ctx.getConstantArrayType(AllocType, ArrayBound, nullptr, @@ -9102,7 +9108,11 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe return false; } - if (ResizedArrayILE) { + if (ValueInit) { +ImplicitValueInitExpr VIE(AllocType); +if (!EvaluateInPlace(*Val, Info, Result, &VIE)) + return false; + } else if (ResizedArrayILE) { if (!EvaluateArrayNewInitList(Info, Result, *Val, ResizedArrayILE, AllocType)) return false; Modified: vendor/llvm-project/release-11.x/clang/lib/Serialization/ASTReaderDecl.cpp == --- vendor/llvm-project/release-11.x/clang/lib/Serialization/ASTReaderDecl.cpp Sat Aug 15 11:22:07 2020(r364247) +++ vendor/llvm-project/release-11.x/clang/lib/Serialization/ASTReaderDecl.cpp Sat Aug 15 11:27:21 2020(r364248) @@ -2912,9 +2912,11 @@ static bool isSameTemplateParameter(const NamedDecl *X return false; if (TX->hasTypeConstraint() != TY->hasTypeConstraint()) return false; -if (TX->hasTypeConstraint()) { - const TypeConstraint *TXTC = TX->getTypeConstraint(); - const TypeConstraint *TYTC = TY->getTypeConstraint(); +const TypeConstraint *TXTC = TX->getTypeConstraint(); +const TypeConstraint *TYTC = TY->getTypeConstraint(); +if (!TXTC != !TYTC) + return false; +if (TXTC && TYTC) { if (TXTC->getNamedConcept() != TYTC->getNamedConcept()) return false; if (TXTC->hasExplicitTemplateArgs() != TYTC->hasExplicitTemplateArgs()) Modified: vendor/llvm-project/release-11.x/compiler-rt/lib/profile/InstrProfilingPort.h == --- vendor/llvm-project/release-11.x/compiler-rt/lib/profile/InstrProfilingPort.h Sat Aug 15 11:22:07 2020(r364247) +++ vendor/llvm-project/release-11.x/compiler-rt/lib/profile/
svn commit: r364247 - head/sys/netinet
Author: tuexen Date: Sat Aug 15 11:22:07 2020 New Revision: 364247 URL: https://svnweb.freebsd.org/changeset/base/364247 Log: Enter epoch earlier. This is needed because we are exiting it also in error cases. MFC after:1 week Modified: head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctputil.c == --- head/sys/netinet/sctputil.c Sat Aug 15 07:22:48 2020(r364246) +++ head/sys/netinet/sctputil.c Sat Aug 15 11:22:07 2020(r364247) @@ -1727,6 +1727,7 @@ sctp_timeout_handler(void *t) stcb = (struct sctp_tcb *)tmr->tcb; net = (struct sctp_nets *)tmr->net; CURVNET_SET((struct vnet *)tmr->vnet); + NET_EPOCH_ENTER(et); did_output = 1; released_asoc_reference = false; @@ -1786,7 +1787,6 @@ sctp_timeout_handler(void *t) /* Record in stopped_from which timeout occurred. */ tmr->stopped_from = type; - NET_EPOCH_ENTER(et); /* mark as being serviced now */ if (SCTP_OS_TIMER_PENDING(&tmr->timer)) { /* ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364246 - svnadmin/conf
Author: hrs Date: Sat Aug 15 07:22:48 2020 New Revision: 364246 URL: https://svnweb.freebsd.org/changeset/base/364246 Log: Revert r364244 since commit of r364245 completed. Modified: svnadmin/conf/sizelimit.conf Modified: svnadmin/conf/sizelimit.conf == --- svnadmin/conf/sizelimit.confSat Aug 15 07:19:37 2020 (r364245) +++ svnadmin/conf/sizelimit.confSat Aug 15 07:22:48 2020 (r364246) @@ -19,7 +19,6 @@ andrew bapt davidcs dim2048 -hrs imp jb jeff ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r364245 - in head/tools/tools/locale: . etc/final-maps patch tools
Author: hrs Date: Sat Aug 15 07:19:37 2020 New Revision: 364245 URL: https://svnweb.freebsd.org/changeset/base/364245 Log: - Update to Unicode CLDR v35 (Unicode 12.0). - Update tools/tools/locale to add make targets to automatically generate locale source files. With this change, just typing "make obj && make -j4" will rebuild them. Check README for more details. - Fix issues in ja_JP ctypedef and range specification support in utf8-rollup.pl. - Add a temporary patch for UnicodeData.txt to fix code ranges of CJK Ideograph Extension A and Extension B. - tools/cldr2def.pl: Use eucJP for ja_JP ctypedef because eucJP is not compatible with UTF-8. - tools/convert_map.pl: Add a verbose error message. - tools/utf8-rollup.pl: Normalize entries to use Unicode, not UTF-8. Reviewed by: bapt Differential Revision:https://reviews.freebsd.org/D25503 Added: head/tools/tools/locale/patch/ head/tools/tools/locale/patch/patch-UnicodeData.txt (contents, props changed) Modified: head/tools/tools/locale/Makefile head/tools/tools/locale/README head/tools/tools/locale/etc/final-maps/map.UTF-8 head/tools/tools/locale/tools/cldr2def.pl head/tools/tools/locale/tools/convert_map.pl head/tools/tools/locale/tools/finalize head/tools/tools/locale/tools/utf8-rollup.pl Modified: head/tools/tools/locale/Makefile == --- head/tools/tools/locale/MakefileSat Aug 15 07:16:12 2020 (r364244) +++ head/tools/tools/locale/MakefileSat Aug 15 07:19:37 2020 (r364245) @@ -7,19 +7,30 @@ # # Modified by John Marino to suit DragonFly needs # +.if ${.CURDIR} == ${.OBJDIR} +.error Do make obj first. +.endif -.OBJDIR: . +LOCALESRCDIR?= ${DESTDIR}/usr/src/share +TMPDIR?= /tmp -.if !defined(UNIDIR) -.error UNIDIR is not set -.endif -PASSON=UNIDIR="${UNIDIR}" +BASEDIR= ${.CURDIR} +ETCDIR=${BASEDIR}/etc +TOOLSDIR= ${BASEDIR}/tools +PATCHDIR= ${BASEDIR}/patch +UNIDIR=${.OBJDIR:tA}/unicode -ETCDIR=${.CURDIR}/etc +PKGS= openjdk8 \ + apache-ant \ + p5-XML-Parser \ + p5-Tie-IxHash \ + p5-Text-Iconv +tools-test: + pkg info -e ${PKGS} + @echo tools ok. KNOWN= monetdef numericdef msgdef colldef ctypedef # timedef TYPES?=${KNOWN} -LOCALE_DESTDIR?= /tmp/generated-locales/ COLLATION_SPECIAL?= \ cs_CZ ISO8859-2 \ @@ -44,67 +55,81 @@ COLLATION_SPECIAL?= \ .for area enc in ${COLLATION_SPECIAL} COLLATIONS_SPECIAL_ENV+= ${area}.${enc} .endfor -PASSON+= COLLATIONS_SPECIAL="${COLLATIONS_SPECIAL_ENV}" +SETENV=env -i \ + PATH="${PATH}" \ + TMPDIR="${TMPDIR}" \ + COLLATIONS_SPECIAL="${COLLATIONS_SPECIAL_ENV}" \ + UNIDIR="${UNIDIR}" \ + BASEDIR="${BASEDIR}" \ + TOOLSDIR="${TOOLSDIR}" \ + ETCDIR="${ETCDIR}" -all: +all: posix build afterbuild +.ORDER: posix build afterbuild + +afterbuild: build + @echo "" + @find . -name *failed + .for t in ${TYPES} . if ${KNOWN:M${t}} - test -d ${t} || mkdir ${t} - make build-${t} +build: build-${t} +.ORDER: build-${t} afterbuild . endif .endfor - @echo "" - @find . -name *failed +diff: .for t in ${TYPES} +. if ${KNOWN:M${t}} +diff: diff-${t} +diff-${t}: + -/usr/bin/diff -ruN -x Makefile -x Makefile.depend \ + ${LOCALESRCDIR}/${t} ${t} +. endif +.endfor + +install: +.for t in ${TYPES} +. if ${KNOWN:M${t}} install: install-${t} install-${t}: -. if ${KNOWN:M${t}} - rm -rf ${.CURDIR}/${t}.draft - rm -f ${.CURDIR}/../../../share/${t}/Makefile - rm -f ${.CURDIR}/../../../share/${t}/*.src - mv ${.CURDIR}/${t}/* ${.CURDIR}/../../../share/${t}/ + cd ${LOCALESRCDIR}/${t} && \ + rm -f Makefile *.src && \ + install -c ${t}/* ${LOCALESRCDIR}/${t} . endif .endfor post-install: .for t in ${TYPES} . if ${KNOWN:M${t}} - (cd ${.CURDIR}/../../../share/${t} && \ - make && make install && make clean) + cd ${LOCALSRCDIR}/${t} && \ + make && make install && make clean . endif .endfor .for t in ${TYPES} -gen-${t}: - mkdir -p ${t} ${t}.draft - perl -I tools tools/cldr2def.pl \ - --unidir=$$(realpath ${UNIDIR}) \ - --etc=$$(realpath ${ETCDIR}) \ +CLEANDIRS+=${t} ${t}.draft +${t}: + mkdir -p ${t} ${t}.draft && \ + perl -I ${TOOLSDIR} ${TOOLSDIR}/cldr2def.pl \ + --unidir=${UNIDIR:tA} \ + --etc=${ETCDIR:tA} \ --type=${t} -build-${t}: gen-${t} - env ${PASSON} tools/finalize ${t} +build-${t}: ${t} + ${SETENV} OUTBASEDIR="${.OBJDIR}/${t}" ${TOOLSDIR}/finalize ${t} .endfor -gen-ctypedef: ctype-rollup -static-colldef: gen-colldef +static-colldef:
svn commit: r364244 - svnadmin/conf
Author: hrs Date: Sat Aug 15 07:16:12 2020 New Revision: 364244 URL: https://svnweb.freebsd.org/changeset/base/364244 Log: Disable the size limitation temporarily to commit changes to tools/tools/locale. Modified: svnadmin/conf/sizelimit.conf Modified: svnadmin/conf/sizelimit.conf == --- svnadmin/conf/sizelimit.confSat Aug 15 06:24:07 2020 (r364243) +++ svnadmin/conf/sizelimit.confSat Aug 15 07:16:12 2020 (r364244) @@ -19,6 +19,7 @@ andrew bapt davidcs dim2048 +hrs imp jb jeff ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"