[dpdk-dev] mk: add rpath for applications
Commit Message
Add default library output folder to the library search folder.
This is useful for development environment, in production environment
DPDK libraries already should be in know locations.
Patch removes requirement to set LD_LIBRARY_PATH variable when DPDK
compiled as shared library.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
mk/rte.app.mk | 4 ++++
1 file changed, 4 insertions(+)
Comments
2016-04-29 17:34, Ferruh Yigit:
> Add default library output folder to the library search folder.
>
> This is useful for development environment, in production environment
> DPDK libraries already should be in know locations.
Yes it is useful in dev environment, but can be risky or strange when
packaged for production environment.
Shouldn't we have a switch to avoid a development garbage in production?
I suggest to use RTE_DEVEL_BUILD.
> Patch removes requirement to set LD_LIBRARY_PATH variable when DPDK
> compiled as shared library.
Yes, this patch could remove
export LD_LIBRARY_PATH=$build/lib:$LD_LIBRARY_PATH
in scripts/test-null.sh.
[...]
> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
> +LDFLAGS += --rpath=$(RTE_SDK_BIN)/lib
> +endif
Isn't it -rpath, with a single dash?
As it is a variable setting, it should be added before the rules,
just after LDLIBS settings.
On 5/2/2016 5:10 PM, Thomas Monjalon wrote:
> 2016-04-29 17:34, Ferruh Yigit:
>> Add default library output folder to the library search folder.
>>
>> This is useful for development environment, in production environment
>> DPDK libraries already should be in know locations.
>
> Yes it is useful in dev environment, but can be risky or strange when
> packaged for production environment.
> Shouldn't we have a switch to avoid a development garbage in production?
> I suggest to use RTE_DEVEL_BUILD.
>
Right, I will use RTE_DEVEL_BUILD
>> Patch removes requirement to set LD_LIBRARY_PATH variable when DPDK
>> compiled as shared library.
>
> Yes, this patch could remove
> export LD_LIBRARY_PATH=$build/lib:$LD_LIBRARY_PATH
> in scripts/test-null.sh.
>
Sure, I can update it.
> [...]
>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
>> +LDFLAGS += --rpath=$(RTE_SDK_BIN)/lib
>> +endif
>
> Isn't it -rpath, with a single dash?
>
It seems both are working, I will convert to single dash.
> As it is a variable setting, it should be added before the rules,
> just after LDLIBS settings.
>
OK.
I will send an updated version.
Thanks for the review,
ferruh
@@ -198,6 +198,10 @@ build: _postbuild
exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
+ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
+LDFLAGS += --rpath=$(RTE_SDK_BIN)/lib
+endif
+
ifeq ($(LINK_USING_CC),1)
override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS))
O_TO_EXE = $(CC) $(CFLAGS) $(LDFLAGS_$(@)) \