View previous topic :: View next topic |
Author |
Message |
k9dog Tux's lil' helper
Joined: 22 Jun 2009 Posts: 103 Location: Denmark
|
Posted: Thu Oct 18, 2018 8:47 pm Post subject: e-uae what should be avoided? |
|
|
Emulation. Amiga. Windows based emulator failing in recent enviroments from the looks. I tried with various gcc and with python 2.7 and 3.6. Various results.
Anyone got any idea what best enviroment to compile this? e-uae seems to be the prefered choice for many platforms, including PPC Amigas. Getting this Windows redeveloped bugger running is not without some bumps.
A bit of what seems to be stopping the build (gcc 7.3, python 2.7). I've tried other gcc versions as well
Code: | compemu_raw_x86.c: In function ‘handle_access’:
compemu_raw_x86.c:2199:60: error: dereferencing pointer to incomplete type ‘struct ucontext’
#define CONTEXT_EIP(context) (((struct ucontext *)context)->uc_mcontext.gregs[REG_EIP])
^
compemu_raw_x86.c:2217:32: note: in expansion of macro ‘CONTEXT_EIP’
uae_u8 *i = (uae_u8 *) CONTEXT_EIP (context);
^~~~~~~~~~~
compemu_raw_x86.c: At top level:
compemu_raw_x86.c:2472:37: warning: ‘struct siginfo’ declared inside parameter list will not be visible outside of this definition or declaration
static void vec (int signum, struct siginfo *info, void *context)
^~~~~~~
compemu_raw_x86.c: In function ‘vec’:
compemu_raw_x86.c:2199:60: error: dereferencing pointer to incomplete type ‘struct ucontext’
#define CONTEXT_EIP(context) (((struct ucontext *)context)->uc_mcontext.gregs[REG_EIP])
^
compemu_raw_x86.c:2474:32: note: in expansion of macro ‘CONTEXT_EIP’
uae_u8 *i = (uae_u8 *) CONTEXT_EIP (context);
^~~~~~~~~~~
compemu_support.c: In function ‘build_comp’:
compemu_support.c:5588:19: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
act.sa_sigaction = vec;
^
|
This is only part of the build.log, and from what I can see where error occur. If you want I can try to pastebin some more details. At this point I'm not asking for anyone to do any in depth debugging, just if there is any known work-arounds, maybe different overlays. The ebuild seems to be very alone. The original uae builds. X11 is disliked, but using SDL. |
|
Back to top |
|
|
Hu Moderator
Joined: 06 Mar 2007 Posts: 21489
|
Posted: Fri Oct 19, 2018 1:49 am Post subject: |
|
|
According to the glibc wiki page for release 2.26, the name struct ucontext is no longer available. Use ucontext_t instead. |
|
Back to top |
|
|
k9dog Tux's lil' helper
Joined: 22 Jun 2009 Posts: 103 Location: Denmark
|
Posted: Fri Oct 19, 2018 11:37 am Post subject: |
|
|
This answers it fully. I'm running glibc 2.27, which also got problems elseswhere (like lazarus).
Patched the source in a user directory (just from distributed source). Installed with make install as root. Fixing all occurences of "struct ucontext" with "ucontext_t" was truely all it took. All located in 1 file src/compemu_raw_x86.c.
Knowing what we need to fix in the source, I might make a patchfile or contact the author if he is still around. Making fix official would of course require an ifdef/else so fix is applied dependent of which model is used to build. (Imagine that.. We need to support old code)
Contacted author according to readme. Linked to this page. If he/she/they already knows, he/she/they can ignore, if not it should point them to the problem and a solution. I don't want anyone to use more time than needed. Easily fixed, but you need to know. |
|
Back to top |
|
|
Hu Moderator
Joined: 06 Mar 2007 Posts: 21489
|
Posted: Fri Oct 19, 2018 10:41 pm Post subject: |
|
|
You should never make install as root.
Fixing this is actually easier than you thought. Older glibc defines both names, so you can unconditionally switch to the name ucontext_t. I checked the headers of a system backup from glibc-2.25 to confirm. I don't have anything older still readily accessible. |
|
Back to top |
|
|
|