FPGARelated.com
Forums

Quartus 7.1 segv on recent Linux distributions

Started by Markus Kuhn May 24, 2007
Although Altera's Quartus II is officially only supported on
(by now) rather old Linux releases (SUSE Enterprise Linux 9,
Red Hat Enterprise Linux 3 and 4), up to Quartus 7.0, it also
used to work quite well in practice on more recent distributions
(openSUSE 10.2, Fedora Core 6, etc.).

However, the new Quartus 7.1 fails badly on both openSUSE 10.2 and
Fedora Core 6. It only opens (after the brief splash message) its
main window and then immediately aborts with this "Internal Error"
pop-up:

*** Fatal Error: Segment Violation at 0x28, Module: quartus
0xFDA8D   : FontDrawCharset::bInit(tagLOGFONTA*) + 0x22D (gdiuser32)
0xFF0AF   : fontcache::GetNewFontDraw(tagLOGFONTA*, tagXFORM*, int, unsigned long, unsigned long) + 0x21F (gdiuser32)
0xFF347   : fontcache::FindOrCreateFontDraw(tagXFORM*, CW_DC*, tagLOGFONTA*) + 0x197 (gdiuser32)
0xFF50F   : fontcache::FindOrCreateFontDraw(CW_DC*, tagLOGFONTA*) + 0xBF (gdiuser32)
0x101DD2  : fontcache::EnumFontsA(CW_DC*, tagLOGFONTA*, int (*)(tagLOGFONTA const*, tagTEXTMETRICA const*, unsigned long, long), long, int) + 0x432 (gdiuser32)
0x103353  : MwEnumFontsTT + 0x43 (gdiuser32)
0xC4562   : EnumFontFamiliesExA + 0x132 (gdiuser32)
0x26AFDE  : GX_FONT_STATE::GX_FONT_STATE() + 0x2CE (og903as)
0xDD285   : GX_APP_STATE::GX_APP_STATE() + 0xD5 (og903as)
0xDE290   : GXGetAppState() + 0x90 (og903as)
0x11C3C1  : GXInit(unsigned int, CGXAbstractControlFactory*, char const*, char const*) + 0x21 (og903as)
0xDF4C6   : GXInit(unsigned int, char const*, char const*) + 0x46 (og903as)
0x3CD36   : resr_oaw_DllMain + 0x194 (resr_oaw)
0xB48E7   : Mw___resr_5foaw_wrapDllMain + 0x2B (resr_oaw)
0xE8EC1   : MwDllInPostConstruct + 0x71 (kernel32)
0xB4D2C   : _Initializerresr_5foaw::construct() + 0x22 (resr_oaw)
0xB4A7E   : _Initializerresr_5foaw::_Initializerresr_5foaw() + 0x9A (resr_oaw)
0xB4DCF   : (resr_oaw)
0xB4E16   : (resr_oaw)
0xB4F45   : (resr_oaw)
0x375D9   : (resr_oaw)
0xE3E3    : (ld-linux.so.2)
0xE4F3    : (ld-linux.so.2)
0x11FF6   : (ld-linux.so.2)
0xE026    : (ld-linux.so.2)
0x11929   : (ld-linux.so.2)
0xD2D     : (dl.so.2)
0xE026    : (ld-linux.so.2)
0x11DC    : (dl.so.2)
0xC64     : dlopen + 0x44 (dl.so.2)
0xEB6BE   : UnixLoadLibrary(CW_Instance*) + 0x5E (kernel32)
0xEA720   : (kernel32)
0xEA885   : LoadLibraryA + 0x35 (kernel32)
0xB1C0E   : AfxLoadLibrary(char const*) + 0x2E (mfc400s)
0x181C8AB : afc_load_library + 0x1D (quartus)
0x73AE    : thr_drl_native_load + 0x43 (ccl_thr_win32)
0x800A    : thr_drl_load_internal + 0x76 (ccl_thr_win32)
0x8299    : thr_drl_load + 0xBA (ccl_thr_win32)
0x1806211 : AFC_TEMPLATE_MANAGER::load_template(AFC_DOC_INFO const*) + 0x62B (quartus)
0x10702ED : PJM_MAIN_FRAME::on_open_oaw(unsigned int) + 0xD5 (quartus)
0x111958  : _AfxDispatchCmdMsg(CCmdTarget*, unsigned int, int, void (CCmdTarget::*)(), void*, unsigned int, AFX_CMDHANDLERINFO*) + 0x218 (mfc400s)
0x111A77  : CCmdTarget::OnCmdMsg(unsigned int, int, void*, AFX_CMDHANDLERINFO*) + 0xC7 (mfc400s)
0xD21CB   : CFrameWnd::OnCmdMsg(unsigned int, int, void*, AFX_CMDHANDLERINFO*) + 0x8B (mfc400s)
0x26836E  : SECMDIFrameWnd::OnCmdMsg(unsigned int, int, void*, AFX_CMDHANDLERINFO*) + 0x16E (ot803as)
0xCE8E5   : CWnd::OnCommand(unsigned int, long) + 0xB5 (mfc400s)
0xD0DF9   : CFrameWnd::OnCommand(unsigned int, long) + 0x69 (mfc400s)
0x26816F  : SECMDIFrameWnd::OnCommand(unsigned int, long) + 0x6F (ot803as)
0x1829D52 : AFC_MDI_FRAME::OnCommand(unsigned int, long) + 0x42 (quartus)
0xCB3CF   : CWnd::OnWndMsg(unsigned int, unsigned int, long, long*) + 0x2CF (mfc400s)
0x108277F : PJM_MAIN_FRAME::OnWndMsg(unsigned int, unsigned int, long, long*) + 0x85 (quartus)
0xCAD59   : CWnd::WindowProc(unsigned int, unsigned int, long) + 0x39 (mfc400s)
0x269014  : SECMDIFrameWnd::WindowProc(unsigned int, unsigned int, long) + 0x64 (ot803as)
0xCF623   : AfxCallWndProc(CWnd*, HWND__*, unsigned int, unsigned int, long) + 0xC3 (mfc400s)
0xD00C3   : AfxWndProc(HWND__*, unsigned int, unsigned int, long) + 0x53 (mfc400s)
0xC7E9B   : AfxWndProcBase(HWND__*, unsigned int, unsigned int, long) + 0x5B (mfc400s)
0x1809F1  : MwCallCallWndProc + 0x171 (gdiuser32)
0x18C57A  : MwICallWindowProc + 0x7A (gdiuser32)
0x1989B6  : CallWindowProcA + 0x66 (gdiuser32)
0x10956EB : CSubclassWnd::WindowProc(unsigned int, unsigned int, long) + 0x9F (quartus)
0x1092FDF : CCoolMenuManager::WindowProc(unsigned int, unsigned int, long) + 0x199 (quartus)
0x1095829 : HookWndProc(HWND__*, unsigned int, unsigned int, long) + 0xF1 (quartus)
0x1809F1  : MwCallCallWndProc + 0x171 (gdiuser32)
0x18D841  : MwIDispatchMessage + 0xA1 (gdiuser32)
0x18D9FA  : DispatchMessageA + 0x4A (gdiuser32)
0x12BFED  : CWinThread::PumpMessage() + 0x7D (mfc400s)
0x12BAEA  : CWinThread::Run() + 0x8A (mfc400s)
0x12DB59  : CWinApp::Run() + 0x29 (mfc400s)
0x182300A : AFC_APP::Run() + 0x160 (quartus)
0xDC2ED   : AfxWinMain(HINSTANCE__*, HINSTANCE__*, char*, int) + 0xAD (mfc400s)
0x4496B83 : WinMain + 0x53 (quartus)
0x10C5DEF : main + 0x9D (quartus)
0x15F9C   : __libc_start_main + 0xDC (c.so.6)
0x101F311 : (quartus)

End-trace

Has anyone already found a workaround (other than using an older OS,
e.g. CentOS 4.5 works fine)?

Markus

-- 
Markus Kuhn, Computer Laboratory, University of Cambridge
http://www.cl.cam.ac.uk/~mgk25/ || CB3 0FD, Great Britain
I was able to solve the problem with the shell command

 rm -rf ~/.mw

Deleting the .mw subdirectory in my home directory, which older
Quartus versions had left there, caused the segmentation violation
problem that I had with Quartus 7.1 to disappear.

Just in case this helps anyone else ...

Markus

-- 
Markus Kuhn, Computer Laboratory, University of Cambridge
http://www.cl.cam.ac.uk/~mgk25/ || CB3 0FD, Great Britain