Есть Makefile.am такого содержания: Код (Text): # set the include path for X, qt and KDE INCLUDES = $(all_includes) # these are the headers for your project noinst_HEADERS = webkernel_so.h # let automoc handle all of the meta source files (moc) METASOURCES = AUTO messages: rc.cpp $(EXTRACTRC) `find . -name \*.ui -o -name \*.rc` > rc.cpp $(XGETTEXT) *.cpp -o $(podir)/webkernel_so.pot KDE_ICON = AUTO ######################################################################### # APPLICATION SECTION ######################################################################### # this is the program that gets installed. it's name is used for all # of the other Makefile.am variables bin_PROGRAMS = libwebkernel_so.so # the application source, library search path, and link libraries libwebkernel_so_so_SOURCES = main.cpp webkernel_so.cpp libwebkernel_so_so_LDFLAGS = -shared $(KDE_RPATH) $(all_libraries) libwebkernel_so_so_LDADD = $(LIB_KDEUI) # this is where the desktop file will go shelldesktopdir = $(kde_appsdir)/Utilities shelldesktop_DATA = webkernel_so.desktop # this is where the shell's XML-GUI resource file goes shellrcdir = $(kde_datadir)/webkernel_so shellrc_DATA = webkernel_soui.rc kde_services_DATA = webconfig.desktop UserInterface_SOURCES_ = $(libUserInterface_a_SOURCES) UserInterface_BIN = UserInterface.jar libUserInterface.a: cd $(srcdir) && @JAVAC@ -d $(srcdir)/UserInterface.o -cp .: $(libUserInterface_a_SOURCES) cd $(srcdir)/UserInterface.o && @JAR@ cf $(srcdir)/$(UserInterface_BIN) . lib_LIBRARIES = libUserInterface.a libUserInterface_a_SOURCES = UILauncher.java AuthDialog.java Так вот: на выходе - 2 файла: libwebkernel_so.so и UserInterface.jar, однако, чем больше объем UserInterface, тем больше размер libwebkernel_so.so на выходе. Почему так? Что самое интересное, у библиотеки меняется только размер, а сама либа нормально работает. Что дописывается в разделяемую библиотеку?
Код (Text): objdump: /usr/lib/libwebkernel_so.so: File format not recognized Перекомпилил -- debug Дизассемблировал. Вот что получается: Начиная с адреса 000042d4 по адрес 0000455c заполнено ЭТИМ: mov $0, %eax mov $0, %ebx Э та муть продолжается до конца.. Где-то изредка встречается такое (раза 4 встретил): movl $0xffffffff,0xffffffd4(%ebp) Я так понял этот код вообще ниче не делает, тогда нафиг он нужен?