* [PATCH 1/2] Fix for Haiku @ 2021-07-03 21:10 Richard Zak 2021-07-03 21:39 ` Peter Maydell 2021-07-04 7:29 ` Thomas Huth 0 siblings, 2 replies; 13+ messages in thread From: Richard Zak @ 2021-07-03 21:10 UTC (permalink / raw) To: QEMU Developers; +Cc: Peter Maydell, Thomas Huth [-- Attachment #1: Type: text/plain, Size: 1147 bytes --] For Haiku: turn off TPM, disable mips & xtensa emulators as they won't compile on Haiku, use Haiku's capstone. I'm resending this as I previously sent to the wrong address. This should resolve the memory issue with "make vm-build-haiku.x86_64" Signed-off-by: Richard Zak <richard.j.zak@gmail.com> --- configure | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configure b/configure index e799d908a3..a965c6c72e 100755 --- a/configure +++ b/configure @@ -358,6 +358,7 @@ oss_lib="" bsd="no" linux="no" solaris="no" +haiku="no" profiler="no" cocoa="auto" softmmu="yes" @@ -769,7 +770,10 @@ SunOS) ;; Haiku) haiku="yes" - QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE $QEMU_CFLAGS" + tpm="no" + capstone="system" + target_list_exclude="mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu xtensa-softmmu xtensaeb-softmmu" + QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE -I`finddir B_SYSTEM_HEADERS_DIRECTORY`/capstone $QEMU_CFLAGS" ;; Linux) audio_drv_list="try-pa oss" -- 2.25.1 -- Regards, Richard J. Zak Professional Genius PGP Key: https://keybase.io/rjzak/key.asc [-- Attachment #2: Type: text/html, Size: 1823 bytes --] ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-03 21:10 [PATCH 1/2] Fix for Haiku Richard Zak @ 2021-07-03 21:39 ` Peter Maydell 2021-07-03 22:06 ` Richard Zak 2021-07-04 7:29 ` Thomas Huth 1 sibling, 1 reply; 13+ messages in thread From: Peter Maydell @ 2021-07-03 21:39 UTC (permalink / raw) To: Richard Zak; +Cc: Thomas Huth, QEMU Developers On Sat, 3 Jul 2021 at 22:10, Richard Zak <richard.j.zak@gmail.com> wrote: > > For Haiku: turn off TPM, disable mips & xtensa emulators as they won't compile on Haiku, use Haiku's capstone. I'm resending this as I previously sent to the wrong address. This should resolve the memory issue with "make vm-build-haiku.x86_64" So why don't the mips and xtensa emulators compile on Haiku? What goes wrong ? > Signed-off-by: Richard Zak <richard.j.zak@gmail.com> > --- > configure | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index e799d908a3..a965c6c72e 100755 > --- a/configure > +++ b/configure > @@ -358,6 +358,7 @@ oss_lib="" > bsd="no" > linux="no" > solaris="no" > +haiku="no" > profiler="no" > cocoa="auto" > softmmu="yes" > @@ -769,7 +770,10 @@ SunOS) > ;; > Haiku) > haiku="yes" > - QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE $QEMU_CFLAGS" > + tpm="no" Why do we need to disable tpm? > + capstone="system" > + target_list_exclude="mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu xtensa-softmmu xtensaeb-softmmu" > + QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE -I`finddir B_SYSTEM_HEADERS_DIRECTORY`/capstone $QEMU_CFLAGS" It seems a bit odd that we have to manually put the capstone headers on the include path. meson.build runs pkg-config to ask where the system capstone headers are: does Haiku return the wrong value there? thanks -- PMM ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-03 21:39 ` Peter Maydell @ 2021-07-03 22:06 ` Richard Zak 2021-07-04 9:03 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 13+ messages in thread From: Richard Zak @ 2021-07-03 22:06 UTC (permalink / raw) To: Peter Maydell; +Cc: Thomas Huth, QEMU Developers [-- Attachment #1: Type: text/plain, Size: 3519 bytes --] For MIPS (all sub-targets, 64-bit and EL) & xtensa(eb), the compiler complains about running out of memory. Best I can see, that's not what actually happens, but that's the error message. I was going to investigate this later, but this was the error which was causing the test with the Haiku VM with that corresponding make target. My desktop & laptop have 64 GB, and I'm pretty sure it didn't get to that point. /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: error: libqemu-mips-softmmu.fa.p/target_mips_tcg_sysemu_mips-semi.c.o(.rodata) is too large (0xffff405a bytes) /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: final link failed: memory exhausted collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Makefile:158: recipe for target 'run-ninja' failed make: *** [run-ninja] Error 1 /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: final link failed: memory exhausted collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Makefile:158: recipe for target 'run-ninja' failed make: *** [run-ninja] Error 1 TPM is disabled as it's not supported in Haiku. Using that "finddir" command for capstone was done that way in Haiku's build recipe, so I copied it into the configure script. A quick test shows that pkg-config does find it properly, so I'll remove the "finddir" command and test again. TPM and "finddir" command in Haiku's recipe for qemu: https://github.com/haikuports/haikuports/blob/master/app-emulation/qemu/qemu-6.0.0.recipe În sâm., 3 iul. 2021 la 17:40, Peter Maydell <peter.maydell@linaro.org> a scris: > On Sat, 3 Jul 2021 at 22:10, Richard Zak <richard.j.zak@gmail.com> wrote: > > > > For Haiku: turn off TPM, disable mips & xtensa emulators as they won't > compile on Haiku, use Haiku's capstone. I'm resending this as I previously > sent to the wrong address. This should resolve the memory issue with "make > vm-build-haiku.x86_64" > > > So why don't the mips and xtensa emulators compile on Haiku? > What goes wrong ? > > > Signed-off-by: Richard Zak <richard.j.zak@gmail.com> > > --- > > configure | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/configure b/configure > > index e799d908a3..a965c6c72e 100755 > > --- a/configure > > +++ b/configure > > @@ -358,6 +358,7 @@ oss_lib="" > > bsd="no" > > linux="no" > > solaris="no" > > +haiku="no" > > profiler="no" > > cocoa="auto" > > softmmu="yes" > > @@ -769,7 +770,10 @@ SunOS) > > ;; > > Haiku) > > haiku="yes" > > - QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE $QEMU_CFLAGS" > > + tpm="no" > > Why do we need to disable tpm? > > > + capstone="system" > > + target_list_exclude="mips-softmmu mipsel-softmmu mips64-softmmu > mips64el-softmmu xtensa-softmmu xtensaeb-softmmu" > > + QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE -I`finddir > B_SYSTEM_HEADERS_DIRECTORY`/capstone $QEMU_CFLAGS" > > It seems a bit odd that we have to manually put the capstone headers > on the include path. meson.build runs pkg-config to ask where the system > capstone headers are: does Haiku return the wrong value there? > > thanks > -- PMM > -- Regards, Richard J. Zak Professional Genius PGP Key: https://keybase.io/rjzak/key.asc [-- Attachment #2: Type: text/html, Size: 4795 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-03 22:06 ` Richard Zak @ 2021-07-04 9:03 ` Philippe Mathieu-Daudé 2021-07-04 9:27 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 13+ messages in thread From: Philippe Mathieu-Daudé @ 2021-07-04 9:03 UTC (permalink / raw) To: Richard Zak, Peter Maydell; +Cc: Thomas Huth, QEMU Developers On 7/4/21 12:06 AM, Richard Zak wrote: > For MIPS (all sub-targets, 64-bit and EL) & xtensa(eb), the compiler > complains about running out of memory. Best I can see, that's not what > actually happens, but that's the error message. I was going to > investigate this later, but this was the error which was causing the > test with the Haiku VM with that corresponding make target. My desktop & > laptop have 64 GB, and I'm pretty sure it didn't get to that point. > > /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: > error: > libqemu-mips-softmmu.fa.p/target_mips_tcg_sysemu_mips-semi.c.o(.rodata) > is too large (0xffff405a bytes) This comes the following array from commit 2c44b19c199: +/* Errno values taken from asm-mips/errno.h */ +static uint16_t host_to_mips_errno[] = { + [ENAMETOOLONG] = 78, +#ifdef EOVERFLOW + [EOVERFLOW] = 79, +#endif +#ifdef ELOOP + [ELOOP] = 90, +#endif +}; See how Haiku handles POSIX errno: https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h #define B_GENERAL_ERROR_BASE INT_MIN #define B_POSIX_ERROR_BASE (B_GENERAL_ERROR_BASE + 0x7000) #define B_POSIX_ENOMEM B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 0) #define E2BIG B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 1) #define ECHILD B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 2) ... ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-04 9:03 ` Philippe Mathieu-Daudé @ 2021-07-04 9:27 ` Philippe Mathieu-Daudé 2021-07-04 9:30 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 13+ messages in thread From: Philippe Mathieu-Daudé @ 2021-07-04 9:27 UTC (permalink / raw) To: Richard Zak, Peter Maydell; +Cc: Thomas Huth, QEMU Developers On 7/4/21 11:03 AM, Philippe Mathieu-Daudé wrote: > On 7/4/21 12:06 AM, Richard Zak wrote: >> For MIPS (all sub-targets, 64-bit and EL) & xtensa(eb), the compiler >> complains about running out of memory. Best I can see, that's not what >> actually happens, but that's the error message. I was going to >> investigate this later, but this was the error which was causing the >> test with the Haiku VM with that corresponding make target. My desktop & >> laptop have 64 GB, and I'm pretty sure it didn't get to that point. >> >> /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: >> final link failed: memory exhausted > See how Haiku handles POSIX errno: > > https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h > > #define B_GENERAL_ERROR_BASE INT_MIN > > #define B_POSIX_ERROR_BASE (B_GENERAL_ERROR_BASE + 0x7000) > > #define B_POSIX_ENOMEM B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 0) > #define E2BIG B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 1) > #define ECHILD B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 2) > ... > Same problem with Xtensa: static uint32_t errno_h2g(int host_errno) { static const uint32_t guest_errno[] = { [EPERM] = TARGET_EPERM, [ENOENT] = TARGET_ENOENT, [ESRCH] = TARGET_ESRCH, [EINTR] = TARGET_EINTR, [EIO] = TARGET_EIO, [ENXIO] = TARGET_ENXIO, [E2BIG] = TARGET_E2BIG, [ENOEXEC] = TARGET_ENOEXEC, ... ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-04 9:27 ` Philippe Mathieu-Daudé @ 2021-07-04 9:30 ` Philippe Mathieu-Daudé 2021-07-04 14:20 ` Richard Zak 0 siblings, 1 reply; 13+ messages in thread From: Philippe Mathieu-Daudé @ 2021-07-04 9:30 UTC (permalink / raw) To: Richard Zak, Peter Maydell; +Cc: Thomas Huth, QEMU Developers, Laurent Vivier On 7/4/21 11:27 AM, Philippe Mathieu-Daudé wrote: > On 7/4/21 11:03 AM, Philippe Mathieu-Daudé wrote: >> On 7/4/21 12:06 AM, Richard Zak wrote: >>> For MIPS (all sub-targets, 64-bit and EL) & xtensa(eb), the compiler >>> complains about running out of memory. Best I can see, that's not what >>> actually happens, but that's the error message. I was going to >>> investigate this later, but this was the error which was causing the >>> test with the Haiku VM with that corresponding make target. My desktop & >>> laptop have 64 GB, and I'm pretty sure it didn't get to that point. >>> >>> > /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: >>> final link failed: memory exhausted > >> See how Haiku handles POSIX errno: >> >> https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h >> >> #define B_GENERAL_ERROR_BASE INT_MIN >> >> #define B_POSIX_ERROR_BASE (B_GENERAL_ERROR_BASE + 0x7000) >> >> #define B_POSIX_ENOMEM B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 0) >> #define E2BIG B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 1) >> #define ECHILD B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 2) >> ... >> > > Same problem with Xtensa: > > static uint32_t errno_h2g(int host_errno) > { > static const uint32_t guest_errno[] = { > [EPERM] = TARGET_EPERM, > [ENOENT] = TARGET_ENOENT, > [ESRCH] = TARGET_ESRCH, > [EINTR] = TARGET_EINTR, > [EIO] = TARGET_EIO, > [ENXIO] = TARGET_ENXIO, > [E2BIG] = TARGET_E2BIG, > [ENOEXEC] = TARGET_ENOEXEC, > ... Annoyingly enough this is also how linux-user/syscall.c does (thinking about code re-use): /* * This list is the union of errno values overridden in asm-<arch>/errno.h * minus the errnos that are not actually generic to all archs. */ static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = { [EAGAIN] = TARGET_EAGAIN, [EIDRM] = TARGET_EIDRM, [ECHRNG] = TARGET_ECHRNG, [EL2NSYNC] = TARGET_EL2NSYNC, [EL3HLT] = TARGET_EL3HLT, [EL3RST] = TARGET_EL3RST, ... ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-04 9:30 ` Philippe Mathieu-Daudé @ 2021-07-04 14:20 ` Richard Zak 2021-07-04 16:16 ` Thomas Huth 0 siblings, 1 reply; 13+ messages in thread From: Richard Zak @ 2021-07-04 14:20 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Peter Maydell, Thomas Huth, QEMU Developers, Laurent Vivier [-- Attachment #1: Type: text/plain, Size: 3072 bytes --] Exactly. One of the developers on the Haiku forum shared with me the patch that Haiku uses for qemu, and it has a few lines concerning error codes. I'll look into this. https://github.com/haikuports/haikuports/blob/14c2cab5428145b93232cb69683a67bbe68a9f06/app-emulation/qemu/patches/qemu-3.1.1.1.patchset This is a stopper for the configure script changes? I was thinking that smaller changes would be best to keep the review more manageable. I'm also still new around here :) În dum., 4 iul. 2021 la 05:30, Philippe Mathieu-Daudé <f4bug@amsat.org> a scris: > On 7/4/21 11:27 AM, Philippe Mathieu-Daudé wrote: > > On 7/4/21 11:03 AM, Philippe Mathieu-Daudé wrote: > >> On 7/4/21 12:06 AM, Richard Zak wrote: > >>> For MIPS (all sub-targets, 64-bit and EL) & xtensa(eb), the compiler > >>> complains about running out of memory. Best I can see, that's not what > >>> actually happens, but that's the error message. I was going to > >>> investigate this later, but this was the error which was causing the > >>> test with the Haiku VM with that corresponding make target. My desktop > & > >>> laptop have 64 GB, and I'm pretty sure it didn't get to that point. > >>> > >>> > > > /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: > >>> final link failed: memory exhausted > > > >> See how Haiku handles POSIX errno: > >> > >> https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h > >> > >> #define B_GENERAL_ERROR_BASE INT_MIN > >> > >> #define B_POSIX_ERROR_BASE (B_GENERAL_ERROR_BASE + 0x7000) > >> > >> #define B_POSIX_ENOMEM B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 0) > >> #define E2BIG B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 1) > >> #define ECHILD B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 2) > >> ... > >> > > > > Same problem with Xtensa: > > > > static uint32_t errno_h2g(int host_errno) > > { > > static const uint32_t guest_errno[] = { > > [EPERM] = TARGET_EPERM, > > [ENOENT] = TARGET_ENOENT, > > [ESRCH] = TARGET_ESRCH, > > [EINTR] = TARGET_EINTR, > > [EIO] = TARGET_EIO, > > [ENXIO] = TARGET_ENXIO, > > [E2BIG] = TARGET_E2BIG, > > [ENOEXEC] = TARGET_ENOEXEC, > > ... > > Annoyingly enough this is also how linux-user/syscall.c does > (thinking about code re-use): > > /* > * This list is the union of errno values overridden in asm-<arch>/errno.h > * minus the errnos that are not actually generic to all archs. > */ > static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = { > [EAGAIN] = TARGET_EAGAIN, > [EIDRM] = TARGET_EIDRM, > [ECHRNG] = TARGET_ECHRNG, > [EL2NSYNC] = TARGET_EL2NSYNC, > [EL3HLT] = TARGET_EL3HLT, > [EL3RST] = TARGET_EL3RST, > ... > -- Regards, Richard J. Zak Professional Genius PGP Key: https://keybase.io/rjzak/key.asc [-- Attachment #2: Type: text/html, Size: 4407 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-04 14:20 ` Richard Zak @ 2021-07-04 16:16 ` Thomas Huth 2021-07-04 16:39 ` Richard Zak 0 siblings, 1 reply; 13+ messages in thread From: Thomas Huth @ 2021-07-04 16:16 UTC (permalink / raw) To: Richard Zak, Philippe Mathieu-Daudé Cc: Peter Maydell, QEMU Developers, Laurent Vivier Meta comment: Please avoid ƃuıʇsod uʍop ǝpısdn ... it makes threads much harder to read. On 04/07/2021 16.20, Richard Zak wrote: > Exactly. One of the developers on the Haiku forum shared with me the patch > that Haiku uses for qemu, and it has a few lines concerning error codes. > I'll look into this. > https://github.com/haikuports/haikuports/blob/14c2cab5428145b93232cb69683a67bbe68a9f06/app-emulation/qemu/patches/qemu-3.1.1.1.patchset So something like the change in target/xtensa/xtensa-semi.c is the right way to go - using a switch-case statement looks like the right fix instead of disabling the targets in the configure script. > This is a stopper for the configure script changes? Well, if anyhow possible, we should avoid hacks like disabling a target in the configure script. Since this problem seems to be understood, you should aim for the right fix instead. Thomas > În dum., 4 iul. 2021 la 05:30, Philippe Mathieu-Daudé <f4bug@amsat.org > <mailto:f4bug@amsat.org>> a scris: > > On 7/4/21 11:27 AM, Philippe Mathieu-Daudé wrote: > > On 7/4/21 11:03 AM, Philippe Mathieu-Daudé wrote: > >> On 7/4/21 12:06 AM, Richard Zak wrote: > >>> For MIPS (all sub-targets, 64-bit and EL) & xtensa(eb), the compiler > >>> complains about running out of memory. Best I can see, that's not what > >>> actually happens, but that's the error message. I was going to > >>> investigate this later, but this was the error which was causing the > >>> test with the Haiku VM with that corresponding make target. My > desktop & > >>> laptop have 64 GB, and I'm pretty sure it didn't get to that point. > >>> > >>> > > > /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: > >>> final link failed: memory exhausted > > > >> See how Haiku handles POSIX errno: > >> > >> > https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h > <https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h> > >> > >> #define B_GENERAL_ERROR_BASE INT_MIN > >> > >> #define B_POSIX_ERROR_BASE (B_GENERAL_ERROR_BASE + 0x7000) > >> > >> #define B_POSIX_ENOMEM B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 0) > >> #define E2BIG B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 1) > >> #define ECHILD B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 2) > >> ... > >> > > > > Same problem with Xtensa: > > > > static uint32_t errno_h2g(int host_errno) > > { > > static const uint32_t guest_errno[] = { > > [EPERM] = TARGET_EPERM, > > [ENOENT] = TARGET_ENOENT, > > [ESRCH] = TARGET_ESRCH, > > [EINTR] = TARGET_EINTR, > > [EIO] = TARGET_EIO, > > [ENXIO] = TARGET_ENXIO, > > [E2BIG] = TARGET_E2BIG, > > [ENOEXEC] = TARGET_ENOEXEC, > > ... > > Annoyingly enough this is also how linux-user/syscall.c does > (thinking about code re-use): > > /* > * This list is the union of errno values overridden in asm-<arch>/errno.h > * minus the errnos that are not actually generic to all archs. > */ > static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = { > [EAGAIN] = TARGET_EAGAIN, > [EIDRM] = TARGET_EIDRM, > [ECHRNG] = TARGET_ECHRNG, > [EL2NSYNC] = TARGET_EL2NSYNC, > [EL3HLT] = TARGET_EL3HLT, > [EL3RST] = TARGET_EL3RST, > ... > > > > -- > Regards, > > Richard J. Zak > Professional Genius > PGP Key: https://keybase.io/rjzak/key.asc <https://keybase.io/rjzak/key.asc> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-04 16:16 ` Thomas Huth @ 2021-07-04 16:39 ` Richard Zak 2021-07-04 16:51 ` Thomas Huth 0 siblings, 1 reply; 13+ messages in thread From: Richard Zak @ 2021-07-04 16:39 UTC (permalink / raw) To: Thomas Huth Cc: Peter Maydell, Laurent Vivier, Philippe Mathieu-Daudé, QEMU Developers [-- Attachment #1: Type: text/plain, Size: 4650 bytes --] Regarding upside down text, where did that occur? I certainly didn't do that intentionally. Maybe an encoding error somewhere? I'll work on incorporating the changes in the patch file. I'll make another post where the other configure changes are in place, without the target exclude list. În dum., 4 iul. 2021 la 12:23, Thomas Huth <thuth@redhat.com> a scris: > > Meta comment: Please avoid > ƃuıʇsod uʍop ǝpısdn > ... it makes threads much harder to read. > > On 04/07/2021 16.20, Richard Zak wrote: > > Exactly. One of the developers on the Haiku forum shared with me the > patch > > that Haiku uses for qemu, and it has a few lines concerning error codes. > > I'll look into this. > > > https://github.com/haikuports/haikuports/blob/14c2cab5428145b93232cb69683a67bbe68a9f06/app-emulation/qemu/patches/qemu-3.1.1.1.patchset > > So something like the change in target/xtensa/xtensa-semi.c is the right > way > to go - using a switch-case statement looks like the right fix instead of > disabling the targets in the configure script. > > > This is a stopper for the configure script changes? > > Well, if anyhow possible, we should avoid hacks like disabling a target in > the configure script. Since this problem seems to be understood, you > should > aim for the right fix instead. > > Thomas > > > În dum., 4 iul. 2021 la 05:30, Philippe Mathieu-Daudé <f4bug@amsat.org > > <mailto:f4bug@amsat.org>> a scris: > > > > On 7/4/21 11:27 AM, Philippe Mathieu-Daudé wrote: > > > On 7/4/21 11:03 AM, Philippe Mathieu-Daudé wrote: > > >> On 7/4/21 12:06 AM, Richard Zak wrote: > > >>> For MIPS (all sub-targets, 64-bit and EL) & xtensa(eb), the > compiler > > >>> complains about running out of memory. Best I can see, that's > not what > > >>> actually happens, but that's the error message. I was going to > > >>> investigate this later, but this was the error which was > causing the > > >>> test with the Haiku VM with that corresponding make target. My > > desktop & > > >>> laptop have 64 GB, and I'm pretty sure it didn't get to that > point. > > >>> > > >>> > > > > > > /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: > > >>> final link failed: memory exhausted > > > > > >> See how Haiku handles POSIX errno: > > >> > > >> > > > https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h > > < > https://github.com/haiku/haiku/blob/master/headers/os/support/Errors.h> > > >> > > >> #define B_GENERAL_ERROR_BASE INT_MIN > > >> > > >> #define B_POSIX_ERROR_BASE (B_GENERAL_ERROR_BASE + 0x7000) > > >> > > >> #define B_POSIX_ENOMEM B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 0) > > >> #define E2BIG B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 1) > > >> #define ECHILD B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 2) > > >> ... > > >> > > > > > > Same problem with Xtensa: > > > > > > static uint32_t errno_h2g(int host_errno) > > > { > > > static const uint32_t guest_errno[] = { > > > [EPERM] = TARGET_EPERM, > > > [ENOENT] = TARGET_ENOENT, > > > [ESRCH] = TARGET_ESRCH, > > > [EINTR] = TARGET_EINTR, > > > [EIO] = TARGET_EIO, > > > [ENXIO] = TARGET_ENXIO, > > > [E2BIG] = TARGET_E2BIG, > > > [ENOEXEC] = TARGET_ENOEXEC, > > > ... > > > > Annoyingly enough this is also how linux-user/syscall.c does > > (thinking about code re-use): > > > > /* > > * This list is the union of errno values overridden in > asm-<arch>/errno.h > > * minus the errnos that are not actually generic to all archs. > > */ > > static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = { > > [EAGAIN] = TARGET_EAGAIN, > > [EIDRM] = TARGET_EIDRM, > > [ECHRNG] = TARGET_ECHRNG, > > [EL2NSYNC] = TARGET_EL2NSYNC, > > [EL3HLT] = TARGET_EL3HLT, > > [EL3RST] = TARGET_EL3RST, > > ... > > > > > > > > -- > > Regards, > > > > Richard J. Zak > > Professional Genius > > PGP Key: https://keybase.io/rjzak/key.asc < > https://keybase.io/rjzak/key.asc> > > -- Regards, Richard J. Zak Professional Genius PGP Key: https://keybase.io/rjzak/key.asc [-- Attachment #2: Type: text/html, Size: 6919 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-04 16:39 ` Richard Zak @ 2021-07-04 16:51 ` Thomas Huth 2021-07-04 16:58 ` Richard Zak 0 siblings, 1 reply; 13+ messages in thread From: Thomas Huth @ 2021-07-04 16:51 UTC (permalink / raw) To: Richard Zak Cc: Peter Maydell, Laurent Vivier, Philippe Mathieu-Daudé, QEMU Developers On 04/07/2021 18.39, Richard Zak wrote: > Regarding upside down text, where did that occur? I certainly didn't do that > intentionally. Maybe an encoding error somewhere? That was meant as a humorous way to say that you should avoid top posting, but apparently it was just confusing instead. Sorry for that. Anyway, we use interleaved posting on qemu-devel. See e.g.: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style Thomas ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-04 16:51 ` Thomas Huth @ 2021-07-04 16:58 ` Richard Zak 2021-07-04 18:34 ` Thomas Huth 0 siblings, 1 reply; 13+ messages in thread From: Richard Zak @ 2021-07-04 16:58 UTC (permalink / raw) To: Thomas Huth Cc: Peter Maydell, Laurent Vivier, Philippe Mathieu-Daudé, QEMU Developers [-- Attachment #1: Type: text/plain, Size: 828 bytes --] În dum., 4 iul. 2021 la 12:51, Thomas Huth <thuth@redhat.com> a scris: > On 04/07/2021 18.39, Richard Zak wrote: > > Regarding upside down text, where did that occur? I certainly didn't do > that > > intentionally. Maybe an encoding error somewhere? > > That was meant as a humorous way to say that you should avoid top posting, > but apparently it was just confusing instead. Sorry for that. Anyway, we > use > interleaved posting on qemu-devel. See e.g.: > > https://en.wikipedia.org/wiki/Posting_style#Interleaved_style > > Thomas > Ahh got it. I hadn't done that since Gmail wants to hide the test I'm responding to. I'm assuming that revisions to a patch should still be a new post, not in a reply? -- Regards, Richard J. Zak Professional Genius PGP Key: https://keybase.io/rjzak/key.asc [-- Attachment #2: Type: text/html, Size: 1519 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-04 16:58 ` Richard Zak @ 2021-07-04 18:34 ` Thomas Huth 0 siblings, 0 replies; 13+ messages in thread From: Thomas Huth @ 2021-07-04 18:34 UTC (permalink / raw) To: Richard Zak Cc: Peter Maydell, Laurent Vivier, Philippe Mathieu-Daudé, QEMU Developers On 04/07/2021 18.58, Richard Zak wrote: > > În dum., 4 iul. 2021 la 12:51, Thomas Huth <thuth@redhat.com > <mailto:thuth@redhat.com>> a scris: > > On 04/07/2021 18.39, Richard Zak wrote: > > Regarding upside down text, where did that occur? I certainly didn't > do that > > intentionally. Maybe an encoding error somewhere? > > That was meant as a humorous way to say that you should avoid top posting, > but apparently it was just confusing instead. Sorry for that. Anyway, we > use > interleaved posting on qemu-devel. See e.g.: > > https://en.wikipedia.org/wiki/Posting_style#Interleaved_style > <https://en.wikipedia.org/wiki/Posting_style#Interleaved_style> > > Thomas > > Ahh got it. I hadn't done that since Gmail wants to hide the test I'm > responding to. I'm assuming that revisions to a patch should still be a new > post, not in a reply? Right, different revisions should go into a new post, with a version indication in the subject, e.g: [PATCH v3] Fix for Haiku Thomas ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] Fix for Haiku 2021-07-03 21:10 [PATCH 1/2] Fix for Haiku Richard Zak 2021-07-03 21:39 ` Peter Maydell @ 2021-07-04 7:29 ` Thomas Huth 1 sibling, 0 replies; 13+ messages in thread From: Thomas Huth @ 2021-07-04 7:29 UTC (permalink / raw) To: Richard Zak, QEMU Developers; +Cc: Peter Maydell, Philippe Mathieu-Daudé On 03/07/2021 23.10, Richard Zak wrote: > For Haiku: turn off TPM, disable mips & xtensa emulators as they won't > compile on Haiku, use Haiku's capstone. I'm resending this as I previously > sent to the wrong address. This should resolve the memory issue with "make > vm-build-haiku.x86_64" > > Signed-off-by: Richard Zak <richard.j.zak@gmail.com > <mailto:richard.j.zak@gmail.com>> > --- > configure | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index e799d908a3..a965c6c72e 100755 > --- a/configure > +++ b/configure > @@ -358,6 +358,7 @@ oss_lib="" > bsd="no" > linux="no" > solaris="no" > +haiku="no" > profiler="no" > cocoa="auto" > softmmu="yes" > @@ -769,7 +770,10 @@ SunOS) > ;; > Haiku) > haiku="yes" > - QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE $QEMU_CFLAGS" > + tpm="no" Why is tpm support not auto-detected? > + capstone="system" > + target_list_exclude="mips-softmmu mipsel-softmmu mips64-softmmu > mips64el-softmmu xtensa-softmmu xtensaeb-softmmu" I think it's rather a bad idea to set target_list_exclude here since this will prevent that the users can use their own "--target-list" and "--target-list-exclude" switches for the configure script. But maybe you could add some logic later that checks whether the user set a target list, and if that's not the case then tweak the target_list_exclude accordingly. > + QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE -I`finddir > B_SYSTEM_HEADERS_DIRECTORY`/capstone $QEMU_CFLAGS" > ;; > Linux) > audio_drv_list="try-pa oss" > -- > 2.25.1 Thomas ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2021-07-04 18:35 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-07-03 21:10 [PATCH 1/2] Fix for Haiku Richard Zak 2021-07-03 21:39 ` Peter Maydell 2021-07-03 22:06 ` Richard Zak 2021-07-04 9:03 ` Philippe Mathieu-Daudé 2021-07-04 9:27 ` Philippe Mathieu-Daudé 2021-07-04 9:30 ` Philippe Mathieu-Daudé 2021-07-04 14:20 ` Richard Zak 2021-07-04 16:16 ` Thomas Huth 2021-07-04 16:39 ` Richard Zak 2021-07-04 16:51 ` Thomas Huth 2021-07-04 16:58 ` Richard Zak 2021-07-04 18:34 ` Thomas Huth 2021-07-04 7:29 ` Thomas Huth
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.