Bacula-users

[Bacula-users] Mac OSX/bacula-fd: baffling compile/linking problem

2009-02-03 17:32:12
Subject: [Bacula-users] Mac OSX/bacula-fd: baffling compile/linking problem
From: Sean M Clark <smclark AT tamu DOT edu>
To: bacula-users AT lists.sourceforge DOT net
Date: Tue, 03 Feb 2009 16:29:04 -0600
I've tried 2.4.3 and 2.4.4 by hand, and 2.4.4 via macports, and they all
do the same thing.  This is on Mac OSX 10.5.6 "Leopard" (uname -r = 9.6.0).

I've tried both the full build and --enable-client-only.

The seem to build okay, up until they hit filed.  The individual modules
get compiled, and then this happens at link-time (if I force it with a
"make -k", stored has a similar problem):
--------
Linking bacula-fd ...
/usr/bin/g++-4.0   -L../lib -L../findlib -o bacula-fd filed.o
authenticate.o acl.o backup.o estimate.o filed_conf.o heartbeat.o job.o
pythonfd.o restore.o status.o verify.o verify_vol.o \
           -lz             -lfind -lbac -lm  -lpthread  \
            -L/opt/local/lib -lintl -liconv -lc  -Wl,-framework
-Wl,CoreFoundation -L/opt/local/lib -lssl -lcrypto
Undefined symbols:
  "q_msg(char const*, int, JCR*, int, long, char const*, ...)",
referenced from:
      bclose_chksize(JCR*, BFILE*, long long)in restore.o
      verify_signature(JCR*, r_ctx&)    in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
  "store_pint32(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
  "Qmsg(JCR*, int, long, char const*, ...)", referenced from:
      decompress_data(JCR*, char**, unsigned int*)in restore.o
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
  "store_bool(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _dir_items in filed_conf.o
      _dir_items in filed_conf.o
      _dir_items in filed_conf.o
      _dir_items in filed_conf.o
  "store_dir(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _dir_items in filed_conf.o
      _dir_items in filed_conf.o
      _dir_items in filed_conf.o
      _dir_items in filed_conf.o
      _dir_items in filed_conf.o
  "Jmsg(JCR*, int, long, char const*, ...)", referenced from:
      authenticate_storagedaemon(JCR*)     in authenticate.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      blast_data_to_storage_daemon(JCR*, char*)in backup.o
      estimate_cmd(JCR*)     in job.o
      fileset_cmd(JCR*)     in job.o
      fileset_cmd(JCR*)     in job.o
      fileset_cmd(JCR*)     in job.o
      fileset_cmd(JCR*)     in job.o
      job_cmd(JCR*)    in job.o
      level_cmd(JCR*)    in job.o
      session_cmd(JCR*)     in job.o
      storage_cmd(JCR*)     in job.o
      storage_cmd(JCR*)     in job.o
      storage_cmd(JCR*)     in job.o
      backup_cmd(JCR*)     in job.o
      backup_cmd(JCR*)     in job.o
      backup_cmd(JCR*)     in job.o
      open_sd_read_session(JCR*)     in job.o
      open_sd_read_session(JCR*)     in job.o
      open_sd_read_session(JCR*)     in job.o
      restore_cmd(JCR*)     in job.o
      restore_cmd(JCR*)     in job.o
      bootstrap_cmd(JCR*)     in job.o
      verify_signature(JCR*, r_ctx&)    in restore.o
      extract_data(JCR*, BFILE*, char*, int, unsigned long long*, int,
restore_cipher_ctx*)in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      read_digest(BFILE*, Digest*, JCR*)   in verify.o
      digest_file(JCR*, FF_PKT*, Digest*)   in verify.o
      digest_file(JCR*, FF_PKT*, Digest*)   in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      do_verify_volume(JCR*)     in verify_vol.o
      do_verify_volume(JCR*)     in verify_vol.o
      do_verify_volume(JCR*)     in verify_vol.o
      do_verify_volume(JCR*)     in verify_vol.o
      has_file_changed(JCR*, FF_PKT*)    in libfind.a(find_one.o)
      has_file_changed(JCR*, FF_PKT*)    in libfind.a(find_one.o)
      has_file_changed(JCR*, FF_PKT*)    in libfind.a(find_one.o)
      find_one_file(JCR*, FF_PKT*, int (*)(FF_PKT*, void*, bool), void*,
char*, int, bool)in libfind.a(find_one.o)
      find_one_file(JCR*, FF_PKT*, int (*)(FF_PKT*, void*, bool), void*,
char*, int, bool)in libfind.a(find_one.o)
      make_dir(JCR*, char const*, char const*, unsigned short, int*)in
