PCSX2 Linux Development
Ugh... stuck in wxwidgets dependency hell again. Angry it is pissing me off to a great extent!

Are there any other arch users that are having trouble with this? For some reason now lib32-wxgtk2.8 requires the 64 bit wxgtk2.8 and it is throwing up complaints in cmake that they are conflicting.
"I know now why you cry... but it is something I can never do."
-Emotion Engine
Reply

Sponsored links

I figured out a fix after reading the pkgbuild from the arch repo, you need to add these flags to cmake:

-DwxWidgets_CONFIG_EXECUTABLE='/usr/bin/wx-config32-2.8'
-DwxWidgets_wxrc_EXECUTABLE='/usr/bin/wxrc32-2.8'

I had done this before, except this time around I needed to explicitly state we are using the 32bit wxgtk2.8, not the 64 bit wxgtk2.8.
"I know now why you cry... but it is something I can never do."
-Emotion Engine
Reply
Where are installed wx lib? There is a hack in cmake to replace 64 bits path with 32 bits one but I'm not sure it is still working on arch.
Code:
# Force the use of 32 bit library configuration on
        # 64 bits machine with 32 bits library in /usr/lib32
        if(_ARCH_64 AND !64BIT_BUILD)
            ## There is no guarantee that wx-config is a link to a 32 bits library. So you need to force the destinity
            # Library can go into 3 path major paths (+ multiarch but you will see that later when implementation is done)
            # 1/ /usr/lib32 (32 bits only)
            # 2/ /usr/lib64 (64 bits only)
            # 3/ /usr/lib   (32 or 64 bits depends on distributions)
            if (EXISTS "/usr/lib32/wx")
                STRING(REGEX REPLACE "/usr/lib/wx" "/usr/lib32/wx" wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}")
                STRING(REGEX REPLACE "/usr/lib64/wx" "/usr/lib32/wx" wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}")
            endif (EXISTS "/usr/lib32/wx")
            if (EXISTS "/usr/lib/wx")
                STRING(REGEX REPLACE "/usr/lib64/wx" "/usr/lib/wx" wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}")
            endif (EXISTS "/usr/lib/wx")
            # Multiarch ubuntu/debian
            STRING(REGEX REPLACE "/usr/lib/x86_64-linux-gnu" "/usr/lib/i386-linux-gnu" wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}")
        endif()
Reply
My fix listed in the previous post actually worked well, as there is a separate 32 bit wxconfig. I was able to compile and use the GUI.
"I know now why you cry... but it is something I can never do."
-Emotion Engine
Reply
Could you give the output of those 2 commands
Code:
wx-config --cxxflags
Code:
/usr/bin/wx-config32-2.8 -cxxflags
Reply
I'm not Krysto, but I also run 64 bit Arch.

wx-config doesn't exist on my system; but wx-config-2.8 does, as does wxconfig32-2.8 (which I use in my CodeBlocks project files).

Code:
wx-config-2.8 --cxxflags
-I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread

wx-config32-2.8 --cxxflags
-I/usr/lib32/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
Reply
Thanks. I don't get it. Normally Cmake must replace /usr/lib/wx to /usr/lib32/wx so it must be transparent.
Reply
Gregory, any general debugging tips for GSdx you can share with me? My code compiles just fine but pcsx2 freezes about 1 second after running.

I know I'm being vague Tongue Just give me a good place to start. Like when you break something in GSdx what do you usually do?
"I know now why you cry... but it is something I can never do."
-Emotion Engine
Reply
1/ Use the replayer, avoid all issue from core and others plugins
2/ use latest git that now support address sanitizer
Code:
./build.sh --asan
Run it this way if you use PCSX2.
Code:
ASAN_OPTIONS=allow_user_segv_handler=1 ./bin/pcsx2-dbg
3/ run inside a debugger to generate a back trace
Note: again with PCSX2, you need to disable the default SIGSEGV handler.
Code:
handle SIGSEGV noprint

General tip sometimes removing the default handler make it impossible to catch the unexpected SIGSEGV.
Reply
If i understand this correctly, we are disabling segfault notifications so we can see what other issues are occurring besides those?
"I know now why you cry... but it is something I can never do."
-Emotion Engine
Reply




Users browsing this thread: 1 Guest(s)