Я создаю собственную версию Apache HTTPD с целым рядом дополнительных модулей. В рамках этого я связываюсь с PCRE 8.44, который работает нормально. Тем не мение, lib/libpcrecpp.so.0.0.2
имеет зависимость, отображаемую для libgcc_s.so.1 через /usr/bin/env -i ldd
.
Я не хочу, чтобы gcc был установлен на производственных серверах, особенно на производственных серверах экстрасети. Кажется, я не могу найти какую-либо комбинацию флагов, которая построит PCRE, которая не связана с libgcc. Я почти уверен, что отключение поддержки C ++ сделает это, но это вряд ли оптимально, и я на самом деле не пробовал.
Есть ли способ собрать PCRE так, чтобы он не ссылался на gcc?
Текущие настройки:
LDFLAGS=-Wl,-rpath,${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib64 -L${PREFIX}/lib -L${PREFIX}/lib64
CFLAGS=-Wl,-rpath,${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib64 -I${PREFIX}/include
CPPFLAGS=${CFLAGS}
export LDFLAGS CFLAGS CPPFLAGS PREFIX
./configure \
--prefix="${PREFIX}" \
--enable-pcre16 \
--enable-pcre32 \
--enable-jit \
--enable-utf \
&& make \
&& make install
(Если у людей есть предложения по улучшению параметров конфигурации, я слушаю.)
ОБНОВЛЕНИЕ: похоже, что отключение общих библиотек для pcre работает. Требуется тестирование, чтобы убедиться, что все работает правильно, но я думаю, что у меня есть статически связанный pcre, запеченный там, где это необходимо, что приемлемо для меня. Если у кого-то есть идеи, как создавать разделяемые библиотеки без ссылаясь на gcc, я хотел бы это услышать.
ОБНОВЛЕНИЕ 2: похоже, что mod_security не хочу построить, используя встроенный pcre httpd, поэтому я снова застрял.
ХОРОШО. Решено по-настоящему. Не получается ничего в httpd
ни дополнительные услуги, которые я добавляю к нему, на самом деле не требуют libpcrecpp
так что я смог просто добавить --disable-cpp
и полностью отказаться от его создания. Если мне когда-нибудь понадобится создать что-то, что требует поддержки C ++, мне нужно будет понять это, но пока я просто не собираю эту библиотеку, и все в порядке.