Project

General

Profile

Actions

Support #1207

closed
GP VJ

Cannot compile on CentOS 5 x64 with --enable-profiling

Support #1207: Cannot compile on CentOS 5 x64 with --enable-profiling

Added by Gabriel Paiu almost 12 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Low
Assignee:
Affected Versions:
Label:

Description

Hello,

I'm trying to install Suricata 2.0.1 on CentOS 5.10 x64, but it's erroring out on make when configuring with --enable-profiling. Details below:

Configure command

%configure \
        --prefix=/usr/ \
        --sysconfdir=/etc/ \
        --localstatedir=/var/ \
        --enable-unix-socket \
        --enable-profiling \
        --enable-geoip \
        --with-libnss-libraries=/usr/lib64 \
        --with-libnss-includes=/usr/include/nss3 \
        --with-libnspr-libraries=/usr/lib64 \
        --with-libnspr-includes=/usr/include/nspr4 \
        --enable-nfqueue

OS details

# cat /etc/redhat-release 
CentOS release 5.10 (Final)

# uname -a
Linux vpspaiu4.accountservergroup.com 3.2.58-grsec.31.el5 #1 SMP Tue May 13 08:10:54 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

Dependencies

# rpm -q rpm -q libpcap libpcap-devel libnet libnet-devel pcre pcre-devel gcc gcc-c++ automake autoconf libtool make libyaml libyaml-devel zlib zlib-devel geoip geoip-devel
rpm-4.4.2.3-34.el5
libpcap-0.9.4-15.el5
libpcap-devel-0.9.4-15.el5
libnet-1.1.6-7.el5
libnet-devel-1.1.6-7.el5
pcre-6.6-9.el5
pcre-6.6-9.el5
pcre-devel-6.6-9.el5
pcre-devel-6.6-9.el5
gcc-4.1.2-54.el5
gcc-c++-4.1.2-54.el5
automake-1.9.6-2.3.el5
autoconf-2.59-12
libtool-1.5.22-7.el5_4
make-3.81-3.el5
libyaml-0.1.4-1.el5.rf
libyaml-devel-0.1.4-1.el5.rf
zlib-1.2.3-7.el5
zlib-1.2.3-7.el5
zlib-devel-1.2.3-7.el5
zlib-devel-1.2.3-7.el5
geoip-1.4.6-1.el5.rf
geoip-devel-1.4.6-1.el5.rf

* Along with Jansson 2.6 complied from source

Error that's received

util-profiling.c:100: error: expected declaration specifiers or ‘...’ before ‘&’ token
util-profiling.c:100: error: expected declaration specifiers or ‘...’ before numeric constant
util-profiling.c:100: warning: data definition has no type or storage class
util-profiling.c:100: warning: type defaults to ‘int’ in declaration of ‘pthread_spin_init’
make[3]: *** [util-profiling.o] Error 1
make[3]: Leaving directory `/root/setup/suricata-2.0.1/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/setup/suricata-2.0.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/setup/suricata-2.0.1'
make: *** [all] Error 2

I was able to install the latest 1.x version without issues, even with --enable-profile enabled, but for some reason I can't get past make on version 2.0.1. It installed flawlessly on CentOS 6 with the same configure command.

Is there anything that I'm missing by any chance? If there's any other info I can provide, let me know.

Thanks.

GP Updated by Gabriel Paiu almost 12 years ago Actions #1

Any feedback on this would be greatly appreciate,

Thanks,
Gabriel Paiu

VJ Updated by Victor Julien almost 12 years ago Actions #2

  • Priority changed from High to Low

Can you try editing that line (util-profiling.c, line 100) and remove the 'static' keyword there?

Since CentOS5 is old and it only affects profiling, I'm setting priority to low.

GP Updated by Gabriel Paiu almost 12 years ago Actions #3

I've commented out all occurrences of SC_ATOMIC_DECL_AND_INIT from the util-profiling C script, and then it still errors out at another point:

util-profiling.c: In function ‘SCProfilePacketStart’:
util-profiling.c:961: error: ‘samples_sc_atomic__’ undeclared (first use in this function)
util-profiling.c:961: error: (Each undeclared identifier is reported only once
util-profiling.c:961: error: for each function it appears in.)
util-profiling.c:961: warning: type defaults to ‘int’ in declaration of ‘var’
util-profiling.c:961: error: ‘samples_sc_lock__’ undeclared (first use in this function)
util-profiling.c: In function ‘SCProfileRuleStart’:
util-profiling.c:976: error: ‘samples_sc_atomic__’ undeclared (first use in this function)
util-profiling.c:976: warning: type defaults to ‘int’ in declaration of ‘var’
util-profiling.c:976: error: ‘samples_sc_lock__’ undeclared (first use in this function)
make[1]: *** [util-profiling.o] Error 1
make[1]: Leaving directory `/root/setup/suricata-2.0.1/src'
make: *** [all] Error 2

Seems to me like this will lead to basically disabling packet profiling one way or another? I.E if not by avoiding it on ./configure, then by commenting out the related code in the source files? Was this feature conceived to work on CentOS 5 or not ?

Thank you

VJ Updated by Victor Julien almost 12 years ago Actions #4

Yes, that won't work. Please remove only the static word, not the entire line.

GP Updated by Gabriel Paiu almost 12 years ago Actions #5

Ah ok sorry I misread that and I understand what you were going for. That fixed most of the errors and now I'm left with:

util-profiling.c:100: error: expected declaration specifiers or ‘...’ before ‘&’ token
util-profiling.c:100: error: expected declaration specifiers or ‘...’ before numeric constant
util-profiling.c:100: warning: data definition has no type or storage class
util-profiling.c:100: warning: type defaults to ‘int’ in declaration of ‘pthread_spin_init’

The header at line 100 now looks like:

SC_ATOMIC_DECL_AND_INIT(uint64_t, samples);

Is it possibly related to the uppercase name of the function that's being "confused" with a constant perhaps?

VJ Updated by Victor Julien over 11 years ago Actions #6

  • Status changed from New to Closed
  • Assignee set to Victor Julien
  • Target version set to 2.0.3
  • % Done changed from 0 to 100
Actions

Also available in: PDF Atom