Jump to content

Getting the internationalization branch to build on more than one machine


Recommended Posts

Small return : with Github Leper on a new ubuntu installation, all is perfect until /0ad/binaries/system/test which is OK, but as Gallaecio warns in item 4 of its first post the /0ad/binaries/system/pyrogenesis return a "Segmentation fault (core dumped)"

I'll keep looking, but any idea is welcome ;)
Edited by Loki72
Link to comment
Share on other sites

For reproducibility (Problem solved, this process works with the latest version of leper):

Installations general dependencies

$ sudo apt-get install build-essential libboost-dev libboost-filesystem-dev   \    libboost-signals-dev libcurl4-gnutls-dev libenet-dev libgloox-dev       \    libjpeg-dev libminiupnpc-dev libmozjs185-dev libnvtt-dev libogg-dev     \    libopenal-dev libpng-dev libsdl-dev libvorbis-dev libwxgtk2.8-dev       \    libxcursor-dev libxml2-dev subversion zlib1g-dev

Installations specific dependencies for i18n

$ sudo apt-get install git cmake libicu-dev

Clone your Git

$ git clone -b i18n https://github.com/leper/0ad.git

Build tinygettext

$ cd /home/loki/0ad/libraries/source/tinygettext/$ '/home/loki/0ad/libraries/source/tinygettext/build.sh'

Build 0AD

$ cd /home/loki/0ad/build/workspaces$ ./update-workspaces.sh -j4$ cd gcc$ make -j4

Test

$ '/home/loki/0ad/binaries/system/test'Running 289 tests.................................................................................................................................................................................................................................................................................................OK!

---------------------------------------------------------------------------------------

gdb (if I understand what you asked me)

