Comments (7)
The question is just - what would be the advisable approach - go for 64bit and try to solve the incompatibilities or rather go for 32bit and try to solve incompatibilities?
I don't know :) But I think it will require significant changes to support 32bit longs. And we need to do that without too much intrusion in the kernel.
If someone smarter than me is already working on this I will just drop it :)
I don't plan to look into this in the next couple of months.
from linux.
I am trying to open this one again. I have been able to compile 64bit version in windows using MSYS2. I made very few directed changes in two makefiles and one KConfig file to address missing pe-x86-64. The compilation proceed normally. It generate the vmlinux file.
using the objdump command
objdump -f vmlinux
I get
vmlinux: file format pe-x86-64
architecture: i386:x86-64, flags 0x00000039:
HAS_RELOC, HAS_DEBUG, HAS_SYMS, HAS_LOCALS
start address 0x0000000000000000
Looks good. The problem is that linking the dll is failing. I already rollback to binutils 2.6. I am getting the following errors
$ make -C tools/lkl V=1
make: Entering directory '/e/Dev/GitHub/lkl/linux/tools/lkl'
make -f /e/Dev/GitHub/lkl/linux/tools/build/Makefile.build dir=lib obj=lkl
gcc -shared -o /e/Dev/GitHub/lkl/linux/tools/lkl/liblkl.dll /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o -lws2_32
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_mkdir': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:464: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:464:(.text+0x103): relocation truncated to fit: R_X86_64_PC32 against undefined symbol lkl_syscall' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function
lkl_sys_mount':
/e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:539: undefined reference to lkl_syscall' /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:539:(.text+0x166): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_rmdir': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:467: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:467:(.text+0x199): relocation truncated to fit: R_X86_64_PC32 against undefined symbol lkl_syscall' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function
lkl_sys_umount':
/e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:533: undefined reference to lkl_syscall' /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:533:(.text+0x214): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_nanosleep': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:254: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:254:(.text+0x25a): relocation truncated to fit: R_X86_64_PC32 against undefined symbol lkl_syscall' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o:/e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:356: more undefined references to
lkl_syscall' follow
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_open': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:356:(.text+0x2d7): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_lseek': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:371:(.text+0x39a): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_close': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:365:(.text+0x3ea): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_getdents64': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:506:(.text+0x47e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_open': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:356:(.text+0x6b9): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_read': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:374:(.text+0x6fe): additional relocation overflows omitted from the output /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function
virtio_dev_setup':
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/virtio.c:529: undefined reference to lkl_get_free_irq' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/virtio.c:550: undefined reference to
lkl_is_running'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_virtio_mmio_device_add': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:2: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function virtio_dev_setup': /e/Dev/GitHub/lkl/linux/tools/lkl/lib/virtio.c:555: undefined reference to
lkl_put_irq'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function virtio_dev_cleanup': /e/Dev/GitHub/lkl/linux/tools/lkl/lib/virtio.c:582: undefined reference to
lkl_is_running'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_open': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:356: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_write': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:377: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_close': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:365: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function virtio_dev_cleanup': /e/Dev/GitHub/lkl/linux/tools/lkl/lib/virtio.c:618: undefined reference to
lkl_put_irq'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_umount': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:533: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function virtio_deliver_irq': /e/Dev/GitHub/lkl/linux/tools/lkl/lib/virtio.c:84: undefined reference to
lkl_trigger_irq'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_open': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:356: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_read': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:374: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_close': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:365: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_open': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:356: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o: In function lkl_sys_write': /e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:377: undefined reference to
lkl_syscall'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o:/e/Dev/GitHub/lkl/linux/tools/lkl/include/lkl/asm/syscall_defs.h:365: more undefined references to `lkl_syscall' follow
collect2: error: ld returned 1 exit status
make: *** [Makefile:148: /e/Dev/GitHub/lkl/linux/tools/lkl/liblkl.dll] Error 1
make: Leaving directory '/e/Dev/GitHub/lkl/linux/tools/lkl'
Any ideas?
from linux.
MSYS2/Cygwin are LP64, so there is no problem there. This issue is about "native" MinGW 64-bit, which is LLP64.
Therefore I think what you are describing is some other issue.
from linux.
Rondom
MinGW has nothing to do with this. This is MSYS2. The problem is not related to LP64/LLP64. This is related to problems with GCC. I see that this is a common problem with large codebases. I actually changed the build configuration to LD in the Makefile as suggested in many different newsgroups., but that came up with different issues.
I added the link options -mcmodel=large -shared, now I am getting a different set of errors
ld -r -o /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o /e/Dev/GitHub/lkl/linux/tools/lkl/lib/fs.o /e/Dev/GiHub/lkl/linux/tools/lkl/lib/iomem.o /e/Dev/GitHub/lkl/linux/tools/lkl/lib/net.o /e/Dev/GitHub/lkl/linux/tools/lk/lib/jmp_buf.o /e/Dev/GitHub/lkl/linux/tools/lkl/lib/nt-host.o /e/Dev/GitHub/lkl/linux/tools/lkl/lib/utils.o /e/ev/GitHub/lkl/linux/tools/lkl/lib/virtio_blk.o /e/Dev/GitHub/lkl/linux/tools/lkl/lib/virtio.o /e/Dev/GitHub/lkl/inux/tools/lkl/lib/dbg.o /e/Dev/GitHub/lkl/linux/tools/lkl/lib/dbg_handler.o
ar -rc /e/Dev/GitHub/lkl/linux/tools/lkl/liblkl.a /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o /e/Dev/GitHub/ll/linux/tools/lkl/lib/lkl.o
gcc -shared -o /e/Dev/GitHub/lkl/linux/tools/lkl/liblkl.dll /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o /e/De/GitHub/lkl/linux/tools/lkl/lib/lkl.o -lws2_32
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o:fs.c:(.rdata$.refptr.lkl_syscall[.refptr.lkl_syscall]+0x0): undefned reference to lkl_syscall' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o:fs.c:(.rdata$.refptr.lkl_put_irq[.refptr.lkl_put_irq]+0x0): undefned reference to
lkl_put_irq'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o:fs.c:(.rdata$.refptr.lkl_is_running[.refptr.lkl_is_running]+0x0):undefined reference to lkl_is_running' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o:fs.c:(.rdata$.refptr.lkl_get_free_irq[.refptr.lkl_get_free_irq]+00): undefined reference to
lkl_get_free_irq'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl-in.o:fs.c:(.rdata$.refptr.lkl_trigger_irq[.refptr.lkl_trigger_irq]+0x0: undefined reference to lkl_trigger_irq' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xb478): relocation truncated to fit: rva32 against
exit.text'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xb47c): relocation truncated to fit: rva32 against exit.text' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xd8f0): relocation truncated to fit: rva32 against
exit.text'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xd8f4): relocation truncated to fit: rva32 against exit.text' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xec4c): relocation truncated to fit: rva32 against
exit.text'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xec50): relocation truncated to fit: rva32 against exit.text' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xec58): relocation truncated to fit: rva32 against
exit.text'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xec5c): relocation truncated to fit: rva32 against exit.text' /e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xf1bc): relocation truncated to fit: rva32 against
exit.text'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xf1c0): relocation truncated to fit: rva32 against `exit.text'
/e/Dev/GitHub/lkl/linux/tools/lkl/lib/lkl.o:main.c:(.pdata+0xf1c8): additional relocation overflows omitted fromthe output
collect2: error: ld returned 1 exit status
make: *** [Makefile:148: /e/Dev/GitHub/lkl/linux/tools/lkl/liblkl.dll] Error 1
make: Leaving directory '/e/Dev/GitHub/lkl/linux/tools/lkl'
from linux.
I will open a new issue with more clean understanding and explanation
from linux.
from linux.
I think there was a misunderstanding. What I meant to say was that your MSYS2-linker-issue is unrelated to this one and is thus better dealt with in a separate issue.
from linux.
Related Issues (20)
- Support for multiple processes HOT 5
- in ubuntu run tests have issues. it say i hadn"t installed yamlish, but I do,it still error HOT 1
- Thunar,Caja,nemo,pcmanfm can't see the content of any ext4 mounted disk with lklfuse on FreeBSD 13
- Missing header
- enable GCOV in lkl
- Is this project include the code of uKontainer's lkl-linux? HOT 1
- Start kernel in single threaded mode HOT 1
- Asking for a port to arm64 of "Unifying LKL into UML"
- How to switch between different kernel versions? HOT 1
- IWL-WiFi + FreeBSD
- Compilation under different kernel versions HOT 1
- Status of `Unifying LKL into UML` (v8, Jan 2021) ? HOT 6
- Investigate LKL strncpy and KASAN error
- LKL build target clean-conf doesn't clean .config
- Unable to mount btrfs filesystems spread across more than one partition with lklfuse HOT 4
- Ask for android build related help HOT 2
- LKL is potentially affected by 10 known CVEs HOT 3
- http benchmarking isn't working well
- network performance
- Failed to run lkl hijack on android 10 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linux.