Build failure on 1.5.1

Asked by Raman Gupta on 2012-12-09

make[3]: Entering directory `/home/rgupta/rohc/rohc-1.5.1/src/comp'
  CC librohc_comp_la-rohc_comp.lo
  CC librohc_comp_la-c_uncompressed.lo
  CC librohc_comp_la-c_generic.lo
c_generic.c: In function 'code_ipv6_static_part':
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1872: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
c_generic.c:1878: error: 'const struct ipv6_addr' has no member named 'in6_u'
make[3]: *** [librohc_comp_la-c_generic.lo] Error 1
make[3]: Leaving directory `/home/rgupta/rohc/rohc-1.5.1/src/comp'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/rgupta/rohc/rohc-1.5.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/rgupta/rohc/rohc-1.5.1'
make: *** [all] Error 2

Question information

Language:
English Edit question
Status:
Solved
For:
rohc Edit question
Assignee:
No assignee Edit question
Solved by:
Didier Barvaux
Solved:
2012-12-18
Last query:
2012-12-18
Last reply:
2012-12-10

Hello,

Please, please, please, always provide the following information when reporting a build problem:
 - the ROHC release you are working with (you did it),
 - the configure options you use,
 - the name and version of the compiler you use (for GCC, gcc --version),
 - the OS you use (the name and version of your distribution if you are on Linux),
 - whether you modified the sources or not.

Without these information, it is difficult to help you...

Regards,
Didier

Raman Gupta (ramangupta16) said : #2

My apologies for not providing complete information. Here is the complete info:-

1) Release: 1.5.1

2) Configure Options:- ./configure --prefix=/usr --libdir=/usr/lib64 --enable-examples --enable-rohc-apps --enable-rohc-tests-valgrind --enable-rohc-tests

3) GCC version:- g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)

4) OS:- 64-bit CentOS release 5.7

5) Did not modify the source.

Thank you for the information. Unfortunately, so far, I was not able to reproduce the problem with the same options, GCC 4.1 and release 1.5.1.

Could you provide me the content of the src/common/protocols/ipv6.h file? It is short, copy/paste it here.

Regards,
Didier

Raman Gupta (ramangupta16) said : #4

Here are the content of the src/common/protocols/ipv6.h file

/**
 * @file ipv6.h
 * @brief Defines the IPv6 header
 * @author Free Software Foundation, Inc
 *
 * This file contains a part of netinet/ip6.h from the GNU C library. It is
 * copied here to be portable on all platforms, even the platforms that miss
 * the declarations or got different declarations, such as Microsoft Windows
 * or FreeBSD.
 */

#ifndef ROHC_PROTOCOLS_IPV6_H
#define ROHC_PROTOCOLS_IPV6_H

#include <stdint.h>

/**
 * @brief The IPv6 address
 */
struct ipv6_addr
{
 union
 {
  uint8_t __u6_addr8[16];
  uint16_t __u6_addr16[8];
  uint32_t __u6_addr32[4];
 } __in6_u;
#define s6_addr __in6_u.__u6_addr8
#define s6_addr16 __in6_u.__u6_addr16
#define s6_addr32 __in6_u.__u6_addr32
};

/**
 * @brief The IPv6 header
 */
struct ipv6_hdr
{
 union
 {
  struct ip6_hdrctl
  {
   uint32_t ip6_un1_flow; /* 4 bits version, 8 bits TC,
                               20 bits flow-ID */
   uint16_t ip6_un1_plen; /* payload length */
   uint8_t ip6_un1_nxt; /* next header */
   uint8_t ip6_un1_hlim; /* hop limit */
  } ip6_un1;
  uint8_t ip6_un2_vfc; /* 4 bits version, top 4 bits tclass */
 } ip6_ctlun;
 struct ipv6_addr ip6_src; /* source address */
 struct ipv6_addr ip6_dst; /* destination address */
};

#define ip6_vfc ip6_ctlun.ip6_un2_vfc
#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow
#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen
#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt
#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim

#endif