(gdb) rStarting program: /home/loki/0ad/binaries/system/pyrogenesis[Thread debugging using libthread_db enabled]Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".Cache: 500 (total: 7941) MiBTIMER| InitVfs: 662.946 us[New Thread 0x7fffc919c700 (LWP 3398)][Thread 0x7fffc919c700 (LWP 3398) exited][New Thread 0x7fffc919c700 (LWP 3399)][New Thread 0x7fffc499a700 (LWP 3400)]Sound: AlcInit success, using OpenAL Soft[New Thread 0x7fffbffff700 (LWP 3401)][New Thread 0x7fffbf7fe700 (LWP 3402)]TIMER| CONFIG_Init: 6.6871 ms[New Thread 0x7fffbebbe700 (LWP 3404)][New Thread 0x7fffbe2bc700 (LWP 3405)]ATTENTION: default value of option force_s3tc_enable overridden by environment.TIMER| RunHardwareDetection: 21.0221 msTIMER| write_sys_info: 16.4445 ms[New Thread 0x7fffb2991700 (LWP 3406)]TIMER| InitRenderer: 1.62328 msTIMER| ps_console: 837.86 usTIMER| ps_lang_hotkeys: 685.721 usTIMER| common/setup.xml: 764.372 usTIMER| common/styles.xml: 59.235 usTIMER| common/sprite1.xml: 1.18155 msTIMER| common/init.xml: 1.27552 msTIMER| common/common_sprites.xml: 1.65389 msTIMER| common/common_styles.xml: 225.058 usTIMER| pregame/sprites.xml: 391.454 usTIMER| pregame/styles.xml: 50.37 usProgram received signal SIGSEGV, Segmentation fault.0x00007ffff66fb036 in tinygettext::Dictionary::translate(std::map<std::string, std::vector<std::string, std::allocator<std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > > const&, char const*) () from /home/loki/0ad/binaries/system/libtinygettext.so(gdb) t a a bt fullThread 9 (Thread 0x7fffb2991700 (LWP 3230)):#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85No locals.#1  0x00007ffff48723b2 in SDL_SemWait ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000006f6ec9 in CTextureConverter::RunThread (data=0xc39ce0)    at ../../../source/graphics/TextureConverter.cpp:564        textureConverter = 0xc39ce0#3  0x00007ffff3a86f6e in start_thread (arg=0x7fffb2991700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffb2991700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736189765376,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309575473303450445, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>---Type <return> to continue, or q <return> to quit---        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#4  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 8 (Thread 0x7fffbe3bd700 (LWP 3229)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff48745e9 in SDL_Delay ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00007ffff4874622 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#3  0x00007ffff4832ac8 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#4  0x00007ffff4872189 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#5  0x00007ffff3a86f6e in start_thread (arg=0x7fffbe3bd700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbe3bd700        now = <optimized out>---Type <return> to continue, or q <return> to quit---        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736384980736,                3309410798300236979, 1, 140737354125408, 140737488341152,                4096, -3309547721372267341, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#6  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 7 (Thread 0x7fffbebbe700 (LWP 3228)):#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85No locals.#1  0x00007ffff48723b2 in SDL_SemWait ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000005b3e7a in Run (this=0xd13830)    at ../../../source/ps/UserReport.cpp:279        proxy = {static npos = 18446744073709551615,---Type <return> to continue, or q <return> to quit---          _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},            _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}#3  CUserReporterWorker::RunThread (data=0xd13830)    at ../../../source/ps/UserReport.cpp:236No locals.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffbebbe700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbebbe700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736393373440,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309548820347024205, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()---Type <return> to continue, or q <return> to quit---    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 6 (Thread 0x7fffbf7fe700 (LWP 3226)):#0  0x00007ffff37a9de3 in select () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x000000000083a690 in inotify_event_loop ()    at ../../../source/lib/sysdep/os/linux/dir_watch_inotify.cpp:148        fdrset = {fds_bits = {4096, 0 <repeats 15 times>}}#2  0x00007ffff3a86f6e in start_thread (arg=0x7fffbf7fe700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbf7fe700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736406218496,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309550435254727501, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>---Type <return> to continue, or q <return> to quit---        __PRETTY_FUNCTION__ = "start_thread"#3  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 5 (Thread 0x7fffbffff700 (LWP 3225)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff48745e9 in SDL_Delay ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000005d7b09 in Run (this=0xc434e0)    at ../../../source/soundmanager/SoundManager.cpp:176        pauseTime = <optimized out>#3  CSoundManagerWorker::RunThread (data=0xc434e0)    at ../../../source/soundmanager/SoundManager.cpp:121No locals.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffbffff700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbffff700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736414611200,---Type <return> to continue, or q <return> to quit---                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309551536376968013, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 4 (Thread 0x7fffc499a700 (LWP 3224)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff583c54a in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#2  0x00007ffff58495eb in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#3  0x00007ffff583be6a in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffc499a700)---Type <return> to continue, or q <return> to quit---    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffc499a700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736491792128,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309324779820479309, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 3 (Thread 0x7fffc919c700 (LWP 3223)):#0  0x00007ffff37a4f7d in poll () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007fffeeb12041 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.---Type <return> to continue, or q <return> to quit---#2  0x00007fffeeb0384c in pa_mainloop_poll ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#3  0x00007fffeeb03ede in pa_mainloop_iterate ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#4  0x00007fffeeb03f90 in pa_mainloop_run ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#5  0x00007fffeeb11ff3 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#6  0x00007fffec813ee8 in ?? ()   from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.soNo symbol table info available.#7  0x00007ffff3a86f6e in start_thread (arg=0x7fffc919c700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffc919c700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736567297792,                3309410798300236979, 1, 12836048, 140737281328928, 20,                -3309317084312826701, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},---Type <return> to continue, or q <return> to quit---            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#8  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 1 (Thread 0x7ffff7fb7780 (LWP 3218)):#0  0x00007ffff66fb036 in tinygettext::Dictionary::translate(std::map<std::string, std::vector<std::string, std::allocator<std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > > const&, char const*) ()   from /home/loki/0ad/binaries/system/libtinygettext.soNo symbol table info available.#1  0x00000000005efdeb in L10n::translate (this=<optimized out>,    sourceString=...) at ../../../source/i18n/L10n.cpp:143No locals.#2  0x0000000000755188 in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0x100a160, NameSubst=..., Paths=...)---Type <return> to continue, or q <return> to quit---    at ../../../source/gui/CGUI.cpp:1322        grandchild = {m_Pointer = 0x7fffc95d29f1 "F"}        i = 1        translatedValue = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1014a08 "[font=\"serif-bold-16\"]"}}, <No data fields>}        grandchildren = {Count = 4, m_Pointer = 0x7fffc95d29a7 "J",          m_LastItemID = 1, m_LastPointer = 0x7fffc95d29f1 "F"}        attributeName = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1014a48 "caption"}}, <No data fields>}        child = {m_Pointer = 0x7fffc95d2977 ""}        element_name = <optimized out>        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1---Type <return> to continue, or q <return> to quit---        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1009fb8 "userReportText"}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 1, m_Pointer = 0x7fffc95d2977 "",          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2977 ""}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<c---Type <return> to continue, or q <return> to quit---har>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 0        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x100a558 "text"}}, <No data fields>}        object = 0x100ad80        attributes = {Count = 2, m_Pointer = 0x7fffc95d293f "\r",          m_LastItemID = 1, m_LastPointer = 0x7fffc95d2951 "\n"}#3  0x000000000075539f in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0xfe09a0, NameSubst=..., Paths=...)    at ../../../source/gui/CGUI.cpp:1232        child = {m_Pointer = 0x7fffc95d2927 "P\002"}        element_name = <optimized out>---Type <return> to continue, or q <return> to quit---        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1009f68 "userReportPanel"}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 3, m_Pointer = 0x7fffc95d2927 "P\002",---Type <return> to continue, or q <return> to quit---          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2927 "P\002"}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 0        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x100a138 "image"}}, <No data fields>}        object = 0x100a160        attributes = {Count = 4, m_Pointer = 0x7fffc95d2875 "\006",          m_LastItemID = 3, m_LastPointer = 0x7fffc95d28ff "\n"}---Type <return> to continue, or q <return> to quit---#4  0x000000000075539f in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0xf79840, NameSubst=..., Paths=...)    at ../../../source/gui/CGUI.cpp:1232        child = {m_Pointer = 0x7fffc95d285d "\354\005"}        element_name = <optimized out>        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::alloca---Type <return> to continue, or q <return> to quit---tor<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 14, m_Pointer = 0x7fffc95d2265 "B",          m_LastItemID = 9, m_LastPointer = 0x7fffc95d285d "\354\005"}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 9        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<---Type <return> to continue, or q <return> to quit---char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xfeb938 "empty"}}, <No data fields>}        object = 0xfe09a0        attributes = {Count = 1, m_Pointer = 0x7fffc95d2243 "\006",          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2243 "\006"}#5  0x0000000000756434 in CGUI::Xeromyces_ReadRootObjects (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    Paths=...) at ../../../source/gui/CGUI.cpp:1001        child = {m_Pointer = 0x7fffc95d222b " R"}        i = 3        el_script = 5        subst = {<std::_Vector_base<std::pair<CStr8, CStr8>, std::allocator<std::pair<CStr8, CStr8> > >> = {            _M_impl = {<std::allocator<std::pair<CStr8, CStr8> >> = {<__gnu_cxx::new_allocator<std::pair<CStr8, CStr8> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,              _M_end_of_storage = 0x0}}, <No data fields>}        children = {Count = 4, m_Pointer = 0x7fffc95d2127 "H",          m_LastItemID = 3, m_LastPointer = 0x7fffc95d222b " R"}#6  0x0000000000756bc6 in CGUI::LoadXmlFile (this=0xf0b0c0, Filename=...,    Paths=...) at ../../../source/gui/CGUI.cpp:945---Type <return> to continue, or q <return> to quit---        XeroFile = {<XMBFile> = {m_Pointer = 0x7fffc95d210f "<S",            m_ElementNameCount = 8, m_AttributeNameCount = 15,            m_ElementPointer = 0x7fffc95d2008 "\a",            m_AttributePointer = 0x7fffc95d2078 "\b"}, m_XMBBuffer = {            px = 0x7fffc95d2000 "XMB0\b", pn = {pi_ = 0xfb4fe0}}}        node = {m_Pointer = 0x7fffc95d210f "<S"}        root_name = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5bd8 "objects"}}, <No data fields>}        __func__ = "LoadXmlFile"#7  0x0000000000794312 in CGUIManager::LoadPage (this=this@entry=0xe8ce70,    page=...) at ../../../source/gui/GUIManager.cpp:243        name = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5968 L"pregame/mainmenu.xml"}}, <No data fields>}        profile2__ = {m_Name = 0x8ed4a5 "load gui xml"}        LINE_241_ = {m_t0 = 0,49259458299999992,          m_description = 0xfb5968 L"pregame/mainmenu.xml"}        path = {path = {static npos = 18446744073709551615,---Type <return> to continue, or q <return> to quit---            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5b48 L"gui/pregame/mainmenu.xml"}},          separator = 47 L'/'}        _i_228 = 8        hotloadData = {px = 0x0, pn = {pi_ = 0x0}}        xero = {<XMBFile> = {m_Pointer = 0x7fffc95b6021 "\276\002",            m_ElementNameCount = 2, m_AttributeNameCount = 0,            m_ElementPointer = 0x7fffc95b6008 "\b",            m_AttributePointer = 0x7fffc95b6021 "\276\002"}, m_XMBBuffer = {            px = 0x7fffc95b6000 "XMB0\002", pn = {pi_ = 0xfa0bf0}}}        elmt_include = 0        root = {m_Pointer = 0x7fffc95b6021 "\276\002"}        _children_228 = {Count = 10, m_Pointer = 0x7fffc95b6039 ">",          m_LastItemID = 8, m_LastPointer = 0x7fffc95b6259 "F"}        oldGUI = <optimized out>        scriptInterface = <optimized out>        initDataVal = {m_Val = 0}        hotloadDataVal = {m_Val = 4895412794951729152}        previousPageScriptInterface = {px = 0x0, pn = {pi_ = 0x0}}        node = {m_Pointer = 0x7fffc95b6259 "F"}        path = {path = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocato---Type <return> to continue, or q <return> to quit---r<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xf9dc38 L"gui/page_pregame.xml"}}, separator = 47 L'/'}        elmt_page = <optimized out>#8  0x000000000079577a in CGUIManager::PushPage (this=this@entry=0xe8ce70,    pageName=..., initData=...) at ../../../source/gui/GUIManager.cpp:102No locals.#9  0x000000000079607f in CGUIManager::SwitchPage (this=0xe8ce70,    pageName=..., srcScriptInterface=srcScriptInterface@entry=0xe88a10,    initData=initData@entry=...) at ../../../source/gui/GUIManager.cpp:94        initDataClone = {px = 0xf0c280, pn = {pi_ = 0xf0bec0}}        __func__ = "SwitchPage"#10 0x00000000005c7a15 in InitPs (setup_gui=setup_gui@entry=true,    gui(gdb) t a a bt fullThread 9 (Thread 0x7fffb2991700 (LWP 3230)):#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85No locals.#1  0x00007ffff48723b2 in SDL_SemWait ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000006f6ec9 in CTextureConverter::RunThread (data=0xc39ce0)    at ../../../source/graphics/TextureConverter.cpp:564        textureConverter = 0xc39ce0#3  0x00007ffff3a86f6e in start_thread (arg=0x7fffb2991700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffb2991700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736189765376,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309575473303450445, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>---Type <return> to continue, or q <return> to quit---        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#4  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 8 (Thread 0x7fffbe3bd700 (LWP 3229)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff48745e9 in SDL_Delay ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00007ffff4874622 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#3  0x00007ffff4832ac8 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#4  0x00007ffff4872189 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#5  0x00007ffff3a86f6e in start_thread (arg=0x7fffbe3bd700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbe3bd700        now = <optimized out>---Type <return> to continue, or q <return> to quit---        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736384980736,                3309410798300236979, 1, 140737354125408, 140737488341152,                4096, -3309547721372267341, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#6  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 7 (Thread 0x7fffbebbe700 (LWP 3228)):#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85No locals.#1  0x00007ffff48723b2 in SDL_SemWait ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000005b3e7a in Run (this=0xd13830)    at ../../../source/ps/UserReport.cpp:279        proxy = {static npos = 18446744073709551615,---Type <return> to continue, or q <return> to quit---          _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},            _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}#3  CUserReporterWorker::RunThread (data=0xd13830)    at ../../../source/ps/UserReport.cpp:236No locals.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffbebbe700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbebbe700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736393373440,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309548820347024205, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()---Type <return> to continue, or q <return> to quit---    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 6 (Thread 0x7fffbf7fe700 (LWP 3226)):#0  0x00007ffff37a9de3 in select () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x000000000083a690 in inotify_event_loop ()    at ../../../source/lib/sysdep/os/linux/dir_watch_inotify.cpp:148        fdrset = {fds_bits = {4096, 0 <repeats 15 times>}}#2  0x00007ffff3a86f6e in start_thread (arg=0x7fffbf7fe700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbf7fe700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736406218496,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309550435254727501, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>---Type <return> to continue, or q <return> to quit---        __PRETTY_FUNCTION__ = "start_thread"#3  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 5 (Thread 0x7fffbffff700 (LWP 3225)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff48745e9 in SDL_Delay ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000005d7b09 in Run (this=0xc434e0)    at ../../../source/soundmanager/SoundManager.cpp:176        pauseTime = <optimized out>#3  CSoundManagerWorker::RunThread (data=0xc434e0)    at ../../../source/soundmanager/SoundManager.cpp:121No locals.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffbffff700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbffff700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736414611200,---Type <return> to continue, or q <return> to quit---                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309551536376968013, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 4 (Thread 0x7fffc499a700 (LWP 3224)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff583c54a in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#2  0x00007ffff58495eb in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#3  0x00007ffff583be6a in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffc499a700)---Type <return> to continue, or q <return> to quit---    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffc499a700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736491792128,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309324779820479309, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>     (gdb) t a a bt fullThread 9 (Thread 0x7fffb2991700 (LWP 3230)):#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85No locals.#1  0x00007ffff48723b2 in SDL_SemWait ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000006f6ec9 in CTextureConverter::RunThread (data=0xc39ce0)    at ../../../source/graphics/TextureConverter.cpp:564        textureConverter = 0xc39ce0#3  0x00007ffff3a86f6e in start_thread (arg=0x7fffb2991700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffb2991700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736189765376,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309575473303450445, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>---Type <return> to continue, or q <return> to quit---        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#4  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 8 (Thread 0x7fffbe3bd700 (LWP 3229)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff48745e9 in SDL_Delay ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00007ffff4874622 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#3  0x00007ffff4832ac8 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#4  0x00007ffff4872189 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#5  0x00007ffff3a86f6e in start_thread (arg=0x7fffbe3bd700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbe3bd700        now = <optimized out>---Type <return> to continue, or q <return> to quit---        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736384980736,                3309410798300236979, 1, 140737354125408, 140737488341152,                4096, -3309547721372267341, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#6  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 7 (Thread 0x7fffbebbe700 (LWP 3228)):#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85No locals.#1  0x00007ffff48723b2 in SDL_SemWait ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000005b3e7a in Run (this=0xd13830)    at ../../../source/ps/UserReport.cpp:279        proxy = {static npos = 18446744073709551615,---Type <return> to continue, or q <return> to quit---          _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},            _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}#3  CUserReporterWorker::RunThread (data=0xd13830)    at ../../../source/ps/UserReport.cpp:236No locals.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffbebbe700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbebbe700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736393373440,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309548820347024205, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()---Type <return> to continue, or q <return> to quit---    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 6 (Thread 0x7fffbf7fe700 (LWP 3226)):#0  0x00007ffff37a9de3 in select () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x000000000083a690 in inotify_event_loop ()    at ../../../source/lib/sysdep/os/linux/dir_watch_inotify.cpp:148        fdrset = {fds_bits = {4096, 0 <repeats 15 times>}}#2  0x00007ffff3a86f6e in start_thread (arg=0x7fffbf7fe700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbf7fe700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736406218496,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309550435254727501, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>---Type <return> to continue, or q <return> to quit---        __PRETTY_FUNCTION__ = "start_thread"#3  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 5 (Thread 0x7fffbffff700 (LWP 3225)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff48745e9 in SDL_Delay ()   from /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0No symbol table info available.#2  0x00000000005d7b09 in Run (this=0xc434e0)    at ../../../source/soundmanager/SoundManager.cpp:176        pauseTime = <optimized out>#3  CSoundManagerWorker::RunThread (data=0xc434e0)    at ../../../source/soundmanager/SoundManager.cpp:121No locals.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffbffff700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffbffff700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736414611200,---Type <return> to continue, or q <return> to quit---                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309551536376968013, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 4 (Thread 0x7fffc499a700 (LWP 3224)):#0  0x00007ffff3a8e41d in nanosleep () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007ffff583c54a in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#2  0x00007ffff58495eb in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#3  0x00007ffff583be6a in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1No symbol table info available.#4  0x00007ffff3a86f6e in start_thread (arg=0x7fffc499a700)---Type <return> to continue, or q <return> to quit---    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffc499a700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736491792128,                3309410798300236979, 1, 140737354125408, 140737281328928,                4096, -3309324779820479309, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 3 (Thread 0x7fffc919c700 (LWP 3223)):#0  0x00007ffff37a4f7d in poll () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007fffeeb12041 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.---Type <return> to continue, or q <return> to quit---#2  0x00007fffeeb0384c in pa_mainloop_poll ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#3  0x00007fffeeb03ede in pa_mainloop_iterate ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#4  0x00007fffeeb03f90 in pa_mainloop_run ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#5  0x00007fffeeb11ff3 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#6  0x00007fffec813ee8 in ?? ()   from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.soNo symbol table info available.#7  0x00007ffff3a86f6e in start_thread (arg=0x7fffc919c700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffc919c700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736567297792,                3309410798300236979, 1, 12836048, 140737281328928, 20,                -3309317084312826701, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},---Type <return> to continue, or q <return> to quit---            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#8  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 1 (Thread 0x7ffff7fb7780 (LWP 3218)):#0  0x00007ffff66fb036 in tinygettext::Dictionary::translate(std::map<std::string, std::vector<std::string, std::allocator<std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > > const&, char const*) ()   from /home/loki/0ad/binaries/system/libtinygettext.soNo symbol table info available.#1  0x00000000005efdeb in L10n::translate (this=<optimized out>,    sourceString=...) at ../../../source/i18n/L10n.cpp:143No locals.#2  0x0000000000755188 in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0x100a160, NameSubst=..., Paths=...)---Type <return> to continue, or q <return> to quit---    at ../../../source/gui/CGUI.cpp:1322        grandchild = {m_Pointer = 0x7fffc95d29f1 "F"}        i = 1        translatedValue = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1014a08 "[font=\"serif-bold-16\"]"}}, <No data fields>}        grandchildren = {Count = 4, m_Pointer = 0x7fffc95d29a7 "J",          m_LastItemID = 1, m_LastPointer = 0x7fffc95d29f1 "F"}        attributeName = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1014a48 "caption"}}, <No data fields>}        child = {m_Pointer = 0x7fffc95d2977 ""}        element_name = <optimized out>        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1---Type <return> to continue, or q <return> to quit---        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1009fb8 "userReportText"}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 1, m_Pointer = 0x7fffc95d2977 "",          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2977 ""}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<c---Type <return> to continue, or q <return> to quit---har>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 0        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x100a558 "text"}}, <No data fields>}        object = 0x100ad80        attributes = {Count = 2, m_Pointer = 0x7fffc95d293f "\r",          m_LastItemID = 1, m_LastPointer = 0x7fffc95d2951 "\n"}#3  0x000000000075539f in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0xfe09a0, NameSubst=..., Paths=...)    at ../../../source/gui/CGUI.cpp:1232        child = {m_Pointer = 0x7fffc95d2927 "P\002"}        element_name = <optimized out>---Type <return> to continue, or q <return> to quit---        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1009f68 "userReportPanel"}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 3, m_Pointer = 0x7fffc95d2927 "P\002",---Type <return> to continue, or q <return> to quit---          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2927 "P\002"}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 0        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x100a138 "image"}}, <No data fields>}        object = 0x100a160        attributes = {Count = 4, m_Pointer = 0x7fffc95d2875 "\006",          m_LastItemID = 3, m_LastPointer = 0x7fffc95d28ff "\n"}---Type <return> to continue, or q <return> to quit---#4  0x000000000075539f in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0xf79840, NameSubst=..., Paths=...)    at ../../../source/gui/CGUI.cpp:1232        child = {m_Pointer = 0x7fffc95d285d "\354\005"}        element_name = <optimized out>        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::alloca---Type <return> to continue, or q <return> to quit---tor<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 14, m_Pointer = 0x7fffc95d2265 "B",          m_LastItemID = 9, m_LastPointer = 0x7fffc95d285d "\354\005"}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 9        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<---Type <return> to continue, or q <return> to quit---char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xfeb938 "empty"}}, <No data fields>}        object = 0xfe09a0        attributes = {Count = 1, m_Pointer = 0x7fffc95d2243 "\006",          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2243 "\006"}#5  0x0000000000756434 in CGUI::Xeromyces_ReadRootObjects (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    Paths=...) at ../../../source/gui/CGUI.cpp:1001        child = {m_Pointer = 0x7fffc95d222b " R"}        i = 3        el_script = 5        subst = {<std::_Vector_base<std::pair<CStr8, CStr8>, std::allocator<std::pair<CStr8, CStr8> > >> = {            _M_impl = {<std::allocator<std::pair<CStr8, CStr8> >> = {<__gnu_cxx::new_allocator<std::pair<CStr8, CStr8> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,              _M_end_of_storage = 0x0}}, <No data fields>}        children = {Count = 4, m_Pointer = 0x7fffc95d2127 "H",          m_LastItemID = 3, m_LastPointer = 0x7fffc95d222b " R"}#6  0x0000000000756bc6 in CGUI::LoadXmlFile (this=0xf0b0c0, Filename=...,    Paths=...) at ../../../source/gui/CGUI.cpp:945---Type <return> to continue, or q <return> to quit---        XeroFile = {<XMBFile> = {m_Pointer = 0x7fffc95d210f "<S",            m_ElementNameCount = 8, m_AttributeNameCount = 15,            m_ElementPointer = 0x7fffc95d2008 "\a",            m_AttributePointer = 0x7fffc95d2078 "\b"}, m_XMBBuffer = {            px = 0x7fffc95d2000 "XMB0\b", pn = {pi_ = 0xfb4fe0}}}        node = {m_Pointer = 0x7fffc95d210f "<S"}        root_name = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5bd8 "objects"}}, <No data fields>}        __func__ = "LoadXmlFile"#7  0x0000000000794312 in CGUIManager::LoadPage (this=this@entry=0xe8ce70,    page=...) at ../../../source/gui/GUIManager.cpp:243        name = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5968 L"pregame/mainmenu.xml"}}, <No data fields>}        profile2__ = {m_Name = 0x8ed4a5 "load gui xml"}        LINE_241_ = {m_t0 = 0,49259458299999992,          m_description = 0xfb5968 L"pregame/mainmenu.xml"}        path = {path = {static npos = 18446744073709551615,---Type <return> to continue, or q <return> to quit---            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5b48 L"gui/pregame/mainmenu.xml"}},          separator = 47 L'/'}        _i_228 = 8        hotloadData = {px = 0x0, pn = {pi_ = 0x0}}        xero = {<XMBFile> = {m_Pointer = 0x7fffc95b6021 "\276\002",            m_ElementNameCount = 2, m_AttributeNameCount = 0,            m_ElementPointer = 0x7fffc95b6008 "\b",            m_AttributePointer = 0x7fffc95b6021 "\276\002"}, m_XMBBuffer = {            px = 0x7fffc95b6000 "XMB0\002", pn = {pi_ = 0xfa0bf0}}}        elmt_include = 0        root = {m_Pointer = 0x7fffc95b6021 "\276\002"}        _children_228 = {Count = 10, m_Pointer = 0x7fffc95b6039 ">",          m_LastItemID = 8, m_LastPointer = 0x7fffc95b6259 "F"}        oldGUI = <optimized out>        scriptInterface = <optimized out>        initDataVal = {m_Val = 0}        hotloadDataVal = {m_Val = 4895412794951729152}        previousPageScriptInterface = {px = 0x0, pn = {pi_ = 0x0}}        node = {m_Pointer = 0x7fffc95b6259 "F"}        path = {path = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocato---Type <return> to continue, or q <return> to quit---r<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xf9dc38 L"gui/page_pregame.xml"}}, separator = 47 L'/'}        elmt_page = <optimized out>#8  0x000000000079577a in CGUIManager::PushPage (this=this@entry=0xe8ce70,    pageName=..., initData=...) at ../../../source/gui/GUIManager.cpp:102No locals.#9  0x000000000079607f in CGUIManager::SwitchPage (this=0xe8ce70,    pageName=..., srcScriptInterface=srcScriptInterface@entry=0xe88a10,    initData=initData@entry=...) at ../../../source/gui/GUIManager.cpp:94        initDataClone = {px = 0xf0c280, pn = {pi_ = 0xf0bec0}}        __func__ = "SwitchPage"#10 0x00000000005c7a15 in InitPs (setup_gui=setup_gui@entry=true,    gui_page=..., srcScriptInterface=srcScriptInterface@entry=0xe88a10,    initData=initData@entry=...)    at ../../../source/ps/GameSetup/GameSetup.cpp:524No locals.#11 0x00000000005cad38 in InitGraphics (args=..., flags=flags@entry=0)    at ../../../source/ps/GameSetup/GameSetup.cpp:1031        setup_gui = true        data = {m_Val = {px = 0xeed9a0, pn = {pi_ = 0xeea910}}}        setup_vmode = true        quality = 5        __func__ = "InitGraphics"---Type <return> to continue, or q <return> to quit---        profilerGPUEnable = false        missing = <optimized out>#12 0x00000000004221b5 in RunGameOrAtlas (argc=argc@entry=1,    argv=argv@entry=0x7fffffffdfd8) at ../../../source/main.cpp:469        args = {          m_Args = {<std::_Vector_base<std::pair<CStr8, CStr8>, std::allocator<std::pair<CStr8, CStr8> > >> = {              _M_impl = {<std::allocator<std::pair<CStr8, CStr8> >> = {<__gnu_cxx::new_allocator<std::pair<CStr8, CStr8> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,                _M_end_of_storage = 0x0}}, <No data fields>}, m_Arg0 = {            path = {static npos = 18446744073709551615,              _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},                _M_p = 0xbc6af8 L"/home/loki/0ad/binaries/system/pyrogenesis"}}, separator = 47 L'/'}}        ran_atlas = <optimized out>        res = <optimized out>#13 0x0000000000416f27 in main (argc=1, argv=0x7fffffffdfd8)    at ../../../source/main.cpp:514No locals.   freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#5  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 3 (Thread 0x7fffc919c700 (LWP 3223)):#0  0x00007ffff37a4f7d in poll () at ../sysdeps/unix/syscall-template.S:81No locals.#1  0x00007fffeeb12041 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.---Type <return> to continue, or q <return> to quit---#2  0x00007fffeeb0384c in pa_mainloop_poll ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#3  0x00007fffeeb03ede in pa_mainloop_iterate ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#4  0x00007fffeeb03f90 in pa_mainloop_run ()   from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#5  0x00007fffeeb11ff3 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#6  0x00007fffec813ee8 in ?? ()   from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.soNo symbol table info available.#7  0x00007ffff3a86f6e in start_thread (arg=0x7fffc919c700)    at pthread_create.c:311        __res = <optimized out>        pd = 0x7fffc919c700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736567297792,                3309410798300236979, 1, 12836048, 140737281328928, 20,                -3309317084312826701, -3309436787693646669},              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},---Type <return> to continue, or q <return> to quit---            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = 0        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#8  0x00007ffff37b19cd in clone ()    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113No locals.Thread 1 (Thread 0x7ffff7fb7780 (LWP 3218)):#0  0x00007ffff66fb036 in tinygettext::Dictionary::translate(std::map<std::string, std::vector<std::string, std::allocator<std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > > const&, char const*) ()   from /home/loki/0ad/binaries/system/libtinygettext.soNo symbol table info available.#1  0x00000000005efdeb in L10n::translate (this=<optimized out>,    sourceString=...) at ../../../source/i18n/L10n.cpp:143No locals.#2  0x0000000000755188 in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0x100a160, NameSubst=..., Paths=...)---Type <return> to continue, or q <return> to quit---    at ../../../source/gui/CGUI.cpp:1322        grandchild = {m_Pointer = 0x7fffc95d29f1 "F"}        i = 1        translatedValue = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1014a08 "[font=\"serif-bold-16\"]"}}, <No data fields>}        grandchildren = {Count = 4, m_Pointer = 0x7fffc95d29a7 "J",          m_LastItemID = 1, m_LastPointer = 0x7fffc95d29f1 "F"}        attributeName = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1014a48 "caption"}}, <No data fields>}        child = {m_Pointer = 0x7fffc95d2977 ""}        element_name = <optimized out>        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1---Type <return> to continue, or q <return> to quit---        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1009fb8 "userReportText"}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 1, m_Pointer = 0x7fffc95d2977 "",          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2977 ""}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<c---Type <return> to continue, or q <return> to quit---har>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 0        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x100a558 "text"}}, <No data fields>}        object = 0x100ad80        attributes = {Count = 2, m_Pointer = 0x7fffc95d293f "\r",          m_LastItemID = 1, m_LastPointer = 0x7fffc95d2951 "\n"}#3  0x000000000075539f in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0xfe09a0, NameSubst=..., Paths=...)    at ../../../source/gui/CGUI.cpp:1232        child = {m_Pointer = 0x7fffc95d2927 "P\002"}        element_name = <optimized out>---Type <return> to continue, or q <return> to quit---        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x1009f68 "userReportPanel"}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 3, m_Pointer = 0x7fffc95d2927 "P\002",---Type <return> to continue, or q <return> to quit---          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2927 "P\002"}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 0        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0x100a138 "image"}}, <No data fields>}        object = 0x100a160        attributes = {Count = 4, m_Pointer = 0x7fffc95d2875 "\006",          m_LastItemID = 3, m_LastPointer = 0x7fffc95d28ff "\n"}---Type <return> to continue, or q <return> to quit---#4  0x000000000075539f in CGUI::Xeromyces_ReadObject (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    pParent=0xf79840, NameSubst=..., Paths=...)    at ../../../source/gui/CGUI.cpp:1232        child = {m_Pointer = 0x7fffc95d285d "\354\005"}        element_name = <optimized out>        elmt_object = 3        attr_type = 13        attr_name = 6        attr_hotkey = -1        attr_on = 7        attr_file = 1        caption = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf958 <_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> L""}}, <No data fields>}        elmt_action = 0        elmt_repeat = -1        elmt_translatableAttribute = 6        elmt_attribute = 1        argStyle = {<std::basic_string<char, std::char_traits<char>, std::alloca---Type <return> to continue, or q <return> to quit---tor<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        NameSet = <optimized out>        children = {Count = 14, m_Pointer = 0x7fffc95d2265 "B",          m_LastItemID = 9, m_LastPointer = 0x7fffc95d285d "\354\005"}        elmt_keep = 2        attr_z = 14        hotkeyTag = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xbaf418 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}}, <No data fields>}        elmt_translate = 7        attr_style = 10        attr_id = 5        ManuallySetZ = <optimized out>        __func__ = "Xeromyces_ReadObject"        i = 9        type = {<std::basic_string<char, std::char_traits<char>, std::allocator<---Type <return> to continue, or q <return> to quit---char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xfeb938 "empty"}}, <No data fields>}        object = 0xfe09a0        attributes = {Count = 1, m_Pointer = 0x7fffc95d2243 "\006",          m_LastItemID = 0, m_LastPointer = 0x7fffc95d2243 "\006"}#5  0x0000000000756434 in CGUI::Xeromyces_ReadRootObjects (    this=this@entry=0xf0b0c0, Element=..., pFile=pFile@entry=0x7fffffffc430,    Paths=...) at ../../../source/gui/CGUI.cpp:1001        child = {m_Pointer = 0x7fffc95d222b " R"}        i = 3        el_script = 5        subst = {<std::_Vector_base<std::pair<CStr8, CStr8>, std::allocator<std::pair<CStr8, CStr8> > >> = {            _M_impl = {<std::allocator<std::pair<CStr8, CStr8> >> = {<__gnu_cxx::new_allocator<std::pair<CStr8, CStr8> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,              _M_end_of_storage = 0x0}}, <No data fields>}        children = {Count = 4, m_Pointer = 0x7fffc95d2127 "H",          m_LastItemID = 3, m_LastPointer = 0x7fffc95d222b " R"}#6  0x0000000000756bc6 in CGUI::LoadXmlFile (this=0xf0b0c0, Filename=...,    Paths=...) at ../../../source/gui/CGUI.cpp:945---Type <return> to continue, or q <return> to quit---        XeroFile = {<XMBFile> = {m_Pointer = 0x7fffc95d210f "<S",            m_ElementNameCount = 8, m_AttributeNameCount = 15,            m_ElementPointer = 0x7fffc95d2008 "\a",            m_AttributePointer = 0x7fffc95d2078 "\b"}, m_XMBBuffer = {            px = 0x7fffc95d2000 "XMB0\b", pn = {pi_ = 0xfb4fe0}}}        node = {m_Pointer = 0x7fffc95d210f "<S"}        root_name = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>,            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5bd8 "objects"}}, <No data fields>}        __func__ = "LoadXmlFile"#7  0x0000000000794312 in CGUIManager::LoadPage (this=this@entry=0xe8ce70,    page=...) at ../../../source/gui/GUIManager.cpp:243        name = {<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >> = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5968 L"pregame/mainmenu.xml"}}, <No data fields>}        profile2__ = {m_Name = 0x8ed4a5 "load gui xml"}        LINE_241_ = {m_t0 = 0,49259458299999992,          m_description = 0xfb5968 L"pregame/mainmenu.xml"}        path = {path = {static npos = 18446744073709551615,---Type <return> to continue, or q <return> to quit---            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xfb5b48 L"gui/pregame/mainmenu.xml"}},          separator = 47 L'/'}        _i_228 = 8        hotloadData = {px = 0x0, pn = {pi_ = 0x0}}        xero = {<XMBFile> = {m_Pointer = 0x7fffc95b6021 "\276\002",            m_ElementNameCount = 2, m_AttributeNameCount = 0,            m_ElementPointer = 0x7fffc95b6008 "\b",            m_AttributePointer = 0x7fffc95b6021 "\276\002"}, m_XMBBuffer = {            px = 0x7fffc95b6000 "XMB0\002", pn = {pi_ = 0xfa0bf0}}}        elmt_include = 0        root = {m_Pointer = 0x7fffc95b6021 "\276\002"}        _children_228 = {Count = 10, m_Pointer = 0x7fffc95b6039 ">",          m_LastItemID = 8, m_LastPointer = 0x7fffc95b6259 "F"}        oldGUI = <optimized out>        scriptInterface = <optimized out>        initDataVal = {m_Val = 0}        hotloadDataVal = {m_Val = 4895412794951729152}        previousPageScriptInterface = {px = 0x0, pn = {pi_ = 0x0}}        node = {m_Pointer = 0x7fffc95b6259 "F"}        path = {path = {static npos = 18446744073709551615,            _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocato---Type <return> to continue, or q <return> to quit---r<wchar_t>> = {<No data fields>}, <No data fields>},              _M_p = 0xf9dc38 L"gui/page_pregame.xml"}}, separator = 47 L'/'}        elmt_page = <optimized out>#8  0x000000000079577a in CGUIManager::PushPage (this=this@entry=0xe8ce70,    pageName=..., initData=...) at ../../../source/gui/GUIManager.cpp:102No locals.#9  0x000000000079607f in CGUIManager::SwitchPage (this=0xe8ce70,    pageName=..., srcScriptInterface=srcScriptInterface@entry=0xe88a10,    initData=initData@entry=...) at ../../../source/gui/GUIManager.cpp:94        initDataClone = {px = 0xf0c280, pn = {pi_ = 0xf0bec0}}        __func__ = "SwitchPage"#10 0x00000000005c7a15 in InitPs (setup_gui=setup_gui@entry=true,    gui_page=..., srcScriptInterface=srcScriptInterface@entry=0xe88a10,    initData=initData@entry=...)    at ../../../source/ps/GameSetup/GameSetup.cpp:524No locals.#11 0x00000000005cad38 in InitGraphics (args=..., flags=flags@entry=0)    at ../../../source/ps/GameSetup/GameSetup.cpp:1031        setup_gui = true        data = {m_Val = {px = 0xeed9a0, pn = {pi_ = 0xeea910}}}        setup_vmode = true        quality = 5        __func__ = "InitGraphics"---Type <return> to continue, or q <return> to quit---        profilerGPUEnable = false        missing = <optimized out>#12 0x00000000004221b5 in RunGameOrAtlas (argc=argc@entry=1,    argv=argv@entry=0x7fffffffdfd8) at ../../../source/main.cpp:469        args = {          m_Args = {<std::_Vector_base<std::pair<CStr8, CStr8>, std::allocator<std::pair<CStr8, CStr8> > >> = {              _M_impl = {<std::allocator<std::pair<CStr8, CStr8> >> = {<__gnu_cxx::new_allocator<std::pair<CStr8, CStr8> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,                _M_end_of_storage = 0x0}}, <No data fields>}, m_Arg0 = {            path = {static npos = 18446744073709551615,              _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},                _M_p = 0xbc6af8 L"/home/loki/0ad/binaries/system/pyrogenesis"}}, separator = 47 L'/'}}        ran_atlas = <optimized out>        res = <optimized out>#13 0x0000000000416f27 in main (argc=1, argv=0x7fffffffdfd8)    at ../../../source/main.cpp:514No locals._page=..., srcScriptInterface=srcScriptInterface@entry=0xe88a10,    initData=initData@entry=...)    at ../../../source/ps/GameSetup/GameSetup.cpp:524No locals.#11 0x00000000005cad38 in InitGraphics (args=..., flags=flags@entry=0)    at ../../../source/ps/GameSetup/GameSetup.cpp:1031        setup_gui = true        data = {m_Val = {px = 0xeed9a0, pn = {pi_ = 0xeea910}}}        setup_vmode = true        quality = 5        __func__ = "InitGraphics"---Type <return> to continue, or q <return> to quit---        profilerGPUEnable = false        missing = <optimized out>#12 0x00000000004221b5 in RunGameOrAtlas (argc=argc@entry=1,    argv=argv@entry=0x7fffffffdfd8) at ../../../source/main.cpp:469        args = {          m_Args = {<std::_Vector_base<std::pair<CStr8, CStr8>, std::allocator<std::pair<CStr8, CStr8> > >> = {              _M_impl = {<std::allocator<std::pair<CStr8, CStr8> >> = {<__gnu_cxx::new_allocator<std::pair<CStr8, CStr8> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0,                _M_end_of_storage = 0x0}}, <No data fields>}, m_Arg0 = {            path = {static npos = 18446744073709551615,              _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>},                _M_p = 0xbc6af8 L"/home/loki/0ad/binaries/system/pyrogenesis"}}, separator = 47 L'/'}}        ran_atlas = <optimized out>        res = <optimized out>#13 0x0000000000416f27 in main (argc=1, argv=0x7fffffffdfd8)    at ../../../source/main.cpp:514No locals.

