Skip to contentSkip to conversation

package/oprofile: fix static linking

PATCH Superseded Yann E. MORIN 2 participants 3 messages Aug 16, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 package/oprofile: fix static linking

oprofile links with popt, which links with -lintl and specifies it in its popt.pc, and has done so for the past 6+ years, but oprofile does not use pkconfig to find popt, so we need to tell it to link with -lintl for a static build.

Fixes:

    http://autobuild.buildroot.org/results/a48/a485f2171a3fcbfa2e0e5aec8e653cf88512615d/
    http://autobuild.buildroot.org/results/b37/b374874f1915ab1d7aa6262604ccc8db102bb0b0/
    http://autobuild.buildroot.org/results/261/2616a63081ed8c55c7ca1a6879b1a6a14e19f918/
    http://autobuild.buildroot.org/results/73f/73f34ab59d54ded68ff60608a0212a6e5a5190e5/
    ...

---
Changes v1 -> v2:
- use PKG_CONFIG_HOST_BINARY to find popt libs (Baruch)

---
 package/oprofile/oprofile.mk | 7 +++++++
 1 file changed, 7 insertions(+)
package/oprofile/oprofile.mk +7 -0
index 5876307..8815da7 100644
@@ -41,6 +41,13 @@ ifeq ($(BR2_PACKAGE_LIBPFM4),y)
 OPROFILE_DEPENDENCIES += libpfm4
 endif
 
+# popt links with -lintl and specifies it in its popt.pc, and has done
+# so for the past 6+ years, but oprofile does not use pkconfig to find
+# popt, so we need to tell it to link with -lintl for a static build.
+ifeq ($(BR2_PACKAGE_GETTEXT)$(BR2_STATIC_LIBS),yy)
+OPROFILE_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs popt`"
+endif
+
 define OPROFILE_INSTALL_TARGET_CMDS
 	$(INSTALL) -d -m 755 $(TARGET_DIR)/usr/bin
 	$(INSTALL) -d -m 755 $(TARGET_DIR)/usr/share/oprofile
Signature · 1 line
1.9.1
#1 lore raw

PATCH v2 1/1 package/oprofile: fix static linking

Hi Yann,

package/oprofile/oprofile.mk ifeq ($(BR2_PACKAGE_LIBPFM4),y) · line 49

Quoted 6 lines · Yann E. MORIN
package/oprofile/oprofile.mk +6 -0
+# popt links with -lintl and specifies it in its popt.pc, and has done
+# so for the past 6+ years, but oprofile does not use pkconfig to find
+# popt, so we need to tell it to link with -lintl for a static build.
+ifeq ($(BR2_PACKAGE_GETTEXT)$(BR2_STATIC_LIBS),yy)
+OPROFILE_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs popt`"
+endif

Well, the whole point of running $(PKG_CONFIG_HOST_BINARY) is that its output matches the actual build dependencies. So the 'ifeq' should not be needed, just like logrotate.

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#2 lore raw

PATCH v2 1/1 package/oprofile: fix static linking

Baruch, All,

On 2015-08-16 21:02 +0300, Baruch Siach spake thusly:

Quoted 11 lines · Yann E. MORIN

package/oprofile/oprofile.mk ifeq ($(BR2_PACKAGE_LIBPFM4),y) · line 49

Quoted 6 lines
package/oprofile/oprofile.mk +6 -0
+# popt links with -lintl and specifies it in its popt.pc, and has done
+# so for the past 6+ years, but oprofile does not use pkconfig to find
+# popt, so we need to tell it to link with -lintl for a static build.
+ifeq ($(BR2_PACKAGE_GETTEXT)$(BR2_STATIC_LIBS),yy)
+OPROFILE_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs popt`"
+endif

Well, the whole point of running $(PKG_CONFIG_HOST_BINARY) is that its output matches the actual build dependencies. So the 'ifeq' should not be needed, just like logrotate.

So true. Thanks for the reviews! :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'