[lttng-dev] Problem compiling on Raspberry Pi 3

Adrià Arcarons adria.arcarons at gmail.com
Sun Nov 19 10:43:03 UTC 2017


Hi,

I'm trying to compile lttng-ust library on a Raspberry Pi 3 and I get the
following error when make is compiling librinbuffer:

/tmp/ccczexgU.s:2010: Error: selected processor does not support `dmb' in
ARM mode

I guessed the configure script is not detecting my processor correctly.
Raspberry Pi 3 has a Cortex-A53 which is armv8, and has DMB.

To overcome this, I'm specifying additional CFLAGS to force to compile on
the armv8 architecture:

CFLAGS="-mcpu=cortex-a53 -mfloat-abi=hard -mfpu=neon-fp-armv8
-mneon-for-64bits -mtune=cortex-a53" ./configure

Then I run make again. libringbuffer is compiled correctly, but now another
error appears (see the bottom of this mail). I think it's related to
liburcu. It seems lttng-ust-statedump.c is using some macros defined in
hlist.c of the liburcu library, although I can't see no includes of that
file.

Some context:
- I have compiled and installed the v0.7.2 of liburcu on my system.
- gcc version: gcc (Raspbian 6.3.0-18+rpi1) 6.3.0 20170516
- OS: Linux raspberrypi 4.9.35-v7+


The `make` output with the error:

 CC       lttng-ust-statedump.lo
lttng-ust-statedump.c: In function ‘find_or_create_dl_node’:
lttng-ust-statedump.c:179:38: error: ‘node’ undeclared (first use in this
function)
  cds_hlist_for_each_entry_2(e, head, node) {
                                      ^~~~
lttng-ust-statedump.c:179:44: error: expected ‘;’ before ‘{’ token
  cds_hlist_for_each_entry_2(e, head, node) {
                                            ^
lttng-ust-statedump.c:174:7: warning: unused variable ‘found’
[-Wunused-variable]
  bool found = false;
       ^~~~~
lttng-ust-statedump.c:193:1: warning: no return statement in function
returning non-void [-Wreturn-type]
 }
 ^
lttng-ust-statedump.c: In function ‘iter_begin’:
lttng-ust-statedump.c:384:39: error: ‘node’ undeclared (first use in this
function)
   cds_hlist_for_each_entry_2(e, head, node)
                                       ^~~~
lttng-ust-statedump.c: In function ‘iter_end’:
lttng-ust-statedump.c:433:39: error: ‘node’ undeclared (first use in this
function)
   cds_hlist_for_each_entry_2(e, head, node) {
                                       ^~~~
lttng-ust-statedump.c:433:45: error: expected ‘;’ before ‘{’ token
   cds_hlist_for_each_entry_2(e, head, node) {
                                             ^
lttng-ust-statedump.c: In function ‘ust_dl_table_statedump’:
lttng-ust-statedump.c:542:39: error: ‘node’ undeclared (first use in this
function)
   cds_hlist_for_each_entry_2(e, head, node) {
                                       ^~~~
lttng-ust-statedump.c:542:45: error: expected ‘;’ before ‘{’ token
   cds_hlist_for_each_entry_2(e, head, node) {
                                             ^
lttng-ust-statedump.c: In function ‘ust_dl_state_destroy’:
lttng-ust-statedump.c:642:3: warning: implicit declaration of function
‘cds_hlist_for_each_entry_safe_2’ [-Wimplicit-function-declaration]
   cds_hlist_for_each_entry_safe_2(e, tmp, head, node)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lttng-ust-statedump.c:642:49: error: ‘node’ undeclared (first use in this
function)
   cds_hlist_for_each_entry_safe_2(e, tmp, head, node)
                                                 ^~~~
lttng-ust-statedump.c:643:4: error: expected ‘;’ before ‘free_dl_node’
    free_dl_node(e);
    ^~~~~~~~~~~~
At top level:
lttng-ust-statedump.c:411:6: warning: ‘trace_lib_unload’ defined but not
used [-Wunused-function]
 void trace_lib_unload(const struct bin_info_data *bin_data, void *ip)
      ^~~~~~~~~~~~~~~~
lttng-ust-statedump.c:390:6: warning: ‘trace_lib_load’ defined but not used
[-Wunused-function]
 void trace_lib_load(const struct bin_info_data *bin_data, void *ip)
      ^~~~~~~~~~~~~~
lttng-ust-statedump.c:307:6: warning: ‘trace_baddr’ defined but not used
[-Wunused-function]
 void trace_baddr(struct bin_info_data *bin_data, void *owner)
      ^~~~~~~~~~~
lttng-ust-statedump.c:196:6: warning: ‘remove_dl_node’ defined but not used
[-Wunused-function]
 void remove_dl_node(struct lttng_ust_dl_node *e)
      ^~~~~~~~~~~~~~
lttng-ust-statedump.c:131:5: warning: ‘compare_bin_data’ defined but not
used [-Wunused-function]
 int compare_bin_data(const struct bin_info_data *a,
     ^~~~~~~~~~~~~~~~
lttng-ust-statedump.c:122:6: warning: ‘free_dl_node’ defined but not used
[-Wunused-function]
 void free_dl_node(struct lttng_ust_dl_node *e)
      ^~~~~~~~~~~~
lttng-ust-statedump.c:84:27: warning: ‘alloc_dl_node’ defined but not used
[-Wunused-function]
 struct lttng_ust_dl_node *alloc_dl_node(const struct bin_info_data
*bin_data)
                           ^~~~~~~~~~~~~
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20171119/6b4ab21a/attachment.html>


More information about the lttng-dev mailing list