Edited by Loki72
Link to comment
Share on other sites

Program received signal SIGSEGV, Segmentation fault.

0x00007ffff66fb036 in tinygettext::Dictionary::translate(std::map<std::string, std::vector<std::string, std::allocator<std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > > const&, char const*) () from /home/loki/0ad/binaries/system/libtinygettext.so

I believe I had the same issue (I can't say for sure because I'm on another computer now, but I recall that the segfault was in a 'translate' function too) when I tried to run https://github.com/leper/0ad/tree/i18n with Russian localization on Ubuntu 12.04 a few days ago. It worked fine with the English locale though. Also I was able to run an older version of the branch from the Gallaecio's repo with the Russian locale as I reported before.
Link to comment
Share on other sites

Hi fcXSanya,

Version Gallaecio worked for me between 28 September 2013 and 29 October 2013 (date found on this forum) with the same comment as you, but I never able to make it work since. Moreover, it was two days after:

I successfully built it on Ubuntu 12.04 a month ago (not sure if something has changed since then) ...

I will stay some time with the deposition of Leper (if it can help), because his version seems more "clean" (dependencies), and Gallaecio seems unavailable at this time. But against, I'm not sure I understand your :

Also I was able to run an older version of the branch from the Gallaecio's repo ...

Do I understand that you know how to find a version (of Gallaecio) anterior to 29 October 2013 ? Upgrade to the current version ? (the goal is to have the most advanced translation for alpha 16)

