URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 43258
[ Назад ]

Исходное сообщение
"Траблы с установкой jpeg-6b"

Отправлено ReAlex , 23-Апр-04 10:52 
Пытаюсь поставить библиотеку jpeg-6b (нужна для ImageMagick-а) и ничего не выходит. Как статическая собирается на ура, а вот как динамическая хрен.
Уже переставил несколько разных версий libtool. Все равно не собирается.
Делаю так:
#./configure --enable-shared
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking how to run the C preprocessor... gcc -E
checking for function prototypes... yes
checking for stddef.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for size_t... yes
checking for type unsigned char... yes
checking for type unsigned short... yes
checking for type void... yes
checking for working const... yes
checking for inline... __inline__
checking for broken incomplete types... ok
checking for short external names... ok
checking to see if char is signed... yes
checking to see if right shift is signed... yes
checking to see if fopen accepts b spec... yes
checking for a BSD compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking host system type... i386-unknown-freebsd5.1
checking for ranlib... ranlib
checking for gcc... gcc
checking whether we are using GNU C... yes
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... -static
checking whether ln -s works... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking for BSD-compatible nm... /usr/bin/nm -B
checking command to parse /usr/bin/nm -B output... yes
checking how to hardcode library paths into programs... immediate
checking for /usr/bin/ld option to reload object files... -r
checking dynamic linker characteristics... no
checking if libtool supports shared libraries... no
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for objdir... .libs
creating libtool
checking libjpeg version number... 62
creating ./config.status
creating Makefile
creating jconfig.h
jconfig.h is unchanged

Т.е. как я понимаю он не может понять поддерживаетли libtool создание динамических библиотек?

Но при установке libtool он собирается с поддержкой динамики:
...
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... freebsd5.1 ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
...


Может кто подскажет в чем тут может быть дело?


Содержание

Сообщения в этом обсуждении
"Траблы с установкой jpeg-6b"
Отправлено lavr , 23-Апр-04 11:09 
>Пытаюсь поставить библиотеку jpeg-6b (нужна для ImageMagick-а) и ничего не выходит. Как
>статическая собирается на ура, а вот как динамическая хрен.
>Уже переставил несколько разных версий libtool. Все равно не собирается.
>Делаю так:
>#./configure --enable-shared
>checking for gcc... gcc
>checking whether the C compiler (gcc  ) works... yes
>checking whether the C compiler (gcc  ) is a cross-compiler... no
>
>checking whether we are using GNU C... yes
>checking how to run the C preprocessor... gcc -E
>checking for function prototypes... yes
>checking for stddef.h... yes
>checking for stdlib.h... yes
>checking for string.h... yes
>checking for size_t... yes
>checking for type unsigned char... yes
>checking for type unsigned short... yes
>checking for type void... yes
>checking for working const... yes
>checking for inline... __inline__
>checking for broken incomplete types... ok
>checking for short external names... ok
>checking to see if char is signed... yes
>checking to see if right shift is signed... yes
>checking to see if fopen accepts b spec... yes
>checking for a BSD compatible install... /usr/bin/install -c
>checking for ranlib... ranlib
>checking host system type... i386-unknown-freebsd5.1
>checking for ranlib... ranlib
>checking for gcc... gcc
>checking whether we are using GNU C... yes
>checking for gcc option to produce PIC... -fPIC
>checking if gcc PIC flag -fPIC works... yes
>checking if gcc static flag -static works... -static
>checking whether ln -s works... yes
>checking for ld used by GCC... /usr/bin/ld
>checking if the linker (/usr/bin/ld) is GNU ld... yes
>checking whether the linker (/usr/bin/ld) supports shared libraries... yes
>checking for BSD-compatible nm... /usr/bin/nm -B
>checking command to parse /usr/bin/nm -B output... yes
>checking how to hardcode library paths into programs... immediate
>checking for /usr/bin/ld option to reload object files... -r
>checking dynamic linker characteristics... no
>checking if libtool supports shared libraries... no
>checking whether to build shared libraries... no
>checking whether to build static libraries... yes
>checking for objdir... .libs
>creating libtool
>checking libjpeg version number... 62
>creating ./config.status
>creating Makefile
>creating jconfig.h
>jconfig.h is unchanged
>
>Т.е. как я понимаю он не может понять поддерживаетли libtool создание динамических
>библиотек?
>
>Но при установке libtool он собирается с поддержкой динамики:
>...
>checking whether the linker (/usr/bin/ld) supports shared libraries... yes
>checking how to hardcode library paths into programs... immediate
>checking whether stripping libraries is possible... yes
>checking dynamic linker characteristics... freebsd5.1 ld.so
>checking if libtool supports shared libraries... yes
>checking whether to build shared libraries... yes
>checking whether to build static libraries... yes
>...
>
>
>Может кто подскажет в чем тут может быть дело?

