| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Instead of an array of identifiers, we've been constructing an array of
identifier + ast.Pos.
Reported-by: Damiano Melotti<damianomelotti97@gmail.com>
|
| |
|
|
|
| |
1) Make FabricateSyscallConsts() operate on ConstFile.
2) Expose Pos inside ConstInfo.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Change #2755 disabled KVM for arm64/ppc64, but KVM is supported on these arches
and has extensive support. It's pity to lose that support.
The real root cause of the problem with arm64/ppc64 is that some severe compilation
errors terminated compilation and did not let compiler spew all error messages.
As the result we did not parse all of them and did not disable all of them.
Re-try compilation multiple times instead of just 2 to fix this.
Update #2754
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Introduce the new target flag 'LittleEndian' which specifies
of which endianness the target is.
* Introduce the new requires flag 'littleendian' for tests to
selectively enable/disable tests on either little-endian architectures
or big-endian ones.
* Disable KD unit test on s390x architecture because the test
works only on little-endian architecture.
Signed-off-by: Alexander Egorenkov <Alexander.Egorenkov@ibm.com>
|
| |
|
|
| |
New message from clang.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is not necessary since we build legit object file
for the target binary now. But this breaks mips with:
/linux/arch/mips/include/asm/thread_info.h:53:30: error: register name not specified for ‘__current_thread_info’
register struct thread_info *__current_thread_info __asm__("$28");
So just remove the old hack.
Follow up to #1536
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a second mode that extracts constant values from
ELF object, instead of running the executable.
This allows to not (1) link binaries, (2) use proper cross-compiler.
It finally fixes 386/arm extracts for my distro.
Hopefully not makes things worse for others,
should generally be safer/more reliable.
The current mode is left b/c I can't test all OSes,
windows binaries are not ELF, so we may need it anyway.
But later we may switch more OSes to this new mode
if they break (fuchsia?).
|
| | |
|
| |
|
|
|
|
| |
Instead of defining the __GLIBC_USE macro on every OS, we are just
defining it based on a parameter. That parameter is set to false for all
OSs except for fuchsia.
|
| |
|
|
|
|
|
|
| |
When I try to run `make extract` for fuchsia, the clang compiler
complains that __GLIBC_USE is undefined.
This CL just defines it to be an always false function-like macro if it
was not defined.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
make extract recently broke for powerpc on linux-next with:
include/uapi/linux/byteorder/big_endian.h:6:2: error: #error "Unsupported endianness, check your toolchain"
#error "Unsupported endianness, check your toolchain"
Turns out we always built ppc64le headers as big-endian.
First, kernel was configured as BE.
Then, we used gcc to build an executable program for host
and on x86 gcc does not define __LITTLE_ENDIAN__ so kernel
thought that the toolchain is BE too.
Configure kernel as LE and define __LITTLE_ENDIAN__.
This actually changes values of some consts,
but fortunately just few of them.
|
| |
|
|
| |
That's insanity compilers shuffle them in all possible combinations.
|
| |
|
|
| |
Introduce TempFile helper and use it in several packages.
|
| |
|
|
|
|
|
| |
Print each constant on separate line.
When compiler prints error messages it prints whole line
containing an error. So currently it prints all constants (thousands).
With this change it prints just the problematic constant.
|
| |
|
|
|
| |
Not sure why I have not seen warnings about
these lines on another machine...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At some point extract for linux/arm started to fail with:
extracting from key.txt
failed to run compiler: exit status 1
/tmp/ccT6o7iZ.s: Assembler messages:
/tmp/ccT6o7iZ.s:4: Error: unknown pseudo-op: `.syntax'
This is caused by arch/arm/include/asm/unified.h:
__asm__(".syntax unified");
Ignore all __asm__ directives as we are cross compiling.
|
| | |
|
| |
|
|
|
|
| |
When manager is stopped there are sometimes runaway qemu
processes still running. Set PDEATHSIG for all subprocesses.
We never need child processes outliving parents.
|
| |
|
|
|
|
| |
commit 3520854be0e7 ("syz-extract: select declaring printf or not")
broke 'make extract' because it introduced invalid syntax in a text
template. Fix it.
|
| |
|
|
|
|
|
|
| |
Kernels are standalone implementations and can have their own
implementations of functions that have different prototypes than
the standard ones. In the NetBSD case the kernel printf returns
void, and it is declared in <sys/systm.h> so avoid re-declaring it.
Select if we are going to declare printf or not depending on the OS.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Each arch duplicates significant portion of logic
to compile the extract source file.
Factor this logic into a separate function and reuse
it across all OSes.
|
| | |
|
| |
|
|
|
|
|
| |
This breaks circular dependency between:
sysgen -> sys/linux -> sys -> sysgen
With this circular dependency it is very difficult to
update format of generated descriptions because sysgen does not build.
|
| |
|
|
|
| |
This does not pollute user kernel dir (we do make mrproper, though)
and enables parallel generation.
|
| | |
|
| | |
|
| |
|
|
| |
Now pkg/compiler deals with consts.
|
| |
|
|
|
|
|
| |
Not tested, but const extraction and build works.
Update #324
Update #191
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
directories. (#180)
* Parse #incdir "incdir" in syscall description file to add custom include directories.
* add flagLinux
* remove '#' in incdir flag
* Update sys/README.md AUTHORS CONTRIBUTORS.
|
| |
|