FWX (dialine-rohc-team) said : #5

 Hello,

 It seems to be the same problem with Question #212737.

 Can you try the patch given in :

   https://answers.launchpad.net/rohc/+question/212737

 Best regards,

        FWX.

Raman Gupta (ramangupta16) said : #6

Hi FWX/Didier

Yes, patch solved the problem, but now 'make check' is failing some testcases due to valgrind issue:-

FAIL: test_feedback2_ack_smallcid_smallsn_crc.sh
FAIL: test_feedback2_ack_smallcid_largesn_sn-crc.sh
FAIL: test_feedback2_ack_largecid_largesn_sn-crc.sh
FAIL: test_feedback2_ack_largecid_smallsn_crc.sh
============================================
4 of 4 tests failed
See test/functional/feedback2/test-suite.log
Please report to http://rohc-lib.org/
============================================
make[5]: *** [test-suite.log] Error 1
make[5]: Leaving directory `/home/rgupta/rohc/rohc-1.5.0/test/functional/feedback2'
make[4]: *** [check-TESTS] Error 2
make[4]: Leaving directory `/home/rgupta/rohc/rohc-1.5.0/test/functional/feedback2'

[Raman] The file test/functional/feedback2/test-suite.log says:-

packet #16:
 decompression is successful
 5-byte feedback generated
 Add-CID found
 FEEDBACK-2 is a ack feedback as expected
 SN (or a part of it) = 0x0fff
 2-byte CRC option found
valgrind: Bad option '--show-possibly-lost=yes'; aborting.
valgrind: Use --help for more information.
test failed inside valgrind (exit code 1)
grep: /tmp/valgrind_500_7cf27bf163527c26c18cb48653bc9292_1355137496.xml: No such file or directory
XSL transformation failed:
command: /usr/bin/xsltproc "./../../valgrind.xsl" "/tmp/valgrind_500_7cf27bf163527c26c18cb48653bc9292_1355137496.xml.filtered"
/tmp/valgrind_500_7cf27bf163527c26c18cb48653bc9292_1355137496.xml.filtered:1: parser error : StartTag: invalid element name
</valgrindoutput>
 ^
/tmp/valgrind_500_7cf27bf163527c26c18cb48653bc9292_1355137496.xml.filtered:1: parser error : Extra content at the end of the document
</valgrindoutput>
 ^
unable to parse /tmp/valgrind_500_7cf27bf163527c26c18cb48653bc9292_1355137496.xml.filtered

FAIL: test_feedback2_ack_smallcid_largesn_sn-crc.sh (exit: 1)
=============================================================

packet #1:
 decompression is successful
 6-byte feedback generated
 FEEDBACK-2 is a ack feedback as expected
 SN (or a part of it) = 0x0010
 2-byte SN option found
 2-byte CRC option found
valgrind: Bad option '--show-possibly-lost=yes'; aborting.
valgrind: Use --help for more information.
test failed inside valgrind (exit code 1)
grep: /tmp/valgrind_500_d70b0913ed907b3aa3108d45977e5760_1355137498.xml: No such file or directory
XSL transformation failed:
command: /usr/bin/xsltproc "./../../valgrind.xsl" "/tmp/valgrind_500_d70b0913ed907b3aa3108d45977e5760_1355137498.xml.filtered"
/tmp/valgrind_500_d70b0913ed907b3aa3108d45977e5760_1355137498.xml.filtered:1: parser error : StartTag: invalid element name
</valgrindoutput>
 ^
/tmp/valgrind_500_d70b0913ed907b3aa3108d45977e5760_1355137498.xml.filtered:1: parser error : Extra content at the end of the document
</valgrindoutput>
 ^
unable to parse /tmp/valgrind_500_d70b0913ed907b3aa3108d45977e5760_1355137498.xml.filtered

FAIL: test_feedback2_ack_largecid_largesn_sn-crc.sh (exit: 1)
=============================================================

packet #1:
 decompression is successful
 7-byte feedback generated
 large CID found
 FEEDBACK-2 is a ack feedback as expected
 SN (or a part of it) = 0x0010
 2-byte SN option found
 2-byte CRC option found
