# WORKAROUND Xen-tools segfaults when merging

## modsRule

Edit: build + install with emerge solves the problem.

Edit2: Raised as a big with paludis.

Firstly, I used paludis.

Secondly, I have changed the CFLAGS as the gentoo xen guide says to include -mno-tls-direct-seg-refs.I then rebuilt world to include this.

Xen and xen-sources installed fine, it is just this package which is segfaulting.

I have re-installed gcc and glibc without any change, it still segfaults.

Appropriate output from paludis:

```

make -C libflask all                                                                         

make[4]: Entering directory `/var/tmp/paludis/app-emulation-xen-tools-3.4.2/work/xen-3.4.2/tools/flask/libflask'                                                                          

make libflask.a libflask.so libflask.so.1.0 libflask.so.1.0.0                                

make[5]: Entering directory `/var/tmp/paludis/app-emulation-xen-tools-3.4.2/work/xen-3.4.2/tools/flask/libflask'                                                                          

gcc   -fno-strict-overflow -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .subdirs-all.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .subdir-all-flask.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .subdirs-all.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .subdir-all-libflask.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .build.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -Werror -fno-strict-aliasing  -I./include -I../../../tools/libxc -I../../../tools/include -Wp,-MD,.build.d -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .flask_op.o.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -Werror -fno-strict-aliasing  -I./include -I../../../tools/libxc -I../../../tools/include -Wp,-MD,.flask_op.o.d -c -o flask_op.o flask_op.c                                                                     

gcc  -DPIC  -fno-strict-overflow -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .subdirs-all.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .subdir-all-flask.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .subdirs-all.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .subdir-all-libflask.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .build.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -Werror -fno-strict-aliasing  -I./include -I../../../tools/libxc -I../../../tools/include -Wp,-MD,.build.d -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement  -D__XEN_TOOLS__ -MMD -MF .flask_op.opic.d  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -Werror -fno-strict-aliasing  -I./include -I../../../tools/libxc -I../../../tools/include -Wp,-MD,.flask_op.opic.d -fPIC -c -o flask_op.opic flask_op.c                                                

make[5]: Leaving directory `/var/tmp/paludis/app-emulation-xen-tools-3.4.2/work/xen-3.4.2/tools/flask/libflask'                                                                           

make[4]: Leaving directory `/var/tmp/paludis/app-emulation-xen-tools-3.4.2/work/xen-3.4.2/tools/flask/libflask'                                                                           

make[3]: Leaving directory `/var/tmp/paludis/app-emulation-xen-tools-3.4.2/work/xen-3.4.2/tools/flask'                                                                                    

make[2]: Leaving directory `/var/tmp/paludis/app-emulation-xen-tools-3.4.2/work/xen-3.4.2/tools/flask'                                                                                    

make[1]: Leaving directory `/var/tmp/paludis/app-emulation-xen-tools-3.4.2/work/xen-3.4.2/tools'                                                                                          

make[5]: *** [flask_op.o] Segmentation fault                                                 

make[4]: *** [build] Error 2                                                                 

make[3]: *** [subdir-all-libflask] Error 2                                                   

make[2]: *** [subdirs-all] Error 2                                                           

make[1]: *** [subdir-all-flask] Error 2                                                      

make: *** [subdirs-all] Error 2                                                              

make: Leaving directory `/var/tmp/paludis/app-emulation-xen-tools-3.4.2/work/xen-3.4.2/tools'

make: INTERNAL: Exiting with 9 jobserver tokens available; should be 8!                      

/usr/libexec/paludis/utils/emake: emake returned error 2                                     

!!! ERROR in app-emulation/xen-tools-3.4.2::gentoo:

!!! In src_compile at line 5809                    

!!! compile failed                                 

!!! Call stack:

!!!    * src_compile (/var/tmp/paludis/app-emulation-xen-tools-3.4.2/temp/loadsaveenv:5809)

!!!    * ebuild_f_compile (/usr/libexec/paludis/2/src_compile.bash:56)

!!!    * ebuild_main (/usr/libexec/paludis/ebuild.bash:616)

!!!    * main (/usr/libexec/paludis/ebuild.bash:644)

diefunc: making ebuild PID 22139 exit with error

die trap: exiting with error.

Install error:

  * In program paludis -i xen-tools:

  * When performing install action from command line:

  * When executing install task:

  * When installing 'app-emulation/xen-tools-3.4.2:0::gentoo':

  * When running an ebuild command on 'app-emulation/xen-tools-3.4.2:0::gentoo':

  * Install failed for 'app-emulation/xen-tools-3.4.2:0::gentoo'

*** Messages log: /var/log/paludis/1267997531-install-app-emulation_xen-tools-3.4.2:0::gentoo.messages

*** Output log: /var/log/paludis/1267997531-install-app-emulation_xen-tools-3.4.2:0::gentoo.out

Summary of failures:

* app-emulation/xen-tools-3.4.2:0::gentoo: failure

Total: 1 package, 0 successes, 0 skipped, 1 failure, 0 unreached

```

Any ideas on why it segfaults and how to stop it?Last edited by modsRule on Sun Mar 07, 2010 10:39 pm; edited 2 times in total

----------

## modsRule

After some more exploration, I think that this may be a paludis problem, since cd'ing to the tmp directory and running the same command that paludis does ("make -j8 -C tools" for xen-tools) compiles fine without any problems.

----------

## vr13

i've had same problem, workarounded disabling all the features set in /etc/make.conf for xen-tools package:

```
$ cat /etc/portage/env/app-emulation/xen-tools 

FEATURES=""
```

yet another issue with xen-tools: dependent package sys-devel/dev86 did not build (the solution found somethere in xen mailing list):

```
$ cat /etc/portage/env/sys-devel/dev86 

CFLAGS="${CFLAGS} -U_FORTIFY_SOURCE"
```

----------