Edited by Loki72
Link to comment
Share on other sites

I will stay some time with the deposition of Leper (if it can help), because his version seems more "clean" (dependencies), and Gallaecio seems unavailable at this time.

Do I understand that you know how to find a version (of Gallaecio) prior to 29 October 2013 ? Upgrade to the current version ? (the goal is to have the most advanced translation for alpha 16)

As far I as understand all development is happening in the leper's repository now, so that's what we should use. But it can be useful to checkout older commits (via 'git checkout <commit-hash>' or via git-bisect) to find the last working revision.
Link to comment
Share on other sites

I was just testing: http://stackoverflow.com/questions/3489173/how-to-clone-git-repository-with-specific-revision-changeset, but work on an outdated version could create more problems than solution :(

I'll wait Leper to know what he thinks about
http://www.wildfiregames.com/forum/index.php?showtopic=17747&page=2#entry285178, before trying anything else, it's safer :)

Link to comment
Share on other sites

Is near to finished this feature? :o?

It has been "near to finished" for a long time. But with every bug that's found, we get nearer to the finish.

One of the main problems is the UI. Lots of buttons are given a certain size, so the English string fits, but in a lot of other languages, the size becomes too small to hold the text.

Another problem is our fonts system. We support most characters that are based on Latin, but for other languages (Arab, Chinese, Hindi, ...), we don't have the right fonts, and it just get rendered as a bunch of question marks.

