[developers] Compiling FFTB on Ubuntu 19.10

Alexandre Rademaker arademaker at gmail.com
Mon Mar 30 21:46:27 CEST 2020


Hi Woodley,

I had to reinstall my machine and now I am trying to recompile all the tools. I gave up for compiling them for MacOS. That would be great for me, but in the MacOS I haven’t passed from the first step below. So I am compiling everything in a docker running Ubuntu 19.10.

My goal is to have FFTB running again, I can't use the acetools binaries you provided because it seems that http://sweaglesw.org/svn/treebank/trunk/web.c still don’t have the changed you made during a conversation in Cambridge:

Line 1290:

  addr.sin_addr.s_addr = 0; // inet_addr("127.0.0.1”);

Without that change, running FFTB inside the docker is not easy. We need a proxy server for redirecting the ports (as documented in http://moin.delph-in.net/FftbTop#FFTB_on_remote_machine), but with that change, we don’t need to proxy and can use the docker native way to redirect internal to external ports.

I have tried to follow the steps that worked for me last time:

1. install liba
2. install repp-0.2.2
3. install libace
4. Install libtsdb

I have success for 1-3, but in step 4 I got an error. The error was caused by

/usr/bin/ld: cannot find -ltsdb

This is a little bit strange because it seems that during the compilation of libtsdb it is looking for this same library… am I right?

The complete trace is below. I didn’t see this error before. Can you help me? I am blocked by this error...


$ make
cc -fPIC -shared -g -O2   -c -o tsdb.o tsdb.c
tsdb.c: In function ‘tsdb_free_profile’:
tsdb.c:47:5: warning: implicit declaration of function ‘hash_free_nokeys’ [-Wimplicit-function-declaration]
   47 |     hash_free_nokeys(r->fields[j].hash);
      |     ^~~~~~~~~~~~~~~~
tsdb.c: In function ‘tsdb_write_relation’:
tsdb.c:258:2: warning: implicit declaration of function ‘unlink’ [-Wimplicit-function-declaration]
  258 |  unlink(fname_bk);
      |  ^~~~~~
cc -fPIC -shared -g -O2   -c -o relations.o relations.c
gcc -fPIC -shared -g -O2 -fvisibility=hidden -c hash.c -o hash.o
gcc -fPIC -shared -g -O2 tsdb.o relations.o hash.o -shared -o libtsdb.so
rm -f libtsdb.a
ar cru libtsdb.a tsdb.o relations.o
ar: `u' modifier ignored since `D' is the default (see `U')
gcc -g -O2 -L. test.c -ltsdb -o test -Wl,-rpath -Wl,`pwd` -lace -ldl -la
test.c:74:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
   74 | print_tree_with_edge_id(struct tree *t, int indent, int *edgemap)
      | ^~~~~~~~~~~~~~~~~~~~~~~
test.c:122:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
  122 | record_eq_edges(int x_eid, int y_eid)
      | ^~~~~~~~~~~~~~~
test.c: In function ‘report_missing_edges’:
test.c:165:3: warning: implicit declaration of function ‘print_tree’; did you mean ‘print_mrs’? [-Wimplicit-function-declaration]
  165 |   print_tree(t, 2);
      |   ^~~~~~~~~~
      |   print_mrs
test.c: At top level:
test.c:174:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
  174 | fidget(struct tree *t)
      | ^~~~~~
test.c:190:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
  190 | compare_tree_lists(char *iid, struct result *rx, int nx, struct result *ry, int ny, int detail, char *errx, char *erry)
      | ^~~~~~~~~~~~~~~~~~
test.c: In function ‘compare_tree_lists’:
test.c:277:2: warning: implicit declaration of function ‘hash_free’; did you mean ‘hash_find’? [-Wimplicit-function-declaration]
  277 |  hash_free(hx);
      |  ^~~~~~~~~
      |  hash_find
test.c: In function ‘tree_to_mrs’:
test.c:381:2: warning: implicit declaration of function ‘clear_mrs’; did you mean ‘read_mrs’? [-Wimplicit-function-declaration]
  381 |  clear_mrs();
      |  ^~~~~~~~~
      |  read_mrs
test.c: At top level:
test.c:421:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
  421 | compare_surface_lists(char *iid, char *i_input, struct result *rx, int nx, struct result *ry, int ny, struct tree *gold_tree, struct mrs *gold_mrs, int detail)
      | ^~~~~~~~~~~~~~~~~~~~~
test.c:507:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
  507 | usage(char *prog)
      | ^~~~~
test.c:585:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
  585 | main(int argc, char *argv[])
      | ^~~~
test.c: In function ‘main’:
test.c:599:2: warning: implicit declaration of function ‘ace_load_grammar’ [-Wimplicit-function-declaration]
  599 |  ace_load_grammar("/home/sweaglesw/cdev/ace-regression/comparison.dat");
      |  ^~~~~~~~~~~~~~~~
gcc -g -O2 art.c -lace -ltsdb -lrepp -la -o art -lutil
art.c:65:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
   65 | usage(char *myname, int status)
      | ^~~~~
art.c:87:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
   87 | main(int argc, char *argv[])
      | ^~~~
art.c: In function ‘main’:
art.c:156:13: warning: implicit declaration of function ‘forkpty’; did you mean ‘fork’? [-Wimplicit-function-declaration]
  156 |   pid_t p = forkpty(&arbiter_fd, NULL, NULL, NULL);
      |             ^~~~~~~
      |             fork
art.c:301:16: warning: implicit declaration of function ‘read_result’; did you mean ‘record_result’? [-Wimplicit-function-declaration]
  301 |   int status = read_result(parse_id, run_id, i_id, i_input);
      |                ^~~~~~~~~~~
      |                record_result
art.c: At top level:
art.c:560:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
  560 | write_tuple(FILE *f, char **tuple, struct relation *r)
      | ^~~~~~~~~~~
/usr/bin/ld: cannot find -ltsdb
collect2: error: ld returned 1 exit status
make: *** [Makefile:51: art] Error 1


Best,
Alexandre





More information about the developers mailing list