под Windows собираешь?


"Траблы с установкой jpeg-6b"
Отправлено ReAlex , 23-Апр-04 11:13 
FreeBSD 5.1

"Траблы с установкой jpeg-6b"
Отправлено newser , 23-Апр-04 11:27 
>FreeBSD 5.1

А не проще ее тогда из портов собрать? Глядишь - проблем меньше будет. :)


"Траблы с установкой jpeg-6b"
Отправлено ReAlex , 23-Апр-04 11:33 
>>FreeBSD 5.1
>
>А не проще ее тогда из портов собрать? Глядишь - проблем меньше
>будет. :)

Из портов собирать нет технической возможности.


"Траблы с установкой jpeg-6b"
Отправлено lavr , 23-Апр-04 13:56 
>>>FreeBSD 5.1
>>
>>А не проще ее тогда из портов собрать? Глядишь - проблем меньше
>>будет. :)
>
>Из портов собирать нет технической возможности.

вот в этом твоя проблема!

Если посмотришь, то увидишь в configure и в Makefile который она создает
- используется кривой libtool который идет с jpeg-sources.

В configure (оригинале) строки:

# Configure libtool if needed.
if test $USELIBTOOL = yes; then
  disable_shared=
  disable_static=
  if test "x$LTSHARED" = xno; then
    disable_shared="--disable-shared"
  fi
  if test "x$LTSTATIC" = xno; then
    disable_static="--disable-static"
  fi
  pic_flag="-fPIC"
#--lavr comments
#  $srcdir/ltconfig $disable_shared $disable_static $srcdir/ltmain.sh
  /usr/local/share/libtool/ltconfig $disable_shared $disable_static --disable-ltlibs /usr/local/share/libtool/ltmain.sh
fi

/usr/local/share/libtool/ltconfig и ltmain - смотри свои, как ты у себя
и куда libtool установил

PS. Все это можешь сам посмотреть - патчи к оригинальному sources через
webinterface:

http://www.freebsd.org/cgi/cvsweb.cgi/ports/graphics/jpeg/files/

остальные патчи там касаются setlocale

PPS. Я бы на твоем месте взял эти патчи и натянул руками на sources, если
уж ты не можешь воспользоваться портами


"Траблы с установкой jpeg-6b"
Отправлено lavr , 23-Апр-04 11:34 
>FreeBSD 5.1

# ldconfig -r | grep jpeg
# ls -la /var/db/pkg | grep jpeg
# ls -la /var/db/pkg | grep libtool

вообще-то нужно лог от конфигуре при сборке jpeg


"Траблы с установкой jpeg-6b"
Отправлено ReAlex , 23-Апр-04 11:50 
>>FreeBSD 5.1
>
># ldconfig -r | grep jpeg

пусто

># ls -la /var/db/pkg | grep jpeg

пусто

># ls -la /var/db/pkg | grep libtool

пусто

>вообще-то нужно лог от конфигуре при сборке jpeg


