Hi Merton,

On Wed, 09 Jul 2014, 19:05:12 +0200, Merton Lister wrote:
> Hi Lukas,
> 
> I tried compiling with "make CFLAGS="-g -O0"", but it complained that the
> TARGET variable must be specified. So I compiled using: make CFLAGS="-g
> -O0" TARGET=linux2628 USE_OPENSSL=1. Funny enough, the compiled binary did
> not crash anymore. I then tried: make CFLAGS="-g -O0"
> TARGET=linux2628 USE_OPENSSL=1 USE_STATIC_PCRE=1. This time, request failed
> but the process did not crash.
> 
> Finally, I tried compiling with the exact options that produce my original
> problem: make TARGET=linux2628 CPU=native USE_STATIC_PCRE=1 USE_OPENSSL=1,
                                 ^^^^^^^^^^
> and use gdb to trace it.
> 
> Below is what I got when a request crashes the process:
> 
> *(gdb) run*
> Starting program: /usr/bin/sudo haproxy -f /etc/haproxy/haproxy.cfg -p
> /var/run/haproxy.pid -sf 18904
> process 18911 is executing new program: /usr/local/sbin/haproxy-1.5.1
> [WARNING] 189/125516 (18911) : Setting tune.ssl.default-dh-param to 1024 by
> default, if your workload permits it you should set it to at least 2048.
> Please set a value >= 1024 to make this warning disappear.
> 
> Program received signal SIGILL, Illegal instruction.
                          ^^^^^   ^^^^^^^^^^^^^^^^^^^

It looks like the "CPU=native" parameter above results in some machine
code generated during compilation which cannot be executed on your
actual CPU. Can you please show

  (a) one command line how gcc is invoked (i.e. which flags are passed
      for compilation)
  (b) cat /proc/cpuinfo

> [...]
> Best regards,
> 
> Merton

HTH, cheers.

l8er
manfred

Reply via email to