Bug 643415 - globus-core install globus_config.h in wrong directory
Summary: globus-core install globus_config.h in wrong directory
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: globus-core
Version: el5
Hardware: x86_64
OS: Linux
low
urgent
Target Milestone: ---
Assignee: Mattias Ellert
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-10-15 14:52 UTC by Valery Tschopp
Modified: 2010-10-15 15:19 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-10-15 15:19:41 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Valery Tschopp 2010-10-15 14:52:05 UTC
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:

Comment 1 Mattias Ellert 2010-10-15 15:19:41 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.