{"action":"closed","issue":{"url":"https://api.github.com/repos/kellabyte/Haywire/issues/53","labels_url":"https://api.github.com/repos/kellabyte/Haywire/issues/53/labels{/name}","comments_url":"https://api.github.com/repos/kellabyte/Haywire/issues/53/comments","events_url":"https://api.github.com/repos/kellabyte/Haywire/issues/53/events","html_url":"https://github.com/kellabyte/Haywire/issues/53","id":64445604,"number":53,"title":"khash illegal instruction","user":{"login":"crackcomm","id":206368,"avatar_url":"https://avatars.githubusercontent.com/u/206368?v=3","gravatar_id":"","url":"https://api.github.com/users/crackcomm","html_url":"https://github.com/crackcomm","followers_url":"https://api.github.com/users/crackcomm/followers","following_url":"https://api.github.com/users/crackcomm/following{/other_user}","gists_url":"https://api.github.com/users/crackcomm/gists{/gist_id}","starred_url":"https://api.github.com/users/crackcomm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crackcomm/subscriptions","organizations_url":"https://api.github.com/users/crackcomm/orgs","repos_url":"https://api.github.com/users/crackcomm/repos","events_url":"https://api.github.com/users/crackcomm/events{/privacy}","received_events_url":"https://api.github.com/users/crackcomm/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-03-26T05:35:17Z","updated_at":"2015-07-14T00:37:48Z","closed_at":"2015-07-14T00:37:48Z","body":"I've got problems running code which was compiling on my previous PC and now it causes a\r\n\"Illegal instruction (core dumped)\".\r\n\r\n```\r\n==3406== Memcheck, a memory error detector\r\n==3406== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.\r\n==3406== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info\r\n==3406== Command: ./src/pxdon/pxdon\r\n==3406== \r\nvex amd64->IR: unhandled instruction bytes: 0xC5 0xF9 0x57 0xC0 0xC4 0xE1 0xFB 0x2A\r\nvex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0\r\nvex amd64->IR:   VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE\r\nvex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0\r\n==3406== valgrind: Unrecognised instruction at address 0x50627df.\r\n==3406==    at 0x50627DF: kh_resize_string_hashmap (http_server.c:37)\r\n==3406==    by 0x5062D5B: kh_put_string_hashmap (http_server.c:37)\r\n==3406==    by 0x506313F: set_route (http_server.c:78)\r\n==3406==    by 0x50631D4: hw_http_add_route (http_server.c:92)\r\n==3406==    by 0x4151C0: pxdon::ProxyChecker::bind(std::string, int) (proxy_checker.cpp:202)\r\n==3406==    by 0x417ED7: pxdon::Explorer::start() (explorer.cpp:137)\r\n==3406==    by 0x41A71F: main (main.cpp:37)\r\n==3406== Your program just tried to execute an instruction that Valgrind\r\n==3406== did not recognise.  There are two possible reasons for this.\r\n==3406== 1. Your program has a bug and erroneously jumped to a non-code\r\n==3406==    location.  If you are running Memcheck and you just saw a\r\n==3406==    warning about a bad jump, it's probably your program's fault.\r\n==3406== 2. The instruction is legitimate but Valgrind doesn't handle it,\r\n==3406==    i.e. it's Valgrind's fault.  If you think this is the case or\r\n==3406==    you are not sure, please let us know and we'll try to fix it.\r\n==3406== Either way, Valgrind will now raise a SIGILL signal which will\r\n==3406== probably kill your program.\r\n==3406== \r\n==3406== Process terminating with default action of signal 4 (SIGILL)\r\n==3406==  Illegal opcode at address 0x50627DF\r\n==3406==    at 0x50627DF: kh_resize_string_hashmap (http_server.c:37)\r\n==3406==    by 0x5062D5B: kh_put_string_hashmap (http_server.c:37)\r\n==3406==    by 0x506313F: set_route (http_server.c:78)\r\n==3406==    by 0x50631D4: hw_http_add_route (http_server.c:92)\r\n==3406==    by 0x4151C0: pxdon::ProxyChecker::bind(std::string, int) (proxy_checker.cpp:202)\r\n==3406==    by 0x417ED7: pxdon::Explorer::start() (explorer.cpp:137)\r\n==3406==    by 0x41A71F: main (main.cpp:37)\r\n==3406== \r\n==3406== HEAP SUMMARY:\r\n==3406==     in use at exit: 62,146 bytes in 269 blocks\r\n==3406==   total heap usage: 314 allocs, 45 frees, 98,209 bytes allocated\r\n==3406== \r\n==3406== LEAK SUMMARY:\r\n==3406==    definitely lost: 0 bytes in 0 blocks\r\n==3406==    indirectly lost: 0 bytes in 0 blocks\r\n==3406==      possibly lost: 701 bytes in 13 blocks\r\n==3406==    still reachable: 61,445 bytes in 256 blocks\r\n==3406==         suppressed: 0 bytes in 0 blocks\r\n==3406== Rerun with --leak-check=full to see details of leaked memory\r\n==3406== \r\n==3406== For counts of detected and suppressed errors, rerun with: -v\r\n==3406== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)\r\nIllegal instruction (core dumped)\r\n```\r\n\r\nI was getting error\r\n```\r\n[100%] Built target haywire_core\r\nLinking C shared library libhaywire_shared.so\r\n/usr/bin/ld: CMakeFiles/haywire_core.dir/src/haywire/configuration/configuration.c.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC\r\nCMakeFiles/haywire_core.dir/src/haywire/configuration/configuration.c.o: error adding symbols: Bad value\r\ncollect2: error: ld returned 1 exit status\r\nCMakeFiles/haywire_shared.dir/build.make:84: recipe for target 'libhaywire_shared.so' failed\r\nmake[2]: *** [libhaywire_shared.so] Error 1\r\nCMakeFiles/Makefile2:95: recipe for target 'CMakeFiles/haywire_shared.dir/all' failed\r\nmake[1]: *** [CMakeFiles/haywire_shared.dir/all] Error 2\r\nMakefile:76: recipe for target 'all' failed\r\nmake: *** [all] Error 2\r\n```\r\nso the library is compiled with `-fPIC` flag.\r\nAll that is happening on freshly installed fedora.\r\n`gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)`\r\n\r\nWhat do You think could be source of the problem?"}}