libfind.a(makepath.o)
      make_dir(JCR*, char const*, char const*, unsigned short, int*)in
libfind.a(makepath.o)
      make_path(JCR*, char const*, int, int, unsigned int, unsigned int,
int, char*)in libfind.a(makepath.o)
      make_path(JCR*, char const*, int, int, unsigned int, unsigned int,
int, char*)in libfind.a(makepath.o)
      make_path(JCR*, char const*, int, int, unsigned int, unsigned int,
int, char*)in libfind.a(makepath.o)
      make_path(JCR*, char const*, int, int, unsigned int, unsigned int,
int, char*)in libfind.a(makepath.o)
      make_path(JCR*, char const*, int, int, unsigned int, unsigned int,
int, char*)in libfind.a(makepath.o)
      make_path(JCR*, char const*, int, int, unsigned int, unsigned int,
int, char*)in libfind.a(makepath.o)
      make_path(JCR*, char const*, int, int, unsigned int, unsigned int,
int, char*)in libfind.a(makepath.o)
      make_path(JCR*, char const*, int, int, unsigned int, unsigned int,
int, char*)in libfind.a(makepath.o)
  "generate_daemon_event(JCR*, char const*)", referenced from:
      terminate_filed(int)  in filed.o
      handle_client_request(void*) in job.o
      backup_cmd(JCR*)     in job.o
      restore_cmd(JCR*)     in job.o
      verify_cmd(JCR*)     in job.o
  "store_password(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _dir_items in filed_conf.o
  "store_res(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _cli_items in filed_conf.o
  "GetResWithName(int, char const*)", referenced from:
      save_resource(int, RES_ITEM*, int)in filed_conf.o
      save_resource(int, RES_ITEM*, int)in filed_conf.o
  "GetNextRes(int, RES*)", referenced from:
      _main in filed.o
      _main in filed.o
      _main in filed.o
      _main in filed.o
      _main in filed.o
      _main in filed.o
      authenticate_director(JCR*)     in authenticate.o
      blast_data_to_storage_daemon(JCR*, char*)in backup.o
      do_restore(JCR*)     in restore.o
      do_verify_volume(JCR*)     in verify_vol.o
  "RUNSCRIPT::set_command(char const*)", referenced from:
      runbefore_cmd(JCR*)     in job.o
      runafter_cmd(JCR*)     in job.o
      runscript_cmd(JCR*)     in job.o
  "_p(_opaque_pthread_mutex_t*)", referenced from:
      authenticate_director(JCR*)     in authenticate.o
      authenticate_storagedaemon(JCR*)     in authenticate.o
      save_file(FF_PKT*, void*, bool)in backup.o
      bootstrap_cmd(JCR*)     in job.o
      do_restore(JCR*)     in restore.o
      output_status(void (*)(char const*, int, void*), void*)in status.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      do_verify_volume(JCR*)     in verify_vol.o
  "b_UnlockRes(char const*, int)", referenced from:
      _main in filed.o
      _main in filed.o
      blast_data_to_storage_daemon(JCR*, char*)in backup.o
      do_restore(JCR*)     in restore.o
      do_verify_volume(JCR*)     in verify_vol.o
  "bmicrosleep(long, long)", referenced from:
      terminate_filed(int)  in filed.o
      authenticate_director(JCR*)     in authenticate.o
      authenticate_storagedaemon(JCR*)     in authenticate.o
      _dir_heartbeat_thread in heartbeat.o
      stop_heartbeat_monitor(JCR*)     in heartbeat.o
      stop_heartbeat_monitor(JCR*)     in heartbeat.o
      stop_heartbeat_monitor(JCR*)     in heartbeat.o
  "_v(_opaque_pthread_mutex_t*)", referenced from:
      authenticate_director(JCR*)     in authenticate.o
      authenticate_storagedaemon(JCR*)     in authenticate.o
      save_file(FF_PKT*, void*, bool)in backup.o
      bootstrap_cmd(JCR*)     in job.o
      do_restore(JCR*)     in restore.o
      output_status(void (*)(char const*, int, void*), void*)in status.o
      verify_file(FF_PKT*, void*, bool)in verify.o
      do_verify_volume(JCR*)     in verify_vol.o
  "store_time(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
  "_enh_fnmatch", referenced from:
      _enh_fnmatch$non_lazy_ptr in libfind.a(find.o)
  "init_python_interpreter(char const*, char const*, char const*)",
