|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base thorpej-ifq-base thorpej-altq-separation-base
|
| #
1.86 |
|
06-Jan-2023 |
christos |
Explicitly set -z noseparate-code because the default is about to change and the boot blocks might not be able to load binaries with more than two PT_LOAD sections.
|
|
Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
| #
1.85 |
|
11-May-2020 |
joerg |
Fix GCC flags for Spectre mitigation to really only apply to GCC.
|
| #
1.84 |
|
25-Apr-2020 |
bouyer |
Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM guests in GENERIC. Xen support can be disabled at runtime with boot -c disable hypervisor
|
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
| #
1.83 |
|
13-Apr-2020 |
maxv |
Make KASAN compatible with LLVM. Same as GCC, except that LLVM aggressively inlines the shadow checks, and this causes problems at boot time; so we pass -asan-instrumentation-with-call-threshold=0 to force callbacks instead of inlines.
|
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base phil-wifi-20200406
|
| #
1.82 |
|
04-Apr-2020 |
maxv |
branches: 1.82.2; KCOV doesn't depend on specificdata and cpu_intr_p() anymore, so drop references.
|
| #
1.81 |
|
03-Apr-2020 |
maxv |
Add KASAN instrumentation on on-stack VLAs.
|
|
Revision tags: is-mlppp-base ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
|
| #
1.80 |
|
14-Nov-2019 |
maxv |
Add support for Kernel Memory Sanitizer (kMSan). It detects uninitialized memory used by the kernel at run time, and just like kASan and kCSan, it is an excellent feature. It has already detected 38 uninitialized variables in the kernel during my testing, which I have since discreetly fixed.
We use two shadows: - "shad", to track uninitialized memory with a bit granularity (1:1). Each bit set to 1 in the shad corresponds to one uninitialized bit of real kernel memory. - "orig", to track the origin of the memory with a 4-byte granularity (1:1). Each uint32_t cell in the orig indicates the origin of the associated uint32_t of real kernel memory.
The memory consumption of these shadows is consequent, so at least 4GB of RAM is recommended to run kMSan.
The compiler inserts calls to specific __msan_* functions on each memory access, to manage both the shad and the orig and detect uninitialized memory accesses that change the execution flow (like an "if" on an uninitialized variable).
We mark as uninit several types of memory buffers (stack, pools, kmem, malloc, uvm_km), and check each buffer passed to copyout, copyoutstr, bwrite, if_transmit_lock and DMA operations, to detect uninitialized memory that leaves the system. This allows us to detect kernel info leaks in a way that is more efficient and also more user-friendly than KLEAK.
Contrary to kASan, kMSan requires comprehensive coverage, ie we cannot tolerate having one non-instrumented function, because this could cause false positives. kMSan cannot instrument ASM functions, so I converted most of them to __asm__ inlines, which kMSan is able to instrument. Those that remain receive special treatment.
Contrary to kASan again, kMSan uses a TLS, so we must context-switch this TLS during interrupts. We use different contexts depending on the interrupt level.
The orig tracks precisely the origin of a buffer. We use a special encoding for the orig values, and pack together in each uint32_t cell of the orig: - a code designating the type of memory (Stack, Pool, etc), and - a compressed pointer, which points either (1) to a string containing the name of the variable associated with the cell, or (2) to an area in the kernel .text section which we resolve to a symbol name + offset.
This encoding allows us not to consume extra memory for associating information with each cell, and produces a precise output, that can tell for example the name of an uninitialized variable on the stack, the function in which it was pushed on the stack, and the function where we accessed this uninitialized variable.
kMSan is available with LLVM, but not with GCC.
The code is organized in a way that is similar to kASan and kCSan, so it means that other architectures than amd64 can be supported.
|
| #
1.79 |
|
05-Nov-2019 |
maxv |
Add Kernel Concurrency Sanitizer (kCSan) support. This sanitizer allows us to detect race conditions at runtime. It is a variation of TSan that is easy to implement and more suited to kernel internals, albeit theoretically less precise than TSan's happens-before.
We do basically two things:
- On every KCSAN_NACCESSES (=2000) memory accesses, we create a cell describing the access, and delay the calling CPU (10ms).
- On all memory accesses, we verify if the memory we're reading/writing is referenced in a cell already.
The combination of the two means that, if for example cpu0 does a read that is selected and cpu1 does a write at the same address, kCSan will fire, because cpu1's write collides with cpu0's read cell.
The coverage of the instrumentation is the same as that of kASan. Also, the code is organized in a way similar to kASan, so it is easy to add support for more architectures than amd64. kCSan is compatible with KCOV.
Reviewed by Kamil.
|
| #
1.78 |
|
07-Sep-2019 |
maxv |
Merge amd64func.S into cpufunc.S, and clean up.
|
|
Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
|
| #
1.77 |
|
22-May-2019 |
kamil |
Allow to use KCOV + kASan together
Stop instrumenting KCOV files with kASan and the other way around. This fixes booting of the setup of using them together.
In theory the checks could be more fine grained, however there is no good reason (except extra DIAGNISTIC) for running a kernel sanitizer without kernel coverage.
Patch by <R3x>
|
|
Revision tags: isaki-audio2-base
|
| #
1.76 |
|
24-Feb-2019 |
maxv |
Add support for use-after-scope detection in KASAN. It is available since GCC7, and we have GCC7 by default now.
Slightly reorder the code, and remove a duplicated KASSERT too.
Tested on amd64-KASAN. Not yet enabled on aarch64-KASAN, but it should work as-is.
|
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
| #
1.75 |
|
31-Oct-2018 |
maxv |
Move the MI parts of KASAN into kern/subr_asan.c. This file includes machine/asan.h, which contains the MD functions. We use an include rather than a plain C file, because we want GCC to optimize/inline some functions into one single block.
The amd64 MD parts of KASAN are moved accordingly.
The naming convention we use is:
kasan_* a generic kasan object, declared in subr_asan.c kasan_md_* an MD kasan object, declared in machine/asan.h, and used in subr_asan.c __md_* an MD object, declared in machine/asan.h, and not used outside
Overall this makes it easier to add KASAN support on more architectures.
Discussed with several people.
|
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
| #
1.74 |
|
22-Sep-2018 |
rin |
- Determine KERN_AS automatically depending on whether OPT_MODULAR is set or not, in the same way as libcompat.
- Specify OPT_MODULAR in the port Makefile instead of KERN_AS.
Now, KERN_AS=library is used for kernels without module(7) for all ports.
OK christos
|
|
Revision tags: pgoyette-compat-0906
|
| #
1.73 |
|
22-Aug-2018 |
maxv |
Add support for monitoring the stack with kASan. This allows us to detect illegal memory accesses occuring there.
The compiler inlines a piece of code in each function that adds redzones around the local variables and poisons them. The illegal accesses are then detected using the usual kASan machinery.
The stack size is doubled, from 4 pages to 8 pages.
Several boot functions are marked with the __noasan flag, to prevent the compiler from adding redzones in them (because we haven't yet initialized kASan). The kasan_early_init function is called early at boot time to quickly create the shadow for the current stack; after this is done, we don't need __noasan anymore in the boot path.
We pass -fasan-shadow-offset=0xDFFF900000000000, because the compiler wants to do shad = shadow-offset + (addr >> 3) and we do, in kasan_addr_to_shad shad = KASAN_SHADOW_START + ((addr - CANONICAL_BASE) >> 3) hence shad = KASAN_SHADOW_START + (addr >> 3) - (CANONICAL_BASE >> 3) = [KASAN_SHADOW_START - (CANONICAL_BASE >> 3)] + (addr >> 3) implies shadow-offset = KASAN_SHADOW_START - (CANONICAL_BASE >> 3) = 0xFFFF800000000000 - (0xFFFF800000000000 >> 3) = 0xDFFF900000000000
In UVM, we add a kasan_free (that is not preceded by a kasan_alloc). We don't add poisoned redzones ourselves, but all the functions we execute do, so we need to manually clear the poison before freeing the stack.
With the help of Kamil for the makefile stuff.
|
| #
1.72 |
|
20-Aug-2018 |
maxv |
Add support for kASan on amd64. Written by me, with some parts inspired from Siddharth Muralee's initial work. This feature can detect several kinds of memory bugs, and it's an excellent feature.
It can be enabled by uncommenting these three lines in GENERIC:
#makeoptions KASAN=1 # Kernel Address Sanitizer #options KASAN #no options SVS
The kernel is compiled without SVS, without DMAP and without PCPU area. A shadow area is created at boot time, and it can cover the upper 128TB of the address space. This area is populated gradually as we allocate memory. With this design the memory consumption is kept at its lowest level.
The compiler calls the __asan_* functions each time a memory access is done. We verify whether this access is legal by looking at the shadow area.
We declare our own special memcpy/memset/etc functions, because the compiler's builtins don't add the __asan_* instrumentation.
Initially all the mappings are marked as valid. During dynamic allocations, we add a redzone, which we mark as invalid. Any access on it will trigger a kASan error message. Additionally, the compiler adds a redzone on global variables, and we mark these redzones as invalid too. The illegal-access detection works with a 1-byte granularity.
For now, we cover three areas:
- global variables - kmem_alloc-ated areas - malloc-ated areas
More will come, but that's a good start.
|
|
Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
|
| #
1.71 |
|
02-Jun-2018 |
christos |
branches: 1.71.2; Disable sanitizers for the kernel.
|
|
Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422
|
| #
1.70 |
|
18-Apr-2018 |
martin |
Simplify previous, pointed out by mrg.
|
| #
1.69 |
|
18-Apr-2018 |
martin |
Fix previous: HAVE_GCC needs to be checked in additon to SPECTRE_V2_GCC_MITIGATION, but SPECTRE_V2_GCC_MITIGATION being empty is not a good enough check as it can't be overwritte on the make command line. Now I can do: "make SPECTRE_V2_GCC_MITIGATION=0" (e.g. when my gcc is too old for having the indirect-branch options).
|
| #
1.68 |
|
18-Apr-2018 |
martin |
Fix copy & pasto
|
|
Revision tags: pgoyette-compat-0415
|
| #
1.67 |
|
07-Apr-2018 |
mrg |
add an SPECTRE_V2_GCC_MITIGATION option to x86 kernels, that turns on the GCC spectre v2 mitigation options.
XXX: pullup-8. XXX: turn on in all kernels.
|
|
Revision tags: pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
| #
1.66 |
|
23-Feb-2018 |
maxv |
branches: 1.66.2; Revert previous, we'll need something better (and compatible with Clang).
|
| #
1.65 |
|
23-Feb-2018 |
maxv |
Add -fno-shrink-wrap, to force GCC to push the frames at the very beginning of the functions. Otherwise DDB is unable to display a correct stack trace if a fault occurred in a function before the frame was pushed.
Discussed on tech-kern@, flag suggested by Krister Walfridsson. Should fix PR/52560.
|
|
Revision tags: tls-maxphys-base-20171202
|
| #
1.64 |
|
15-Nov-2017 |
maxv |
Support large pages on KASLR kernels, in a way that does not reduce randomness, but on the contrary that increases it.
The size of the kernel sub-blocks is changed to be 1MB. This produces a kernel with sections that are always < 2MB in size, that can fit a large page.
Each section is put in a 2MB physical chunk. In this chunk, there is a padding of approximately 1MB. The prekern uses a random offset aligned to sh_addralign, to shift the section in physical memory.
For example, physical memory layout created by the bootloader for .text.4 and .rodata.0: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ |+---------------+ |+---------------+ | || .text.4 | PAD || .rodata.0 | PAD | |+---------------+ |+---------------+ | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ PA PA+2MB PA+4MB
Then, physical memory layout, after having been shifted by the prekern: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ | P +---------------+ | +---------------+ | | A | .text.4 | PAD | PAD | .rodata.0 | PAD | | D +---------------+ | +---------------+ | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ PA PA+2MB PA+4MB
The kernel maps these 2MB physical chunks with 2MB large pages. Therefore, randomness is enforced at both the virtual and physical levels, and the resulting entropy is higher than that of our current implementaion until now.
The padding around the section is filled by the prekern. Not to consume too much memory, the sections that are smaller than PAGE_SIZE are mapped with normal pages - because there is no point in optimizing them. In these normal pages, the same shift is applied.
This change has two additional advantages: (a) the cache attacks based on the TLB are mostly mitigated, because even if you are able to determine that a given page-aligned range is mapped as executable you don't know where exactly within that range the section actually begins, and (b) given that we are slightly randomizing the physical layout we are making some rare physical attacks more difficult to conduct.
NOTE: after this change you need to update GENERIC_KASLR / prekern / bootloader.
|
| #
1.63 |
|
14-Nov-2017 |
maxv |
Split each kernel section into sub-blocks of approximately 2MB. The newly created sections are named .origname.i, for example:
.text -> { .text .text.0 .text.1 .text.2 .text.3 .text.4 }
Each section is randomized independently by the prekern - and in a random order obviously. As a result we can get intertwined mappings, of the type:
+-------+-----------+------+---------+-----------+-------+-------+------+- | text1 | NOTMAPPED | bss0 | rodata1 | NOTMAPPED | data2 | text3 | bss1 | +-------+-----------+------+---------+-----------+-------+-------+------+-
---------+- rodata0 | ... ---------+-
The CTF section is dropped completely, because (a) when split it becomes enormous for some reason (that I don't quite understand, verily), and (b) the kernel expects only one CTF and can't handle several of them.
|
| #
1.62 |
|
14-Nov-2017 |
maxv |
Remove max-page-size on KASLR, it doesn't play any role.
|
| #
1.61 |
|
09-Nov-2017 |
maxv |
Use another ld script for kaslr kernels, in which there are no alignment directives. They don't matter since the bootloader overwrites them.
But, normally we still need to make sure .data.read_mostly is aligned. Unfortunately I couldn't find any way to force sh_addralign to be 64, so I'm leaving the alignment there as a useless reminder.
|
| #
1.60 |
|
01-Nov-2017 |
maxv |
Add linux_sigcode.o, otherwise it doesn't get rebuilt.
|
| #
1.59 |
|
07-Oct-2017 |
maxv |
Add GENERIC_KASLR, only toolchain parts for now.
|
|
Revision tags: nick-nhusb-base-20170825
|
| #
1.58 |
|
09-Aug-2017 |
maxv |
Remove several dead entries from the x86 makefiles. Looks like people (me included) regularly forget to take care of this.
|
|
Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
| #
1.57 |
|
11-Feb-2017 |
maxv |
branches: 1.57.6; Put 2MB alignments between the kernel segments. This way the kernel image is entirely mapped with large pages, which uniformizes performance and reduces fluctuation. Sent on port-amd64.
|
|
Revision tags: nick-nhusb-base-20170204
|
| #
1.56 |
|
02-Feb-2017 |
maxv |
Increase KERNTEXTOFF from 1MB to 2MB on amd64. [1MB; 2MB[ is now handled by UVM, so there is no physical loss.
On amd64 we always remap the kernel text with 2MB pages, and because of the 1MB start address we were forced to map [0MB; 2MB[ inside the first large page. The problem is, the lower half is used by UVM to allocate physical pages, and it is possible that some of these could be used by userland. We could end up with userland-controllable data mapped into the kernel text on a privileged page, which is far from being a good idea from a security pov.
I am not fixing i386 yet, because the large page size depends on PAE, and we probably don't want to have a text located at 4MB on low-memory systems.
(note: I didn't introduce this issue, it was already there when I came in)
|
|
Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
| #
1.55 |
|
29-Apr-2016 |
christos |
branches: 1.55.2; 1.55.4; Moved hack to ufs_lookup.c
|
| #
1.54 |
|
28-Apr-2016 |
mrg |
XXX: build ufs_lookup.c with -fno-tree-vrp when using GCC 5, for now.
|
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
| #
1.53 |
|
06-Sep-2015 |
uebayasi |
Define MD start code at the top of files.${MACHINE} relying on config(1)'s deterministic file output order. No need to define ${MD_OBJS} and its useless, explicit compile rules.
|
| #
1.52 |
|
03-Sep-2015 |
uebayasi |
Define ${MD_OBJS} as relative path. This change makes amd64 kernel buildable for `-S' mode.
|
| #
1.51 |
|
24-Aug-2015 |
uebayasi |
Define ${LINKSCRIPT} in one place.
|
| #
1.50 |
|
18-Aug-2015 |
uebayasi |
${KERN_LDSCRIPT} -> ${KERNLDSCRIPT}
|
|
Revision tags: nick-nhusb-base-20150606
|
| #
1.49 |
|
01-May-2015 |
nat |
Include splash with genfb. splash.o is only included with options SPLASHSCREEN. splash_image.o target moved to Makefile.kern.inc.
This commit was approved by matt@
|
| #
1.48 |
|
30-Apr-2015 |
nat |
Remove unintended whitespace.
|
| #
1.47 |
|
30-Apr-2015 |
nat |
Added a new option for embedding a splash screen into kernel. Add: options SPLASHSCREEN makeoptions SPLASHSCREEN_IMAGE="path/to/image" to your config file. So far it will work on amd64 and RPI/RPI2.
This commit was with ideas, help, and OK from jmcneill@.
|
|
Revision tags: nick-nhusb-base-20150406 nick-nhusb-base
|
| #
1.46 |
|
15-Nov-2014 |
uebayasi |
branches: 1.46.2; Use LINKSCRIPT.
|
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
| #
1.45 |
|
24-May-2014 |
jakllsch |
Add -fno-omit-frame-pointer to DEFCOPTS.
|
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
| #
1.44 |
|
05-Feb-2014 |
dsl |
branches: 1.44.2; Apparantly clang doesn't like -mno-80387 or -mno-fp-ret-in-387 -msoft-float is equivalent to the former, the latter is probably unlikely to stop anything not picked up elsewhere.
|
| #
1.43 |
|
05-Feb-2014 |
dsl |
Change the compiler options to explicitly specify: -mno-mmx -mno-sse -mno-avx -mno-80387 -mno-fp-ret-in-387 Since no-sse implies no-sse2 that should ensure that the compiler really doesn't emit any instructions that might trap trying to use the FPU. On amd64 at least some of those are needed to stop the compiler saving the registers to stack on every varargs function. It might be that -mno-sse did that before.
|
| #
1.42 |
|
15-Jan-2014 |
joerg |
Reduce amount of -no-integrated-as on x86 as .code16 is now supported by LLVM.
|
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
| #
1.41 |
|
14-Dec-2012 |
christos |
branches: 1.41.2; do like the i386 for modular.
|
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
|
| #
1.40 |
|
19-Dec-2011 |
joerg |
branches: 1.40.6; Move Clang-warning flags for ah_regdomain.c into sys/conf, they are platform independent. Use the selective -Wno-* flags instead of -Wno-error.
|
|
Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
| #
1.39 |
|
14-Sep-2011 |
christos |
branches: 1.39.2; 1.39.6; include wakecode after kernel rules so that the .depend rules are defined
|
|
Revision tags: jym-xensuspend-nbase jym-xensuspend-base
|
| #
1.38 |
|
02-Aug-2011 |
joerg |
Remove a number of now unnecessary -no-integrated-as cases.
|
|
Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
|
| #
1.37 |
|
10-Jun-2011 |
joerg |
Disable LLVM MC for spl.S for now. The different spllower sizes break patchfunc.
|
| #
1.36 |
|
10-Jun-2011 |
joerg |
Explicitly disable use of SSE. LLVM generates SSE by default on AMD64 and we certainly don't want that in the kernel.
|
|
Revision tags: cherry-xenmp-base
|
| #
1.35 |
|
30-May-2011 |
joerg |
branches: 1.35.2; Disable -Werror for ah_regdomain.c if building with clang as workaround for http://llvm.org/bugs/show_bug.cgi?id=10030.
|
| #
1.34 |
|
20-May-2011 |
joerg |
Drop redundant -I.
|
| #
1.33 |
|
20-May-2011 |
joerg |
Really apply the -no-integrated-as only for clang.
|
| #
1.32 |
|
20-May-2011 |
joerg |
Reuse -x assembler-with-cpp from sys.mk.
|
| #
1.31 |
|
20-May-2011 |
joerg |
LLVM's assembler parser doesn't support .code32 yet, so disable it as needed.
|
|
Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base
|
| #
1.30 |
|
12-Jan-2011 |
joerg |
branches: 1.30.2; Allow use of traditional CPP to be set on a per platform base in sys.mk. Honour this for dependency processing in bsd.dep.mk. Switch i386 and amd64 assembly to use ISO C90 preprocessor concat and drop the -traditional-cpp on this platform.
|
|
Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211
|
| #
1.29 |
|
25-Nov-2009 |
tron |
branches: 1.29.4; Enable SSP (Stack Smash Protection) in x86 kernels by default (except in i386 *TINY kernels). The NetBSD/i386 "ALL" kernel is unconditionally compiled with SSP enabled.
Change approved by the core team.
|
| #
1.28 |
|
02-Oct-2009 |
skrll |
It's -z max-page-size, not -z maxpagesize.
|
| #
1.27 |
|
01-Oct-2009 |
skrll |
MAXPAGESIZE got bumped to 0x200000. Use -z maxpagesize=0x100000 until someone(tm) decides that kernels should have that alignment, etc.
|
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 haad-dm-base2 haad-nbase2 nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
| #
1.26 |
|
11-Dec-2008 |
alc |
branches: 1.26.2; Clean-up makefile stub used to include in the build the binary HAL object
|
|
Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base
|
| #
1.25 |
|
30-Oct-2008 |
joerg |
branches: 1.25.2; 1.25.8; New assym.h dependency.
|
|
Revision tags: matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase
|
| #
1.24 |
|
10-Mar-2008 |
ad |
branches: 1.24.4; 1.24.10; 1.24.12; Implement an optimized, preemption-safe asm version of tsc_get_timecount(). The C version needs work to be preemption safe. Cuts the clock cycles for microtime() from 950 down to 300 on a Pentium D.
|
|
Revision tags: nick-net80211-sync-base mjf-devfs-base hpcarm-cleanup-base
|
| #
1.23 |
|
25-Jan-2008 |
joerg |
branches: 1.23.2; 1.23.6; Refactor in_cksum/in4_cksum/in6_cksum implementations: - All three functions are included in the kernel by default. They call a backend function cpu_in_cksum after possibly computing the checksum of the pseudo header. - cpu_in_cksum is the core to implement the one-complement sum. The default implementation is moderate fast on most platforms and provides a 32bit accumulator with 16bit addends for L32 platforms and a 64bit accumulator with 32bit addends for L64 platforms. It handles edge cases like very large mbuf chains (could happen with native IPv6 in the future) and provides a good base for new native implementations. - Modify i386 and amd64 assembly to use the new interface.
This disables the MD implementations on !x86 until the conversion is done. For Alpha, the portable version is faster.
|
|
Revision tags: bouyer-xeni386-nbase
|
| #
1.22 |
|
21-Jan-2008 |
joerg |
in_cksum.S needs assym.h.
|
|
Revision tags: bouyer-xeni386-base
|
| #
1.21 |
|
17-Jan-2008 |
lukem |
Remove unnecessary references to config_time.h.
|
|
Revision tags: matt-armv6-base
|
| #
1.20 |
|
30-Dec-2007 |
joerg |
Missing assym.h dependency.
|
|
Revision tags: vmlocking2-base3
|
| #
1.19 |
|
21-Dec-2007 |
joerg |
lock_stubs.S needs assym.h.
|
|
Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
|
| #
1.18 |
|
09-Dec-2007 |
jmcneill |
branches: 1.18.2; Merge jmcneill-pm branch.
|
|
Revision tags: yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase bouyer-xenamd64-base jmcneill-pm-base reinoud-bufcleanup-base
|
| #
1.17 |
|
24-Oct-2007 |
joerg |
branches: 1.17.2; 1.17.4; 1.17.6; cpufunc.S depends on assym.h.
|
|
Revision tags: yamt-x86pmap-base4
|
| #
1.16 |
|
17-Oct-2007 |
garbled |
Merge the ppcoea-renovation branch to HEAD.
This branch was a major cleanup and rototill of many of the various OEA cpu based PPC ports that focused on sharing as much code as possible between the various ports to eliminate near-identical copies of files in every tree. Additionally there is a new PIC system that unifies the interface to interrupt code for all different OEA ppc arches. The work for this branch was done by a variety of people, too long to list here.
TODO: bebox still needs work to complete the transition to -renovation. ofppc still needs a bunch of work, which I will be looking at. ev64260 still needs to be renovated amigappc was not attempted.
NOTES: pmppc was removed as an arch, and moved to a evbppc target.
|
|
Revision tags: yamt-x86pmap-base3 yamt-x86pmap-base2 ppcoea-renovation-base vmlocking-base
|
| #
1.15 |
|
04-Oct-2007 |
christos |
branches: 1.15.2; busfunc depends on assym.h
|
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase nick-csl-alignment-base5 wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 yamt-x86pmap-base netbsd-4-0-RC1 nick-csl-alignment-base matt-mips64-base yamt-idlelwp-base8 wrstuden-fixsa-base thorpej-atomic-base mjf-ufs-trans-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base rpaulo-netinet-merge-pcb-base
|
| #
1.14 |
|
07-Jun-2006 |
kardel |
branches: 1.14.16; 1.14.24; 1.14.34; 1.14.36; 1.14.38; convert to timecounters (from branch simonb-timecounters)
|
|
Revision tags: yamt-pdpolicy-base5 yamt-pdpolicy-base4 elad-kernelauth-base simonb-timecounters-base
|
| #
1.13 |
|
04-Apr-2006 |
gdamore |
branches: 1.13.2; Convert existing ath users to new Makefile, except for amd64, which needs the rules due to needing to conditionally postprocess the HAL object file.
Macppc needs a a non-ELF HAL (EABI) object, so take care of that by default in the atheros include file.
|
| #
1.12 |
|
02-Apr-2006 |
gdamore |
Reorganize ath layout as requested by sam@ and suggested by dyoung@ in http://mail-index.netbsd.org/tech-net/2006/03/15/0000.html.
The new layout almost precisely matches FreeBSD, and should make future imports much easier.
At the same time, import the current 0.9.16.16 HAL from FreeBSD. According to sam@, this is the proper version we should be using.
|
|
Revision tags: yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2
|
| #
1.11 |
|
08-Mar-2006 |
dyoung |
branches: 1.11.2; No need to create opt_ah.h here, config(8) takes care of it.
|
|
Revision tags: yamt-pdpolicy-base
|
| #
1.10 |
|
03-Mar-2006 |
he |
branches: 1.10.2; 1.10.4; Before symlinking opt_ah.h, make sure the target doesn't already exist. This fixes a build problem with UPDATE set.
|
|
Revision tags: yamt-uio_vmspace-base5 ktrace-lwp-base
|
| #
1.9 |
|
30-Nov-2005 |
dsl |
branches: 1.9.4; 1.9.6; It seems that make doesn't like testing empty() on undefined variables. Also objdump DTRT when asked to update a file, so no need to do a mv ourselves.
|
|
Revision tags: yamt-readahead-base3
|
| #
1.8 |
|
27-Nov-2005 |
dsl |
If we are compiling with -fno-asynchronous-unwind-tables then also remove the .eh_frame section from athhal-x86_64-elf.hal.o.
|
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
| #
1.7 |
|
12-Jul-2005 |
sekiya |
branches: 1.7.6; Add config goo for ath. Tested with a PCI card, detected as:
ath0 at pci0 dev 10 function 0 ath0: interrupting at ioapic0 pin 17 (irq 5) ath0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36M bps 48Mbps 54Mbps ath0: mac 5.9 phy 4.3 radio 3.6
Cardbus untested, so it is commented out.
|
| #
1.6 |
|
31-May-2005 |
christos |
branches: 1.6.2; s/GENASSYM/GENASSYM_CONF/ so we can use "GENASSYM" as the program name.
|
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base
|
| #
1.5 |
|
04-Jun-2004 |
thorpej |
Add the %MAKEOPTIONSAPPEND token at the end of the file, after the common Makefile.kern.inc has been included.
|
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
| #
1.4 |
|
27-May-2003 |
christos |
branches: 1.4.2; 1.4.6; another dependency on assym.h
|
| #
1.3 |
|
17-May-2003 |
christos |
clock.o depends on config_time.h
|
| #
1.2 |
|
04-May-2003 |
fvdl |
Default to -O2.
|
| #
1.1 |
|
26-Apr-2003 |
fvdl |
Rename the x86_64 port to amd64, as this is the actual name used for the processor family now. x86_64 is kept as the MACHINE_ARCH value, since it's already widely used (by e.g. the toolchain, etc), and by other operating systems.
|