Link to comment
Share on other sites

Hi,

As GunChleoc: I just built and Launched the leper branch in Ubuntu 13.10 - A big thank you (Leper ...) for fixing this problem ;)

But as Lion.Kanzen (apparently), I have no other choice than "English (United States)" in "Tools and Options"> "Language"

I tried several things (after looking in /home/loki/0ad/binaries/data/config), such as changing file /home/loki/0ad/binaries/data/mods/public/l10n/.tx/config file or /home/loki/0ad/binaries/data/l10n/.tx/config file to point to the French .po, replace the fr.po that I found by those transifex, but without success :(

Without being oppressive, but being so close to a major advanced (in my opinion), how can we put the desired .po ? :)

Edit :

I had not read

It has been "near to finished" for a long time. But with every bug that's found, we get nearer to the finish.

One of the main problems is the UI. Lots of buttons are given a certain size, so the English string fits, but in a lot of other languages, the size becomes too small to hold the text.

Another problem is our fonts system. We support most characters that are based on Latin, but for other languages (Arab, Chinese, Hindi, ...), we don't have the right fonts, and it just get rendered as a bunch of question marks.

It is now possible to switch from a Latin language to another (even with space problem) ?

  • Like 1
Link to comment
Share on other sites

Slap me with a wet noodle, I had grabbed the wrong branch. I knew this was too easy :lol2:

