Назад | Перейти на главную страницу

Как собрать PCRE 8.44 без ссылки на gcc

Я создаю собственную версию 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 ++, мне нужно будет понять это, но пока я просто не собираю эту библиотеку, и все в порядке.