valgrind: Bad option '--show-possibly-lost=yes'; aborting.
valgrind: Use --help for more information.
test failed inside valgrind (exit code 1)
grep: /tmp/valgrind_500_b771aedac472f7bd48b0ff49bc3a8b4c_1355137501.xml: No such file or directory
XSL transformation failed:
command: /usr/bin/xsltproc "./../../valgrind.xsl" "/tmp/valgrind_500_b771aedac472f7bd48b0ff49bc3a8b4c_1355137501.xml.filtered"
/tmp/valgrind_500_b771aedac472f7bd48b0ff49bc3a8b4c_1355137501.xml.filtered:1: parser error : StartTag: invalid element name
</valgrindoutput>
 ^
/tmp/valgrind_500_b771aedac472f7bd48b0ff49bc3a8b4c_1355137501.xml.filtered:1: parser error : Extra content at the end of the document
</valgrindoutput>
 ^
unable to parse /tmp/valgrind_500_b771aedac472f7bd48b0ff49bc3a8b4c_1355137501.xml.filtered

FAIL: test_feedback2_ack_largecid_smallsn_crc.sh (exit: 1)
==========================================================

packet #1:
 decompression is successful
 5-byte feedback generated
 large CID found
 FEEDBACK-2 is a ack feedback as expected
 SN (or a part of it) = 0x0100
 2-byte CRC option found
valgrind: Bad option '--show-possibly-lost=yes'; aborting.
valgrind: Use --help for more information.
test failed inside valgrind (exit code 1)
grep: /tmp/valgrind_500_6828eeebb004b6b4f434ecebb47ec60b_1355137503.xml: No such file or directory
XSL transformation failed:
command: /usr/bin/xsltproc "./../../valgrind.xsl" "/tmp/valgrind_500_6828eeebb004b6b4f434ecebb47ec60b_1355137503.xml.filtered"
/tmp/valgrind_500_6828eeebb004b6b4f434ecebb47ec60b_1355137503.xml.filtered:1: parser error : StartTag: invalid element name
</valgrindoutput>
 ^
/tmp/valgrind_500_6828eeebb004b6b4f434ecebb47ec60b_1355137503.xml.filtered:1: parser error : Extra content at the end of the document
</valgrindoutput>
 ^
unable to parse /tmp/valgrind_500_6828eeebb004b6b4f434ecebb47ec60b_1355137503.xml.filtered

[Raman]: My valgrind version is 3.5.0

FWX (dialine-rohc-team) said : #7

 Hello Raman,

 Can you have a look on the bug 1074285 :

https://bugs.launchpad.net/rohc/+bug/1074285

 Perhaps you'll find the answer to your question...

 Best regards,

         FWX.

Your Valgrind version (3.5.0) seems to lack the --show-possibly-lost=yes option. Could you check that assertion in your Valgrind man page or with the following command:
 $ valgrind --help | grep show-possibly-lost

To workaround the problem, edit the test/valgrind.sh script to remove the --show-possibly-lost=yes option:

- run_test_with_valgrind()
- {
- OPTIONS="--tool=memcheck --trace-children=yes --track-fds=yes
- --leak-check=full --show-possibly-lost=yes --show-reachable=yes
- --malloc-fill=0xaa --free-fill=0x55"
+ run_test_with_valgrind()
+ {
+ OPTIONS="--tool=memcheck --trace-children=yes --track-fds=yes
+ --leak-check=full --show-reachable=yes
+ --malloc-fill=0xaa --free-fill=0x55"

Let me know if it work. I'll then check for Valgrind version in order to add the option if it is supported.

Regards,
Didier

Raman Gupta (ramangupta16) said : #9

I tried the patch and it passed. Thanks.

Raman Gupta (ramangupta16) said : #10

Thanks Didier Barvaux, that solved my question.

Problem fixed with bug #1096586. The correction will be shipped in next 1.5.2 and 1.6.0 releases.

Regards,
Didier