Maybe add the complete git checkout code to the first post of this thread, for idiots like me?

git clone https://github.com/leper/0ad.git -b i18n <dir>

I have a problem compiling now - make doesn't find libicu-dev, although I did grab it from the Software Center. Or maybe I have the wrong version, it's 4.8 on Ubuntu LTS 12.04. So, I downloaded libicu version 52_1 (ICU4C) and compiled and installed. I still get the error messages though, maybe I need to tell the compiler where the installation path is? I don't know how to do that though.

Here's some of error messages:

<snip>==== Building test (release) ====Creating obj/test_Releaseprecompiled.htest_FixedVector2D.cpp../../../binaries/system/libengine.a(L10n.o): In function `~L10n':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:52: undefined reference to `icu_52::Locale::~Locale()'../../../binaries/system/libengine.a(L10n.o): In function `L10n::getCurrentLocale()':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:59: undefined reference to `icu_52::Locale::Locale(icu_52::Locale const&)'../../../binaries/system/libengine.a(L10n.o): In function `L10n::getSupportedLocaleCodes()':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:83: undefined reference to `icu_52::Locale::getBaseName() const'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:81: undefined reference to `icu_52::Locale::getBaseName() const'../../../binaries/system/libengine.a(L10n.o): In function `L10n::getCurrentLocale()':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:59: undefined reference to `icu_52::Locale::Locale(icu_52::Locale const&)'../../../binaries/system/libengine.a(L10n.o): In function `L10n::getCurrentLocaleIndex()':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:120: undefined reference to `icu_52::Locale::getBaseName() const'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:120: undefined reference to `icu_52::Locale::getBaseName() const'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:120: undefined reference to `icu_52::Locale::~Locale()'../../../binaries/system/libengine.a(L10n.o): In function `L10n::getCurrentLocale()':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:59: undefined reference to `icu_52::Locale::Locale(icu_52::Locale const&)'../../../binaries/system/libengine.a(L10n.o): In function `L10n::getCurrentLocaleIndex()':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:123: undefined reference to `icu_52::Locale::~Locale()'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:126: undefined reference to `icu_52::Locale::getUS()'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:120: undefined reference to `icu_52::Locale::~Locale()'../../../binaries/system/libengine.a(L10n.o): In function `L10n::parseDateTime(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, icu_52::Locale const&)':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:195: undefined reference to `icu_52::StringPiece::StringPiece(char const*)'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:195: undefined reference to `icu_52::UnicodeString::fromUTF8(icu_52::StringPiece const&)'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:196: undefined reference to `icu_52::StringPiece::StringPiece(char const*)'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:196: undefined reference to `icu_52::UnicodeString::fromUTF8(icu_52::StringPiece const&)'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:198: undefined reference to `icu_52::UMemory::operator new(unsigned long)'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:198: undefined reference to `icu_52::SimpleDateFormat::SimpleDateFormat(icu_52::UnicodeString const&, icu_52::Locale const&, UErrorCode&)'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:202: undefined reference to `icu_52::UnicodeString::~UnicodeString()'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:202: undefined reference to `icu_52::UnicodeString::~UnicodeString()'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:202: undefined reference to `icu_52::UnicodeString::~UnicodeString()'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:202: undefined reference to `icu_52::UnicodeString::~UnicodeString()'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:198: undefined reference to `icu_52::UMemory::operator delete(void*)'../../../binaries/system/libengine.a(L10n.o): In function `UnicodeString':/usr/local/include/unicode/unistr.h:3613: undefined reference to `vtable for icu_52::UnicodeString'../../../binaries/system/libengine.a(L10n.o): In function `L10n::createDateTimeInstance(L10n::DateTimeType, icu_52::DateFormat::EStyle, icu_52::Locale const&)':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:360: undefined reference to `icu_52::DateFormat::createDateTimeInstance(icu_52::DateFormat::EStyle, icu_52::DateFormat::EStyle, icu_52::Locale const&)'../../../binaries/system/libengine.a(L10n.o): In function `L10n::localizeDateTime(double const&, L10n::DateTimeType, icu_52::DateFormat::EStyle)':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:210: undefined reference to `icu_52::DateFormat::format(double, icu_52::UnicodeString&) const'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:212: undefined reference to `icu_52::CheckedArrayByteSink::CheckedArrayByteSink(char*, int)'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:213: undefined reference to `icu_52::UnicodeString::toUTF8(icu_52::ByteSink&) const'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:217: undefined reference to `icu_52::CheckedArrayByteSink::~CheckedArrayByteSink()'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:217: undefined reference to `icu_52::UnicodeString::~UnicodeString()'../../../binaries/system/libengine.a(L10n.o): In function `L10n::createDateTimeInstance(L10n::DateTimeType, icu_52::DateFormat::EStyle, icu_52::Locale const&)':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:353: undefined reference to `icu_52::DateFormat::createDateInstance(icu_52::DateFormat::EStyle, icu_52::Locale const&)'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:356: undefined reference to `icu_52::DateFormat::createTimeInstance(icu_52::DateFormat::EStyle, icu_52::Locale const&)'../../../binaries/system/libengine.a(L10n.o): In function `L10n::localizeDateTime(double const&, L10n::DateTimeType, icu_52::DateFormat::EStyle)':~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:217: undefined reference to `icu_52::CheckedArrayByteSink::~CheckedArrayByteSink()'~/0ad/leper/build/workspaces/gcc/../../../source/i18n/L10n.cpp:217: undefined reference to `icu_52::UnicodeString::~UnicodeString()'../../../binaries/system/libengine.a(L10n.o): In function `UnicodeString':/usr/local/include/unicode/unistr.h:3613: undefined reference to `vtable for icu_52::UnicodeString'<snip>~/0ad/leper/build/workspaces/gcc/../../../source/gui/scripting/ScriptFunctions.cpp:715: undefined reference to `icu_52::Locale::getUS()'collect2: ld returned 1 exit statusmake[1]: *** [../../../binaries/system/pyrogenesis] Error 1make: *** [pyrogenesis] Error 2make: *** Waiting for unfinished jobs....test_Matrix3d.cpptest_MD5.cpp<snip>

