Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build instructions cleanup + Windows instructions #6

Closed
wants to merge 4 commits into from

Conversation

csnover
Copy link
Contributor

@csnover csnover commented Feb 27, 2016

No description provided.

@RayKoopa
Copy link

Thank god! I was just looking for this.

@wjp
Copy link
Owner

wjp commented Feb 28, 2016

Thanks for the improved docs! I've cherry-picked them into the master branch rather than into this still very hacky pmode branch.

@wjp
Copy link
Owner

wjp commented Feb 28, 2016

@RayKoopa Please let us know how things go.

@wjp wjp closed this Feb 28, 2016
@RayKoopa
Copy link

@wjp Can't seem to compile the modified dosbox build. My build system is i686-pc-mingw32, yet it complains as follows:

d:/idasdk68/include/pro.h:735:84: error: conflicting declaration of C function 'int memicmp(const void*, const void*, size_t)'
 idaman THREAD_SAFE int ida_export memicmp(const void *x, const void *y, size_t size);

I thought I give the mingw64 note a try, and tried to find #if __GNUC__ , but my pro.h doesn't have such surrounding a memicmp declaration, only an #ifdef __GNUC__, you probably mean that?

Still, I tried changing that to #if 0, but then compilation fails as follows:

d:/idados/dosbox_debmod.cpp: In function 'debmod_t* create_debug_session()':
d:/idados/dosbox_debmod.cpp:1146:30: error: invalid new-expression of abstract class type 'dosbox_debmod_t'
   return new dosbox_debmod_t();
                              ^
In file included from d:/downloads/idados/dosbox_debmod.cpp:11:0:
d:/idados/dosbox_debmod.h:44:7: note:   because the following virtual functions are pure within 'dosbox_debmod_t':
 class dosbox_debmod_t: public pc_debmod_t

I'm not too experienced with command line compilation, nor mingw / msys, maybe I just did a stupid error...

@wjp
Copy link
Owner

wjp commented Feb 28, 2016

It looks like you're using IDA 6.8? You may have to revert 8b0ef6a then.

@csnover
Copy link
Contributor Author

csnover commented Feb 28, 2016

I suppose that we should also pass version in a -D flag to allow compilation against multiple IDA versions, instead of just incompatibly changing the signatures as new versions appear.

Also, sorry about the #if vs #ifdef documentation error, that was my fault. I’ll send an update if @wjp doesn’t get to it first.

@RayKoopa
Copy link

I could compile it now with reverting the two lines to get 6.8 compatibility again (still had to put wspiapi.h in my new MinGW installation, but then it worked).

@csnover Thanks, I was just a bit worried because my build system is actually mingw32 and not 64, so I thought the note does not apply to my system.

I try debugging with DOSBox in a few...

@RayKoopa
Copy link

Now I couldn't start dosbox since it's missing (mangled name is sadly everything I know) _ZSt24__throw_out_of_range_fmtPKcz in dosbox.exe?

@csnover
Copy link
Contributor Author

csnover commented Feb 28, 2016

I was just a bit worried because my build system is actually mingw32 and not 64, so I thought the note does not apply to my system.

Hmm, I don’t know much about mingw32, except that based on what I have read I don’t know why anyone would choose it instead of MinGW-w64 these days. Maybe you should try MinGW-w64 instead? It takes only a couple of minutes to install with msys2 and is what I used to build.

I couldn't start dosbox since it's missing (mangled name is sadly everything I know) _ZSt24__throw_out_of_range_fmtPKcz in dosbox.exe?

That’s std::__throw_out_of_range_fmt(char const*, ...), which would presumably be from libstdc++. Did you build with dynamic linking, and then forgot to put libstdc++ DLL in your executable path?

@RayKoopa
Copy link

Sigh... after fiddling around 2 more hours trying to compile everything with mingw64, I give up. I could compile the IDA plugin well, had to install a lot of additional stuff to even get somewhere with the DOSBox compilation and a fresh MSys installation, but now it's complaining about hundreds of missing types in idaman. I don't understand much of these, as I normally don't use MinGW / MSys at all. It would be nice if there could be some pre-build releases, but I don't think they'll come from me...

@csnover
Copy link
Contributor Author

csnover commented Feb 28, 2016

had to install a lot of additional stuff to even get somewhere with the DOSBox compilation

Hmm, this doesn’t sound right. After following the normal msys2 installation instructions, all you should need to install (unless I am forgetting something which configure will warn you about) is base-devel (or just autoconf/automake/autogen), mingw-w64-i686-toolchain, and mingw-w64-i686-SDL.

Unfortunately without more specific details about what your exact install/build steps are, the actual output that is complaining about the missing types, etc. it’s impossible to help say what is wrong.

@RayKoopa
Copy link

I made a new issue #7 for this and explained all my steps very detailledly, as I'm a little beginner-confused. =(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants