ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Circular link for libraries
@ 2013-04-26  7:23 REAL
  2013-04-27 17:45 ` Ivan A. Melnikov
  0 siblings, 1 reply; 6+ messages in thread
From: REAL @ 2013-04-26  7:23 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Привет!

Есть проект на CMake, там необходимо выполнить взаимолинковку пары 
библиотек, типа такого:

target_link_libraries(foo bar)
target_link_libraries(bar foo)

cmake на это резонно ругается, но без таких взаимолинковок сборка не 
проходит в части verify-elf. Есть какой-нибудь трюк, чтобы это 
заработало? В autotools такие вещи делались довольно просто.

-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Circular link for libraries
  2013-04-26  7:23 [devel] Circular link for libraries REAL
@ 2013-04-27 17:45 ` Ivan A. Melnikov
  2013-04-27 17:51   ` Viacheslav Dubrovskyi
  2013-04-28  4:07   ` REAL
  0 siblings, 2 replies; 6+ messages in thread
From: Ivan A. Melnikov @ 2013-04-27 17:45 UTC (permalink / raw)
  To: devel

On Fri, 26 Apr 2013 14:23:29 +0700
REAL <real@kemsu.ru> wrote:

> Привет!
> 
> Есть проект на CMake, там необходимо выполнить взаимолинковку пары 
> библиотек, типа такого:
> 
> target_link_libraries(foo bar)
> target_link_libraries(bar foo)
> 
> cmake на это резонно ругается, но без таких взаимолинковок сборка не 
> проходит в части verify-elf. Есть какой-нибудь трюк, чтобы это 
> заработало? В autotools такие вещи делались довольно просто.

Не расскажите, как? А то я не представляю себе, как можно слинковаться
с библиотекой, которой ещё нет.

-- 
WBR,
Ivan A. Melnikov


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Circular link for libraries
  2013-04-27 17:45 ` Ivan A. Melnikov
@ 2013-04-27 17:51   ` Viacheslav Dubrovskyi
  2013-04-28  4:09     ` REAL
  2013-04-28  4:07   ` REAL
  1 sibling, 1 reply; 6+ messages in thread
From: Viacheslav Dubrovskyi @ 2013-04-27 17:51 UTC (permalink / raw)
  To: devel

27.04.2013 20:45, Ivan A. Melnikov пишет:
> On Fri, 26 Apr 2013 14:23:29 +0700
> REAL <real@kemsu.ru> wrote:
>
>> Привет!
>>
>> Есть проект на CMake, там необходимо выполнить взаимолинковку пары 
>> библиотек, типа такого:
>>
>> target_link_libraries(foo bar)
>> target_link_libraries(bar foo)
>>
>> cmake на это резонно ругается, но без таких взаимолинковок сборка не 
>> проходит в части verify-elf. Есть какой-нибудь трюк, чтобы это 
>> заработало? В autotools такие вещи делались довольно просто.
> Не расскажите, как? А то я не представляю себе, как можно слинковаться
> с библиотекой, которой ещё нет.
Недавно патчил pacemaker на эту тему.
Вот тут собирается libcib которая должна линковться с libpe. И на оборот.
Добавляем дополнительное правило. При этом собирается libpe и с ней
линкуется libcib. Потом, когда доходит очередь до неё, она перелинкуется
опять с ранее собранной либой.

libcib_la_LDFLAGS    = -version-info 3:0:0
-L$(top_builddir)/lib/pengine/.libs
libcib_la_LIBADD        = $(CRYPTOLIB)
$(top_builddir)/lib/pengine/libpe_rules.la
$(top_builddir)/lib/common/libcrmcommon.la
libcib_la_CFLAGS    = -I$(top_srcdir)
 
libcib_la_DEPENDENCIES  = libpe_rules
libpe_rules:
    make -C ../../lib/pengine libpe_rules.la

Вообщем как выяснилось это по сути плохо, т.к. возникает резонный
вопрос: - а зачем выделять тогда либы?

-- 
WBR,
Viacheslav Dubrovskyi



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Circular link for libraries
  2013-04-27 17:45 ` Ivan A. Melnikov
  2013-04-27 17:51   ` Viacheslav Dubrovskyi
@ 2013-04-28  4:07   ` REAL
  1 sibling, 0 replies; 6+ messages in thread
From: REAL @ 2013-04-28  4:07 UTC (permalink / raw)
  To: ALT Linux Team development discussions

>> cmake на это резонно ругается, но без таких взаимолинковок сборка не
>> проходит в части verify-elf. Есть какой-нибудь трюк, чтобы это
>> заработало? В autotools такие вещи делались довольно просто.
>
> Не расскажите, как? А то я не представляю себе, как можно слинковаться
> с библиотекой, которой ещё нет.

просто в Makefile добавляется перменная, например, ${MYLIB} в сторку 
линковки. и делается два захода %make_build:

%make_build
%make_build -lmylib

-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Circular link for libraries
  2013-04-27 17:51   ` Viacheslav Dubrovskyi
@ 2013-04-28  4:09     ` REAL
  2013-04-29 10:07       ` Ildar Mulyukov
  0 siblings, 1 reply; 6+ messages in thread
From: REAL @ 2013-04-28  4:09 UTC (permalink / raw)
  To: ALT Linux Team development discussions

28.04.2013 00:51, Viacheslav Dubrovskyi пишет:
> Вот тут собирается libcib которая должна линковться с libpe. И на оборот.
> Добавляем дополнительное правило. При этом собирается libpe и с ней
> линкуется libcib. Потом, когда доходит очередь до неё, она перелинкуется
> опять с ранее собранной либой.
[...]
> Вообщем как выяснилось это по сути плохо, т.к. возникает резонный
> вопрос: - а зачем выделять тогда либы?

это уже апстриму вопрос, не всякий мейнтейнер сможет объединить две 
либы в одну.

-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Circular link for libraries
  2013-04-28  4:09     ` REAL
@ 2013-04-29 10:07       ` Ildar Mulyukov
  0 siblings, 0 replies; 6+ messages in thread
From: Ildar Mulyukov @ 2013-04-29 10:07 UTC (permalink / raw)
  To: ALT Linux Team development discussions

28.04.2013 10:09, REAL пишет:
> 28.04.2013 00:51, Viacheslav Dubrovskyi пишет:
>> Вообщем как выяснилось это по сути плохо, т.к. возникает резонный
>> вопрос: - а зачем выделять тогда либы?
poor design, IMHO
> это уже апстриму вопрос, не всякий мейнтейнер сможет объединить две
> либы в одну.
А такое делать - это вообще, скорее вред, чем польза.

С уважением,

-- 
Ildar Mulyukov,
  free SW designer/programmer/packager
======================================
email: ildar@altlinux.ru
Jabber: ildar.mulyukov@gmail.com
ICQ: 4334029
ALT Linux http://packages.altlinux.org/ru/Sisyphus/maintainers/ildar/
======================================



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-04-29 10:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-26  7:23 [devel] Circular link for libraries REAL
2013-04-27 17:45 ` Ivan A. Melnikov
2013-04-27 17:51   ` Viacheslav Dubrovskyi
2013-04-28  4:09     ` REAL
2013-04-29 10:07       ` Ildar Mulyukov
2013-04-28  4:07   ` REAL

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git