If the problem is that my Ubuntu is too old, I'll wait until the next LTS release in April before I try again, because my computer doesn't like Ubuntu Saucy,

Edited by GunChleoc
Link to comment
Share on other sites

Hi,

I just tested:

Place the engine po file as xx_XX.engine.po in binaries/data/l10n/ and the public po file as xx_XX.public.po in binaries/data/mods/public/l10n/. (with xx_XX being your locale code (eg fr, de or pt_PT))

And it works :)

I am not available this afternoon (one of my Ramirezis - a Amazonian fish - looks sick, so I have to mount a hospital aquarium), but I look at it tonight.
In any case, all my congratulations for the progress of internationalization ;)

GunChleoc:

On ubuntu 13.10, I installed the libicu-dev (and thus its dependence libicu48) by default with the command:
sudo apt-get install git cmake libicu-dev

(see http://www.wildfiregames.com/forum/index.php?s=607441b0b473b681320f37d1a3185316&showtopic=17747&page=2#entry285178)

For information, this is the "4.8.1.1-12ubuntu2" version.

Edited by Loki72
Link to comment
Share on other sites

The error message you posted is because your installed (and compiled ones) are in /usr/local/. It would be more interesting what the errors are with just the libicu-dev package (and the other version removed).

I don't know how to remove this now, because make uninstall only tells me that it has no target. How do you remove something that has been built and installed from source rather than the Software Center? Can I just rm them without damaging the system?

The libicu-dev that comes with my system is libicu-dev 4.8.1.1-3ubuntu0.1, so it's strange that it finds stuff in Loki's version but not in mine.

In /usr/local/lib, I have these files:

libicudata.solibicudata.so.52libicudata.so.52.1libicui18n.solibicui18n.so.52libicui18n.so.52.1libicuio.solibicuio.so.52libicuio.so.52.1libicule.solibicule.so.52libicule.so.52.1libiculx.solibiculx.so.52libiculx.so.52.1libicutest.solibicutest.so.52libicutest.so.52.1libicutu.solibicutu.so.52libicutu.so.52.1libicuuc.solibicuuc.so.52libicuuc.so.52.1
Link to comment
Share on other sites

GunChleoc,
I do not know if this will help, but to uninstall cleanly, I use "synaptic" and not the software center.

In synaptic, there is the "complete removal" option, which should remove the desired package, but also the configuration files that remain in case you decide to reinstall the package (I think those installed directly by sources are present too, but I'm not sure).

There are also a bunch of filters that can be very useful (broken packages or packages you manually installed ...)

Maybe you should uninstall it completely before installing the version of the official repositories. It is only one track, but I could not help you more, sorry.
Edited by Loki72
Link to comment
Share on other sites

I ran

sudo checkinstall -D --pkgname icu52.1 --pkgversion 52.1 make install

and then I was able to remove everything with synaptic. I then installed the libicu-dev again that comes with Ubuntu and the compile process went though. You guys rock! :)

Then I did this:

Place the engine po file as xx_XX.engine.po in binaries/data/l10n/ and the public po file as xx_XX.public.po in binaries/data/mods/public/l10n/. (with xx_XX being your locale code (eg fr, de or pt_PT))

And presto pronto, there's my language!

I also managed to start a game without any crashes. My Linux machine is too slow to play a game, but it is enough to do a lot of in-game string testing :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...