Стоит задача скомпилить библиотеку-заглушку, она должна вызовы определенных символов транслирова в вызовы других символов. Пользоваться ею будут 32 битные приложения
Вот код(не мой):
#include <stdlib.h>
#include <ctype.h>
unsigned short int * __ctype_b;
unsigned short int * __ctype_tolower;
unsigned short int * __ctype_toupper;
void __attribute__((constructor)) my_init()
{
__ctype_b = * __ctype_b_loc();
__ctype_tolower = * __ctype_tolower_loc();
__ctype_toupper = * __ctype_toupper_loc();
}
void __attribute__((destructor)) my_clean() {}
Компилирую на 64 битной системе со следующими параметрами
Код
gcc -m32 -O2 -shared -fpic -xc libctype.c -o /usr/lib/libctype.so
вывод gcc -v:
Reading specs from /usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++ --disable-libgcj --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-47.3)
После помещения в /lib, прописывания прав и вызова ldconfig, все равно при поиске символов "__ctype_b" ld не подключает эту библиотеку =(
мало того, попытка насильно её загрузить через LD_PRELOAD вываливает следующее
===============
ERROR: ld.so: object '/lib/libctype.so.1' from LD_PRELOAD cannot be preloaded: ignored.
===================
Господа программисты, очень прошу подсказать выход из ситуации.
PS. При компиляции библиотечки вываливаются следующие варнинги:
Код
libctype.c: In function `my_init':
libctype.c:9: warning: assignment discards qualifiers from pointer target type
libctype.c:10: warning: assignment from incompatible pointer type
libctype.c:11: warning: assignment from incompatible pointer type
Ответ на:
комментарий
от Chumka
Ответ на:
комментарий
от redbaron
Ответ на:
комментарий
от redbaron
Ответ на:
комментарий
от Begemoth
Ответ на:
комментарий
от redbaron
Ответ на:
комментарий
от Chumka
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Ошибки компиляции PCmanFM (2011)
- Форум hunspell в gentoo не признает русский язык (2017)
- Форум Как установить Curses модуль в Perl 5.8.0 (2003)
- Форум Не собрать pam_ldap (2004)
- Форум Asterisk10 - Проблема с установкой Аддонов (2013)
- Форум зависает gcc ! :))) (2005)
- Форум Статичная сборка dsniff (2014)
- Форум Собрать WineASIO на kubuntu x64 (2012)
- Форум Помогите начинающему в C (2003)
- Форум Перенаправить stderr и stdout в подпрограммы (2019)