Description of problem: The globus-core package install the globus_config.h header file in /usr/lib64/globus/include/globus_config.h. It should be installed in the directory /usr/include/globus. Without globus_config.h in the /usr/include/globus directory, it impossible to compile against the globus libraries Version-Release number of selected component (if applicable): Version : 5.17 Release : 1.el5 How reproducible: 1. yum install globus-common-devel 2. try to compile globus_test.c: #include <globus_common.h> int main() { return 1; } 3. gcc -I/usr/include/globus globus_test.c ERROR: /usr/include/globus/globus_common_include.h:24:27: error: globus_config.h: No such file or directory Actual results: In file included from /usr/include/globus/globus_common.h:55, from globus_test.c:1: /usr/include/globus/globus_common_include.h:24:27: error: globus_config.h: No such file or directory In file included from /usr/include/globus/globus_common.h:55, from globus_test.c:1: /usr/include/globus/globus_common_include.h:214: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘inet_addr’ In file included from /usr/include/globus/globus_common.h:55, from globus_test.c:1: /usr/include/globus/globus_common_include.h:354: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_result_t’ /usr/include/globus/globus_common_include.h:355: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_off_t’ In file included from /usr/include/globus/globus_common.h:64, from globus_test.c:1: /usr/include/globus/globus_error.h:105: error: expected ‘)’ before ‘result’ /usr/include/globus/globus_error.h:111: error: expected ‘)’ before ‘result’ /usr/include/globus/globus_error.h:119: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_error_put’ In file included from /usr/include/globus/globus_common.h:64, from globus_test.c:1: /usr/include/globus/globus_error.h:175:10: error: #include expects "FILENAME" or <FILENAME> /usr/include/globus/globus_error.h:177: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_i_error_verbose_key’ In file included from globus_test.c:1: /usr/include/globus/globus_common.h:66:10: error: #include expects "FILENAME" or <FILENAME> In file included from /usr/include/globus/globus_common.h:68, from globus_test.c:1: /usr/include/globus/globus_thread_pool.h:21:10: error: #include expects "FILENAME" or <FILENAME> In file included from /usr/include/globus/globus_common.h:68, from globus_test.c:1: /usr/include/globus/globus_thread_pool.h:33: error: expected ‘)’ before ‘func’ /usr/include/globus/globus_thread_pool.h:37: error: expected ‘)’ before ‘*’ token In file included from /usr/include/globus/globus_common.h:70, from globus_test.c:1: /usr/include/globus/globus_callback.h:324: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_register_oneshot’ /usr/include/globus/globus_callback.h:374: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_register_periodic’ /usr/include/globus/globus_callback.h:425: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_unregister’ /usr/include/globus/globus_callback.h:457: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_adjust_oneshot’ /usr/include/globus/globus_callback.h:492: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_adjust_period’ /usr/include/globus/globus_callback.h:716: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_init’ /usr/include/globus/globus_callback.h:736: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_reference’ /usr/include/globus/globus_callback.h:761: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_destroy’ /usr/include/globus/globus_callback.h:780: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_attr_init’ /usr/include/globus/globus_callback.h:797: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_attr_destroy’ /usr/include/globus/globus_callback.h:816: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_attr_set_behavior’ /usr/include/globus/globus_callback.h:837: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_attr_get_behavior’ /usr/include/globus/globus_callback.h:853: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_get’ /usr/include/globus/globus_callback.h:941: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_space_register_signal_handler’ /usr/include/globus/globus_callback.h:972: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_callback_unregister_signal_handler’ In file included from /usr/include/globus/globus_common.h:71, from globus_test.c:1: /usr/include/globus/globus_logging.h:62: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_logging_init’ /usr/include/globus/globus_logging.h:71: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_logging_write’ /usr/include/globus/globus_logging.h:78: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_logging_vwrite’ /usr/include/globus/globus_logging.h:85: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_logging_flush’ /usr/include/globus/globus_logging.h:89: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_logging_destroy’ In file included from /usr/include/globus/globus_common.h:72, from globus_test.c:1: /usr/include/globus/globus_memory.h:38:10: error: #include expects "FILENAME" or <FILENAME> In file included from /usr/include/globus/globus_common.h:73, from globus_test.c:1: /usr/include/globus/globus_print.h:56: error: expected declaration specifiers or ‘...’ before ‘globus_result_t’ In file included from /usr/include/globus/globus_common.h:75, from globus_test.c:1: /usr/include/globus/globus_libc.h:28:10: error: #include expects "FILENAME" or <FILENAME> In file included from /usr/include/globus/globus_common.h:75, from globus_test.c:1: /usr/include/globus/globus_libc.h:50: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_libc_mutex’ /usr/include/globus/globus_libc.h:248: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_libc.h:258: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_libc.h:260: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_libc.h:635: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_libc_getaddrinfo’ /usr/include/globus/globus_libc.h:646: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_libc_getnameinfo’ /usr/include/globus/globus_libc.h:675: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_libc_addr_to_contact_string’ /usr/include/globus/globus_libc.h:682: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_libc_addr_convert_family’ /usr/include/globus/globus_libc.h:688: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘globus_libc_contact_string_to_ints’ In file included from /usr/include/globus/globus_common.h:77, from globus_test.c:1: /usr/include/globus/globus_range_list.h:72: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_range_list.h:73: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_range_list.h:78: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_range_list.h:79: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_range_list.h:89: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_range_list.h:90: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_range_list.h:96: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ /usr/include/globus/globus_range_list.h:97: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ In file included from /usr/include/globus/globus_common.h:79, from globus_test.c:1: /usr/include/globus/globus_args.h:231: error: expected declaration specifiers or ‘...’ before ‘globus_off_t’ In file included from /usr/include/globus/globus_common.h:82, from globus_test.c:1: /usr/include/globus/globus_thread_rw_mutex.h:22:10: error: #include expects "FILENAME" or <FILENAME> In file included from /usr/include/globus/globus_common.h:82, from globus_test.c:1: /usr/include/globus/globus_thread_rw_mutex.h:30: error: expected specifier-qualifier-list before ‘globus_mutex_t’ /usr/include/globus/globus_thread_rw_mutex.h:77: error: expected ‘)’ before ‘*’ token /usr/include/globus/globus_thread_rw_mutex.h:82: error: expected ‘)’ before ‘*’ token In file included from /usr/include/globus/globus_common.h:83, from globus_test.c:1: /usr/include/globus/globus_thread_rmutex.h:21:10: error: #include expects "FILENAME" or <FILENAME> In file included from /usr/include/globus/globus_common.h:83, from globus_test.c:1: /usr/include/globus/globus_thread_rmutex.h:29: error: expected specifier-qualifier-list before ‘globus_mutex_t’ In file included from /usr/include/globus/globus_common.h:87, from globus_test.c:1: /usr/include/globus/globus_uuid.h:36: error: expected specifier-qualifier-list before ‘uint32_t’ /usr/include/globus/globus_uuid.h:48: error: expected specifier-qualifier-list before ‘uint8_t’ In file included from /usr/include/globus/globus_common.h:88, from globus_test.c:1: /usr/include/globus/globus_options.h:35: error: expected declaration specifiers or ‘...’ before ‘*’ token /usr/include/globus/globus_options.h:40: error: ‘globus_result_t’ declared as function returning a function /usr/include/globus/globus_options.h:48: error: ‘globus_options_unknown_callback_t’ declared as function returning a function /usr/include/globus/globus_options.h:58: error: expected specifier-qualifier-list before ‘globus_options_callback_t’ /usr/include/globus/globus_options.h:67: error: ‘globus_options_init’ declared as function returning a function /usr/include/globus/globus_options.h:73: error: ‘globus_options_add_table’ declared as function returning a function /usr/include/globus/globus_options.h:77: error: ‘globus_options_destroy’ declared as function returning a function /usr/include/globus/globus_options.h:83: error: ‘globus_options_command_line_process’ declared as function returning a function /usr/include/globus/globus_options.h:87: error: ‘globus_options_env_process’ declared as function returning a function /usr/include/globus/globus_options.h:92: error: ‘globus_options_file_process’ declared as function returning a function /usr/include/globus/globus_options.h:98: error: ‘globus_options_xinetd_file_process’ declared as function returning a function In file included from /usr/include/globus/globus_common.h:89, from globus_test.c:1: /usr/include/globus/globus_states.h:18: error: ‘globus_states_transition_function_t’ declared as function returning a function /usr/include/globus/globus_states.h:29: error: ‘globus_states_init_function_t’ declared as function returning a function /usr/include/globus/globus_states.h:54: error: ‘globus_states_set_events’ declared as function returning a function /usr/include/globus/globus_states.h:59: error: ‘globus_states_init’ declared as function returning a function /usr/include/globus/globus_states.h:69: error: ‘globus_state_add_transition_real’ declared as function returning a function /usr/include/globus/globus_states.h:77: error: ‘globus_state_handle_event_now’ declared as function returning a function /usr/include/globus/globus_states.h:85: error: ‘globus_state_queue_event’ declared as function returning a function /usr/include/globus/globus_states.h:91: error: ‘globus_state_destroy’ declared as function returning a function /usr/include/globus/globus_states.h:99: error: ‘globus_state_make_graph’ declared as function returning a function In file included from globus_test.c:1: /usr/include/globus/globus_common.h:127: error: expected specifier-qualifier-list before ‘globus_mutex_t’ /usr/include/globus/globus_common.h:168: error: ‘globus_location’ declared as function returning a function /usr/include/globus/globus_common.h:175: error: ‘globus_common_get_attribute_from_config_file’ declared as function returning a function globus_test.c:3: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token Expected results: Additional info:
The globus_common.h header file is architecture dependent. It can therefore not be installed as /usr/include/globus/globus_common.h since this would lead to a file conflict if both the 32 bit and 64 bit globus-common-devel package is installed on the same machine. As is common practice in these cases, the file is installed in /usr/{lib,lib64}/globus/include/globus_config.h in order to allow both the 32 and 64 bit version to be installed at the same time. If you are using automatic generation of cflags, either using the the traditional GPT: $ globus-makefile-header --flavor=gcc64pthr globus_common | grep GLOBUS_CPPFLAGS GLOBUS_CPPFLAGS = -I/usr/include/globus -I/usr/lib64/globus/include or the more modern pkg-config: pkg-config --cflags globus-common -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/include/globus -I/usr/lib64/globus/include you will get the include paths automatically.