Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
U userhosts
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • nexedi
  • userhosts
  • Merge requests
  • !1

Merged
Created Mar 10, 2016 by Kazuhiko Shiozaki@kazuhikoOwner

use -fPIC instead of -fPIE that causes SEGV on gcc 5.

  • Overview 3
  • Commits 1
  • Changes 1

In my latest Ubuntu's gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2), userhosts causes SEGV. You can reproduce the issue with current SlapOS gcc-5.3.0 as well.

$ gdb --args ./userhosts ls
(gdb) run
Starting program: /srv/slapgrid/slappart0/srv/runner/software/d65309081a071d10fa34fce376e82fd7/parts/userhosts/userhosts ls
process 11758 is executing new program: /bin/ls
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
COPYING  debian  Makefile  README  userhosts  userhosts.c
 
Program received signal SIGSEGV, Segmentation fault.
__fpending (fp=0x0) at __fpending.c:23
23      __fpending.c: No such file or directory.
(gdb) bt
#0  __fpending (fp=0x0) at __fpending.c:23
#1  0x0000000000411e4c in ?? ()
#2  0x000000000040a075 in ?? ()
#3  0x00007ffff7418d32 in __run_exit_handlers (status=0, listp=0x7ffff77a3698 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#4  0x00007ffff7418d85 in __GI_exit (status=<optimised out>) at exit.c:104
#5  0x0000000000404067 in ?? ()
#6  0x00007ffff73ffa40 in __libc_start_main (main=0x4028a0, argc=1, argv=0x7fffffffeb48, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffffffeb38) at libc-start.c:289
#7  0x0000000000404899 in ?? ()
(gdb) bt full
#0  __fpending (fp=0x0) at __fpending.c:23
No locals.
#1  0x0000000000411e4c in ?? ()
No symbol table info available.
#2  0x000000000040a075 in ?? ()
No symbol table info available.
#3  0x00007ffff7418d32 in __run_exit_handlers (status=0, listp=0x7ffff77a3698 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
        atfct = <optimised out>
        onfct = <optimised out>
        cxafct = <optimised out>
        f = <optimised out>
#4  0x00007ffff7418d85 in __GI_exit (status=<optimised out>) at exit.c:104
No locals.
#5  0x0000000000404067 in ?? ()
No symbol table info available.
#6  0x00007ffff73ffa40 in __libc_start_main (main=0x4028a0, argc=1, argv=0x7fffffffeb48, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffffffeb38) at libc-start.c:289
        result = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -8764054844010181565, 4212848, 140737488350016, 0, 0, 8764055384653253699, 8764071327084268611}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x412420, 0x7fffffffeb48}, data = {prev = 0x0, cleanup = 0x0,
              canceltype = 4269088}}}
        not_first_call = <optimised out>
#7  0x0000000000404899 in ?? ()
No symbol table info available.

Using '-fPIC' instead of '-fPIE' solved the issue. I confirm that it works with this change on gcc-4.9 as well.

/cc @vpelletier, @jm

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: gcc-5-segv-fix
GitLab Nexedi Edition | About GitLab | About Nexedi | 沪ICP备2021021310号-2 | 沪ICP备2021021310号-7