[devel] Re: middleman vs pcre

Andrey Rahmatullin =?iso-8859-1?q?wrar_=CE=C1_altlinux=2Eru?=
Ср Ноя 12 17:22:18 MSK 2003


В сообщении от 12 Ноябрь 2003 14:24 Sergey Vlasov написал(a):

[...]
> Ну здесь-то явно используется regcomp из glibc.  Т.е. где-то
> перепутались заголовки и библиотеки.

Удалось выяснить, что всё именно так. Но я ничего не понимаю. 

wrar на wrars-comp RPM/BUILD/middleman $ grep PCRE config.h
#define HAVE_PCRE 1

Здесь правильно. Далее:

wrar на wrars-comp RPM/BUILD/middleman $ head -n13 include/proto.h | tail -n9
#include "../config.h"

#ifdef HAVE_PCRE
#include <pcre/pcre.h>
#include <pcre/pcreposix.h>
#else
#include "../pcre/pcre.h"
#include "../pcre/pcreposix.h"
#endif /* HAVE_PCRE */


Получается, препроцессор должен развернуть это в 
#include <pcre/pcre.h>
#include <pcre/pcreposix.h>
Так?


А вот нифига. Всё чуть посложнее ;-) Дело в том, что config.h инклюдится еще и 
через -I. в Makefile. И получается вот что:

$ cpp -Iinclude -I. src/regexp.c > regexp_with_config_h.i
- так при компиляции

$ cpp -Iinclude src/regexp.c > regexp_without_config_h.i
- так хотелось бы

$ diff regexp_with_config_h.i regexp_without_config_h.i | head -n6
180,181c180,181
< # 1 "pcre/pcre.h" 1
< # 32 "pcre/pcre.h"
---
> # 1 "/usr/include/pcre/pcre.h" 1 3
> # 37 "/usr/include/pcre/pcre.h" 3

Я, конечно, С знаю совсем недостаточно, но... Если одна и та же #define 
встречается 2 раза, она #undef-ается? 


Т.о., убивать одно из упоминаний config.h и всё будет ОК?
[...]

-- 
Не надо советовать создавать в / что-либо.
		-- ldv in sisyphus@
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20031112/118b825a/attachment-0001.bin>


Подробная информация о списке рассылки Devel