This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:538: checking for gcc
configure:615: checking whether the C compiler (gcc  ) works
configure:629: gcc -o conftest    conftest.c  1>&5
configure:649: checking whether the C compiler (gcc  ) is a cross-compiler
configure:654: checking whether we are using GNU C
configure:663: gcc -E conftest.c
configure:681: checking how to run the C preprocessor
configure:702: gcc -E  conftest.c >/dev/null 2>conftest.out
configure:742: checking for function prototypes
configure:765: gcc -c -O2  conftest.c 1>&5
configure:792: checking for stddef.h
configure:802: gcc -E  conftest.c >/dev/null 2>conftest.out
configure:828: checking for stdlib.h
configure:838: gcc -E  conftest.c >/dev/null 2>conftest.out
configure:864: checking for string.h
configure:874: gcc -E  conftest.c >/dev/null 2>conftest.out
configure:900: checking for size_t
configure:923: gcc -c -O2  conftest.c 1>&5
configure:994: checking for type unsigned char
configure:1003: gcc -c -O2  conftest.c 1>&5
configure:1018: checking for type unsigned short
configure:1027: gcc -c -O2  conftest.c 1>&5
configure:1042: checking for type void
configure:1072: gcc -c -O2  conftest.c 1>&5
configure:1088: checking for working const
configure:1142: gcc -c -O2  conftest.c 1>&5
configure:1163: checking for inline
configure:1174: gcc -c -O2  conftest.c 1>&5
configure:1224: checking for broken incomplete types
configure:1233: gcc -c -O2  conftest.c 1>&5
configure:1248: checking for short external names
configure:1260: gcc -o conftest -O2   conftest.c  1>&5
configure:1275: checking to see if char is signed
configure:1306: gcc -o conftest -O2   conftest.c  1>&5
configure: failed program was:
#line 1282 "configure"
#include "confdefs.h"

#ifdef HAVE_PROTOTYPES
int is_char_signed (int arg)
#else
int is_char_signed (arg)
     int arg;
#endif
{
  if (arg == 189) {             /* expected result for unsigned char */
    return 0;                   /* type char is unsigned */
  }
  else if (arg != -67) {        /* expected result for signed char */
    printf("Hmm, it seems 'char' is not eight bits wide on your machine.\n");
    printf("I fear the JPEG software will not work at all.\n\n");
  }
  return 1;                     /* assume char is signed otherwise */
}
char signed_char_check = (char) (-67);
main() {
  exit(is_char_signed((int) signed_char_check));
}
configure:1323: checking to see if right shift is signed
configure:1358: gcc -o conftest -O2   conftest.c  1>&5
configure: failed program was:
#line 1328 "configure"
#include "confdefs.h"
#ifdef HAVE_PROTOTYPES
int is_shifting_signed (long arg)
#else
int is_shifting_signed (arg)
     long arg;
#endif
/* See whether right-shift on a long is signed or not. */
{
  long res = arg >> 4;

  if (res == -0x7F7E80CL) {     /* expected result for signed shift */
    return 1;                   /* right shift is signed */
  }
  /* see if unsigned-shift hack will fix it. */
  /* we can't just test exact value since it depends on width of long... */
  res |= (~0L) << (32-4);
  if (res == -0x7F7E80CL) {     /* expected result now? */
    return 0;                   /* right shift is unsigned */
  }
  printf("Right shift isn't acting as I expect it to.\n");
  printf("I fear the JPEG software will not work at all.\n\n");
  return 0;                     /* try it with unsigned anyway */
}
main() {
  exit(is_shifting_signed(-0x7F7E80B1L));
}
configure:1375: checking to see if fopen accepts b spec
configure:1390: gcc -o conftest -O2   conftest.c  1>&5
configure:1436: checking for a BSD compatible install
configure:1488: checking for ranlib
configure:1650: checking libjpeg version number
C
ltconfig:432: gcc -E conftest.c
ltconfig:547: checking if gcc PIC flag -fPIC works
ltconfig:548: gcc -c  -fPIC -DPIC  conftest.c 1>&5
ltconfig:591: checking if gcc static flag -static works
ltconfig:592: gcc -o conftest    -static conftest.c  1>&5
ltconfig:624: checking for ld used by GCC
GNU ld version 2.13.2 [FreeBSD] 2002-11-27
ltconfig:971: checking if global_symbol_pipe works
ltconfig:972: gcc -c   conftest.c 1>&5
ltconfig:975: eval "/usr/bin/nm -B conftest.o | sed -n -e 's/^.* [ABCDGISTUW] \(
[_A-Za-z][_A-Za-z0-9]*\)$/\1 \1/p' > conftest.nm"
ltconfig:1033: gcc -o conftest  -fno-builtin   conftest.c conftestm.o 1>&5


"Траблы с установкой jpeg-6b"
Отправлено ReAlex , 23-Апр-04 14:02 
Огромное спасибо.