referenced from:
      _main in filed.o
  "start_thread_timer(_opaque_pthread_t*, unsigned int)", referenced from:
      save_file(FF_PKT*, void*, bool)in backup.o
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
  "parse_config(char const*, void (*)(char const*, int, s_lex_context*,
char const*, ...), int)", referenced from:
      _main in filed.o
  "b_LockRes(char const*, int)", referenced from:
      _main in filed.o
      _main in filed.o
      blast_data_to_storage_daemon(JCR*, char*)in backup.o
      do_restore(JCR*)     in restore.o
      do_verify_volume(JCR*)     in verify_vol.o
  "store_str(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _cli_items in filed_conf.o
      _dir_items in filed_conf.o
      _dir_items in filed_conf.o
  "store_alist_str(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _cli_items in filed_conf.o
      _cli_items in filed_conf.o
      _dir_items in filed_conf.o
  "_msgs_items", referenced from:
      _resources in filed_conf.o
  "j_msg(char const*, int, JCR*, int, long, char const*, ...)",
referenced from:
      bacl_get(JCR*, int)in acl.o
      bacl_set(JCR*, int)in acl.o
      bacl_set(JCR*, int)in acl.o
      bacl_set(JCR*, int)in acl.o
      bacl_set(JCR*, int)in acl.o
      read_and_send_acl(JCR*, int, int)in backup.o
      read_and_send_acl(JCR*, int, int)in backup.o
      read_and_send_acl(JCR*, int, int)in backup.o
      read_and_send_acl(JCR*, int, int)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      send_data(JCR*, int, FF_PKT*, Digest*, Digest*)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      save_file(FF_PKT*, void*, bool)in backup.o
      level_cmd(JCR*)    in job.o
      level_cmd(JCR*)    in job.o
      response(JCR*, BSOCK*, char*, char const*)in job.o
      response(JCR*, BSOCK*, char*, char const*)in job.o
      runbefore_cmd(JCR*)     in job.o
      runafter_cmd(JCR*)     in job.o
      runscript_cmd(JCR*)     in job.o
      verify_signature(JCR*, r_ctx&)    in restore.o
      verify_signature(JCR*, r_ctx&)    in restore.o
      verify_signature(JCR*, r_ctx&)    in restore.o
      sparse_data(JCR*, BFILE*, unsigned long long*, char**, unsigned
int*)in restore.o
      store_data(JCR*, BFILE*, char*, int, bool)in restore.o
      store_data(JCR*, BFILE*, char*, int, bool)in restore.o
      flush_cipher(JCR*, BFILE*, unsigned long long*, int,
restore_cipher_ctx*)in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      do_restore(JCR*)     in restore.o
      qstatus_cmd(JCR*)     in status.o
      qstatus_cmd(JCR*)     in status.o
      do_verify(JCR*)    in verify.o
      do_verify_volume(JCR*)     in verify_vol.o
      do_verify_volume(JCR*)     in verify_vol.o
      do_verify_volume(JCR*)     in verify_vol.o
      set_attributes(JCR*, ATTR*, BFILE*)   in libfind.a(attribs.o)
      set_attributes(JCR*, ATTR*, BFILE*)   in libfind.a(attribs.o)
      set_attributes(JCR*, ATTR*, BFILE*)   in libfind.a(attribs.o)
      set_attributes(JCR*, ATTR*, BFILE*)   in libfind.a(attribs.o)
      set_attributes(JCR*, ATTR*, BFILE*)   in libfind.a(attribs.o)
      set_attributes(JCR*, ATTR*, BFILE*)   in libfind.a(attribs.o)
      create_file(JCR*, ATTR*, BFILE*, int)in libfind.a(create_file.o)
  "free_config_resources()", referenced from:
      terminate_filed(int)  in filed.o
  "store_name(s_lex_context*, RES_ITEM*, int, int)", referenced from:
      _cli_items in filed_conf.o
      _dir_items in filed_conf.o
  "res_to_str(int)", referenced from:
      dump_resource(int, RES*, void (*)(void*, char const*, ...),
void*)in filed_conf.o
      save_resource(int, RES_ITEM*, int)in filed_conf.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [bacula-fd] Error 1
-------------------------------------------------------------------------

I'm completely baffled at this point.  I am able to build other packages
from source (e.g. mysql) - so far Bacula is the only package having the
problem.  Any suggestions would be appreciated...


------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users

<Prev in Thread] Current Thread [Next in Thread>