Re: Проблема компиляции на Solaris 10 SPARC

From
Oleg Yakovlev (2:5020/400)
To
Maxim Zakharov
Date
2006-04-14T20:48:38Z
Area
RU.UNIX.SOLARIS
From: Oleg Yakovlev <yashka@optima.net.ua>

ну а в siginfo.h заглянуть слабо  ;)  Интела 32 битные Little Endian, 
SPARC - 64 Big Endian и выравнивание в структурах разное. Естественно 
инклуды разные. И уж тем более когда ты определяешь MT, 
-D_POSIX_PTHREAD_SEMANTICS и прочее. У тебя конфликт siginfo_t которые 
определяются дважды для 32 бит и, очевидно для POSIX.

Ищи зависимости по препроцессорным define, бери куски компиль с -Е и 
анализируй кто дефайнит _SYSCALL32 и т.д.

Maxim Zakharov пишет:

> Привет,
> 
> Есть проект, разрабатываемый под FreeBSD, и который успешно собирается и
> работает под Solris 10 x86 (используя gcc), однако когда пробуют собирать тот
> же проект на Solaris 10 SPARC (тоже используя gcc 3.3.2), то получают ошибку:
> 
> bash-3.00# make
> Making all in include
> make[1]: Entering directory `/testEGAT/dpsearch/dpsearch-4.39-23032006/include'
> cd .. 
>   && CONFIG_FILES= CONFIG_HEADERS=include/dps_config.h \
>      /bin/bash ./config.status
> config.status: creating include/dps_config.h
> config.status: include/dps_config.h is unchanged
> config.status: executing default-1 commands
> make  all-am
> make[2]: Entering directory `/testEGAT/dpsearch/dpsearch-4.39-23032006/include'
> make[2]: Leaving directory `/testEGAT/dpsearch/dpsearch-4.39-23032006/include'
> make[1]: Leaving directory `/testEGAT/dpsearch/dpsearch-4.39-23032006/include'
> Making all in src
> make[1]: Entering directory `/testEGAT/dpsearch/dpsearch-4.39-23032006/src'
> Making all in .
> make[2]: Entering directory `/testEGAT/dpsearch/dpsearch-4.39-23032006/src'
> source='indexer.c' object='libdpsearch_la-indexer.lo' libtool=yes \
> depfile='.deps/libdpsearch_la-indexer.Plo' tmpdepfile='.deps/libdpsearch_la-inde
> xer.TPlo' \
> depmode=gcc3 /bin/bash ../depcomp \
> /bin/bash ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../include -I.
> /../include    -DHAVE_PTHREAD -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -g -O2 -DD
> PS_CONF_DIR=\"/usr/local/dpsearch/etc\" -DDPS_VAR_DIR=\"/usr/local/dpsearch/var\
> " -DDPS_SHARE_DIR=\"/usr/local/dpsearch/share\" -c -o libdpsearch_la-indexer.lo
> `test -f indexer.c || echo './'`indexer.c
> mkdir .libs
> gcc -DHAVE_CONFIG_H -I. -I. -I../include -I./../include -DHAVE_PTHREAD -D_REENTR
> ANT -D_POSIX_PTHREAD_SEMANTICS -g -O2 -DDPS_CONF_DIR=\"/usr/local/dpsearch/etc\"
>  -DDPS_VAR_DIR=\"/usr/local/dpsearch/var\" -DDPS_SHARE_DIR=\"/usr/local/dpsearch
> /share\" -c indexer.c -MT libdpsearch_la-indexer.lo -MD -MP -MF .deps/libdpsearc
> h_la-indexer.TPlo  -fPIC -DPIC -o .libs/libdpsearch_la-indexer.lo
> In file included from /usr/include/sys/signal.h:34,
>                  from /usr/include/signal.h:26,
>                  from indexer.c:68:
> /usr/include/sys/siginfo.h:259: error: parse error before "ctid_t"
> /usr/include/sys/siginfo.h:292: error: parse error before '}' token
> /usr/include/sys/siginfo.h:294: error: parse error before '}' token
> /usr/include/sys/siginfo.h:390: error: parse error before "ctid_t"
> /usr/include/sys/siginfo.h:392: error: conflicting types for `__proc'
> /usr/include/sys/siginfo.h:261: error: previous declaration of `__proc'
> /usr/include/sys/siginfo.h:398: error: conflicting types for `__fault'
> /usr/include/sys/siginfo.h:267: error: previous declaration of `__fault'
> /usr/include/sys/siginfo.h:404: error: conflicting types for `__file'
> /usr/include/sys/siginfo.h:273: error: previous declaration of `__file'
> /usr/include/sys/siginfo.h:420: error: conflicting types for `__prof'
> /usr/include/sys/siginfo.h:287: error: previous declaration of `__prof'
> /usr/include/sys/siginfo.h:424: error: conflicting types for `__rctl'
> /usr/include/sys/siginfo.h:291: error: previous declaration of `__rctl'
> /usr/include/sys/siginfo.h:426: error: parse error before '}' token
> /usr/include/sys/siginfo.h:428: error: parse error before '}' token
> /usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"
> /usr/include/sys/siginfo.h:437: error: parse error before '}' token
> In file included from /usr/include/signal.h:26,
>                  from indexer.c:68:
> /usr/include/sys/signal.h:85: error: parse error before "siginfo_t"
> In file included from indexer.c:68:
> /usr/include/signal.h:111: error: parse error before "siginfo_t"
> /usr/include/signal.h:113: error: parse error before "siginfo_t"
> make[2]: *** [libdpsearch_la-indexer.lo] Error 1
> make[2]: Leaving directory `/testEGAT/dpsearch/dpsearch-4.39-23032006/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/testEGAT/dpsearch/dpsearch-4.39-23032006/src'
> make: *** [all-recursive] Error 1
> 
> ====
> 
> В какую сторону копать ? Может для SPARC нужны особые флаги компиляции ?
> 
> 
> 

-- 
Oleg N. Yakovlev, Dnepropetrovsk, Ukraine
http://www.mitsubishi-club.dp.ua
http://www.yashka.dp.ua
--- ifmail v.2.15dev5.3
 * Origin: OPTIMA TELECOM (2:5020/400)
SEEN-BY: 46/50 50/203 450/159 186 1024 451/30 461/640 469/999 4625/8 4627/10
SEEN-BY: 5000/76 5000 5001/5001 5006/1 5007/1 5010/70 5011/13 5012/46 5015/28
SEEN-BY: 5020/175 194 400 545 715 758 830 902 937 1042 1523 1604 1922 2020
SEEN-BY: 5020/2238 4441 5021/29 5022/128 5025/3 750 5026/45 5030/49 115 436
SEEN-BY: 5030/556 966 1900 1957 5031/47 5035/3 38 5036/1 5040/47 5045/7
SEEN-BY: 5051/15 5053/16 5054/1 4 8 9 28 35 37 5057/1 5060/88 5061/15 120
SEEN-BY: 5062/1 10 5064/7 5066/18 5067/2 5070/1222 5074/9 5075/5 5080/80 1003
SEEN-BY: 5082/6 5083/21 5085/13 5090/113 5093/57 5095/20 5096/18 6000/0 1
SEEN-BY: 6001/3
PATH: 5020/400 4441 545 5054/1 37