diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-07 17:18:14 +0000 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-07 17:18:14 +0000 |
| commit | 61361f925d4914a6608a0076e64cc2399311ed5f (patch) | |
| tree | 6f717c2ff0b11d7493e60da9757818d119cfb541 /results/classifier/phi4:14b/output/manual-review/1041 | |
| parent | 238ec2b7cc1557d6f34c33cc482e4d0cd3e266dd (diff) | |
| download | qemu-analysis-61361f925d4914a6608a0076e64cc2399311ed5f.tar.gz qemu-analysis-61361f925d4914a6608a0076e64cc2399311ed5f.zip | |
add new results
Diffstat (limited to 'results/classifier/phi4:14b/output/manual-review/1041')
| -rw-r--r-- | results/classifier/phi4:14b/output/manual-review/1041 | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/results/classifier/phi4:14b/output/manual-review/1041 b/results/classifier/phi4:14b/output/manual-review/1041 new file mode 100644 index 000000000..e12e90d4e --- /dev/null +++ b/results/classifier/phi4:14b/output/manual-review/1041 @@ -0,0 +1,34 @@ + + + +x86_64 Auxillary vector reports platform as i686 which doesn't match the linux kernel +Description of problem: +Based on the kernel source in the auxiliary vector AT_PLATFORM should be `x86_64` (confirmed by running outside qemu). However qemu sets it to `i686`. + +This was originally reported with docker-for-mac, but was reduced on `x86_64` which is why it is pointless +Steps to reproduce: +1. Compile the following for x86_64 (statically if you don't want have an x86_64 dynamic linker) (code originally from https://stackoverflow.com/questions/26520163/accessing-auxiliary-vectors-c) + +``` +#include <stdio.h> +#include <elf.h> + +int main(int argc, char** argv, char* envp[]) { + Elf64_auxv_t *auxv; + while(*envp++ != NULL); + + /*from stack diagram above: *envp = NULL marks end of envp*/ + int i = 0 ; + for (auxv = (Elf64_auxv_t *)envp; auxv->a_type != AT_NULL; auxv++) + /* auxv->a_type = AT_NULL marks the end of auxv */ + { + if( auxv->a_type == AT_PLATFORM) + printf("AT_PLATFORM is: %s\n", ((char*)auxv->a_un.a_val)); + } +} +``` +2. Run with `qemu-x86_64-static` +3. See `AT_PLATFORM is: i686` +4. Compare to "real" x86_64 bit system which gives `AT_PLATFORM is: x86_64` +Additional information: +I think that adding `#define ELF_PLATFORM "x86_64"` [here](https://gitlab.com/qemu-project/qemu/-/blob/master/linux-user/elfload.c#L134) should work (but I don't fully understand the code). Otherwise we just end up getting the 32-bit case. |