All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables
@ 2018-01-19 11:44 Petri Latvala
  2018-01-19 12:20 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/1] " Patchwork
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Petri Latvala @ 2018-01-19 11:44 UTC (permalink / raw)
  To: igt-dev; +Cc: Tomi Sarvela

Meson builds libigt as a shared library, and executables naturally
have to find it at runtime. Using default options puts the library to
a normal search paths, but any modifications to the directory options
or a non-conventional prefix setting makes using LD_LIBRARY_PATH or
other library search means mandatory.

Add a build option 'use_rpath' (default: false) that makes meson set
up DT_RUNPATH at install time, pointing to the library with a path
relative to the executable, using $ORIGIN. That way the installed
executables find the library even when not installed to exactly the
build-time configured prefix path, a setup CI occasionally uses.

Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 meson_options.txt |  4 ++++
 tests/meson.build | 26 ++++++++++++++++++++++++++
 tools/meson.build | 26 ++++++++++++++++++++++++++
 3 files changed, 56 insertions(+)
 create mode 100644 meson_options.txt

diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 00000000..41be35e0
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,4 @@
+option('use_rpath',
+       type : 'boolean',
+       value : false,
+       description : 'Set runpath on installed executables for libigt.so')
diff --git a/tests/meson.build b/tests/meson.build
index 2322217d..b764b7f7 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -255,24 +255,49 @@ if alsa.found() and gsl.found()
 	test_deps += alsa
 endif
 
+if get_option('use_rpath')
+	# Set up runpath for the test executables towards libigt.so.
+	# The path should be relative to $ORIGIN so the library is
+	# still found properly even if installed to a path other than
+	# prefix.
+
+	# libdir and libexecdir are pathnames relative to
+	# prefix. meson enforces this.
+
+	# Start from the executable
+	rpathdir = '$ORIGIN'
+	# Executables are installed in libexecdir. Add a .. for each
+	# directory name in it.
+	foreach p : libexecdir.split('/')
+		rpathdir = join_paths(rpathdir, '..')
+	endforeach
+	# Add relative path to libdir
+	rpathdir = join_paths(rpathdir, libdir)
+else
+	rpathdir = ''
+endif
+
 test_executables = []
 
 foreach prog : test_progs
 	test_executables += executable(prog, prog + '.c',
 		   dependencies : test_deps,
 		   install_dir : libexecdir,
+		   install_rpath : rpathdir,
 		   install : true)
 endforeach
 
 test_executables += executable('perf_pmu', 'perf_pmu.c',
 	   dependencies : test_deps + [ lib_igt_perf ],
 	   install_dir : libexecdir,
+	   install_rpath : rpathdir,
 	   install : true)
 test_progs += 'perf_pmu'
 
 executable('testdisplay', ['testdisplay.c', 'testdisplay_hotplug.c'],
 	   dependencies : test_deps,
 	   install_dir : libexecdir,
+	   install_rpath : rpathdir,
 	   install : true)
 test_progs += 'testdisplay'
 
@@ -292,6 +317,7 @@ endforeach
 executable('gem_stress', 'gem_stress.c',
 	   install : true,
 	   install_dir : libexecdir,
+	   install_rpath : rpathdir,
 	   dependencies : igt_deps)
 
 # IMPORTANT: These tests here are all disabled because the result in sometime
diff --git a/tools/meson.build b/tools/meson.build
index acd9242d..98366a09 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -50,9 +50,32 @@ if libdrm_intel.found()
 	tool_deps += zlib
 endif
 
+if get_option('use_rpath')
+	# Set up runpath for the test executables towards libigt.so.
+	# The path should be relative to $ORIGIN so the library is
+	# still found properly even if installed to a path other than
+	# prefix.
+
+	# libdir and bindir are pathnames relative to prefix. meson
+	# enforces this.
+
+	# Start from the executable
+	rpathdir = '$ORIGIN'
+	# Executables are installed in bindir. Add a .. for each
+	# directory name in it.
+	foreach p : bindir.split('/')
+		rpathdir = join_paths(rpathdir, '..')
+	endforeach
+	# Add relative path to libdir
+	rpathdir = join_paths(rpathdir, libdir)
+else
+	rpathdir = ''
+endif
+
 foreach prog : tools_progs
 	executable(prog, prog + '.c',
 		   dependencies : tool_deps,
+		   install_rpath : rpathdir,
 		   install : true)
 endforeach
 
@@ -63,18 +86,21 @@ if libudev.found()
 	]
 	executable('intel_dp_compliance', sources : intel_dp_compliance_src,
 		   dependencies : [tool_deps, libudev],
+		   install_rpath : rpathdir,
 		   install : true)
 endif
 
 intel_l3_parity_src = [ 'intel_l3_parity.c', 'intel_l3_udev_listener.c' ]
 executable('intel_l3_parity', sources : intel_l3_parity_src,
 	   dependencies : tool_deps,
+	   install_rpath : rpathdir,
 	   install : true)
 
 intel_reg_src = [ 'intel_reg.c', 'intel_reg_decode.c', 'intel_reg_spec.c' ]
 executable('intel_reg', sources : intel_reg_src,
 	   dependencies : tool_deps,
 	   install : true,
+	   install_rpath : rpathdir,
 	   c_args : [
 	     '-DIGT_DATADIR="@0@"'.format(datadir),
 	   ])
-- 
2.14.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/1] meson: Set up runpath for installed executables
  2018-01-19 11:44 [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables Petri Latvala
@ 2018-01-19 12:20 ` Patchwork
  2018-01-19 15:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-01-19 12:20 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

== Series Details ==

Series: series starting with [1/1] meson: Set up runpath for installed executables
URL   : https://patchwork.freedesktop.org/series/36787/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
51b2ce5f09a58f364e9aa289075ffa8280f23e05 intel_vbt_decode: Typo fixes

with latest DRM-Tip kernel build CI_DRM_3656
6a58f7b0566b drm-tip: 2018y-01m-19d-10h-32m-15s UTC integration manifest

Testlist changes:
+igt@vc4_create_bo@create-bo-0
+igt@vc4_create_bo@create-bo-4096
+igt@vc4_create_bo@create-bo-zeroed
+igt@vc4_dmabuf_poll@poll-read-waits-until-write-done
+igt@vc4_dmabuf_poll@poll-write-waits-until-write-done
+igt@vc4_label_bo@set-bad-handle
+igt@vc4_label_bo@set-bad-name
+igt@vc4_label_bo@set-kernel-name
+igt@vc4_label_bo@set-label
+igt@vc4_lookup_fail@bad-color-write
+igt@vc4_tiling@get-after-free
+igt@vc4_tiling@get-bad-flags
+igt@vc4_tiling@get-bad-handle
+igt@vc4_tiling@get-bad-modifier
+igt@vc4_tiling@set-bad-flags
+igt@vc4_tiling@set-bad-handle
+igt@vc4_tiling@set-bad-modifier
+igt@vc4_tiling@set-get
+igt@vc4_wait_bo@bad-bo
+igt@vc4_wait_bo@bad-pad
+igt@vc4_wait_bo@unused-bo-0ns
+igt@vc4_wait_bo@unused-bo-1ns
+igt@vc4_wait_bo@used-bo
+igt@vc4_wait_bo@used-bo-0ns
+igt@vc4_wait_bo@used-bo-1ns
+igt@vc4_wait_seqno@bad-seqno-0ns
+igt@vc4_wait_seqno@bad-seqno-1ns

Test gem_exec_suspend:
        Subgroup basic-s4-devices:
                pass       -> INCOMPLETE (fi-bdw-5557u) fdo#104162

fdo#104162 https://bugs.freedesktop.org/show_bug.cgi?id=104162

fi-bdw-5557u     total:109  pass:105  dwarn:0   dfail:0   fail:0   skip:3  
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:441s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:383s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:519s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:296s
fi-bxt-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:501s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:507s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:504s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:482s
fi-elk-e7500     total:224  pass:168  dwarn:10  dfail:0   fail:0   skip:45 
fi-gdg-551       total:288  pass:179  dwarn:0   dfail:0   fail:1   skip:108 time:303s
fi-glk-1         total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:535s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:397s
fi-hsw-4770r     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:406s
fi-ilk-650       total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  time:423s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:471s
fi-ivb-3770      total:288  pass:255  dwarn:0   dfail:0   fail:0   skip:33  time:421s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:467s
fi-kbl-7560u     total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  time:507s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:462s
fi-kbl-r         total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:515s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:641s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:439s
fi-skl-6600u     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:521s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:536s
fi-skl-6700k2    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:490s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:496s
fi-skl-gvtdvm    total:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  time:441s
fi-snb-2520m     total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:554s
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:418s
Blacklisted hosts:
fi-cfl-s2        total:288  pass:256  dwarn:0   dfail:0   fail:3   skip:26  time:572s
fi-glk-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:491s
fi-skl-guc       total:288  pass:216  dwarn:44  dfail:0   fail:0   skip:28  time:415s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_801/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [1/1] meson: Set up runpath for installed executables
  2018-01-19 11:44 [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables Petri Latvala
  2018-01-19 12:20 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/1] " Patchwork
@ 2018-01-19 15:52 ` Patchwork
  2018-01-20  0:03 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-01-19 15:52 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

== Series Details ==

Series: series starting with [1/1] meson: Set up runpath for installed executables
URL   : https://patchwork.freedesktop.org/series/36787/
State : failure

== Summary ==

Test perf:
        Subgroup blocking:
                fail       -> PASS       (shard-hsw) fdo#102252 +1
        Subgroup oa-exponents:
                fail       -> PASS       (shard-apl) fdo#102254
Test kms_cursor_crc:
        Subgroup cursor-128x128-suspend:
                pass       -> SKIP       (shard-hsw) fdo#103540
        Subgroup cursor-256x256-suspend:
                incomplete -> PASS       (shard-hsw) fdo#103375
Test kms_frontbuffer_tracking:
        Subgroup fbc-1p-offscren-pri-shrfb-draw-blt:
                fail       -> PASS       (shard-snb) fdo#101623
        Subgroup fbc-1p-pri-indfb-multidraw:
                pass       -> FAIL       (shard-snb) fdo#103167
Test kms_3d:
                pass       -> FAIL       (shard-snb)
Test kms_sysfs_edid_timing:
                pass       -> WARN       (shard-apl) fdo#100047
Test gen7_forcewake_mt:
                pass       -> FAIL       (shard-hsw)
Test kms_flip:
        Subgroup 2x-plain-flip-fb-recreate:
                pass       -> INCOMPLETE (shard-hsw)
        Subgroup vblank-vs-suspend:
                pass       -> FAIL       (shard-hsw) fdo#100368
Test gem_eio:
        Subgroup in-flight:
                pass       -> FAIL       (shard-hsw) fdo#104676
Test gem_exec_schedule:
        Subgroup reorder-wide-vebox:
                fail       -> PASS       (shard-apl) fdo#102848
Test gem_tiled_swapping:
        Subgroup non-threaded:
                incomplete -> PASS       (shard-snb) fdo#104218 +1
Test kms_vblank:
        Subgroup wait-forked-busy:
                skip       -> PASS       (shard-snb)

fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
fdo#102254 https://bugs.freedesktop.org/show_bug.cgi?id=102254
fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#104676 https://bugs.freedesktop.org/show_bug.cgi?id=104676
fdo#102848 https://bugs.freedesktop.org/show_bug.cgi?id=102848
fdo#104218 https://bugs.freedesktop.org/show_bug.cgi?id=104218

shard-apl        total:2780 pass:1716 dwarn:1   dfail:0   fail:20  skip:1042 time:14682s
shard-hsw        total:2734 pass:1682 dwarn:1   dfail:0   fail:15  skip:1033 time:13363s
shard-snb        total:2780 pass:1317 dwarn:1   dfail:0   fail:12  skip:1450 time:8092s
Blacklisted hosts:
shard-kbl        total:2780 pass:1743 dwarn:94  dfail:1   fail:24  skip:918 time:11151s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_801/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/1] meson: Set up runpath for installed executables
  2018-01-19 11:44 [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables Petri Latvala
  2018-01-19 12:20 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/1] " Patchwork
  2018-01-19 15:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2018-01-20  0:03 ` Patchwork
  2018-01-23 10:01 ` Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-01-20  0:03 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

== Series Details ==

Series: series starting with [1/1] meson: Set up runpath for installed executables
URL   : https://patchwork.freedesktop.org/series/36787/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
94bd67c5d6184c435c2fed0bfb39d75b3138b7a8 tools/intel_vbt_decode: update vbt defs from kernel

with latest DRM-Tip kernel build CI_DRM_3663
85f8773e7d77 drm-tip: 2018y-01m-19d-21h-19m-11s UTC integration manifest

No testlist changes.

Test debugfs_test:
        Subgroup read_all_entries:
                pass       -> DMESG-WARN (fi-elk-e7500) fdo#103989 +3
                incomplete -> PASS       (fi-snb-2520m) fdo#103713

fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u     total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  time:428s
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:437s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:383s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:526s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:296s
fi-bxt-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:500s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:505s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:496s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:486s
fi-elk-e7500     total:229  pass:172  dwarn:10  dfail:0   fail:0   skip:46 
fi-gdg-551       total:288  pass:179  dwarn:0   dfail:0   fail:1   skip:108 time:308s
fi-glk-1         total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:525s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:399s
fi-hsw-4770r     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:406s
fi-ilk-650       total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  time:423s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:470s
fi-ivb-3770      total:288  pass:255  dwarn:0   dfail:0   fail:0   skip:33  time:427s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:472s
fi-kbl-7560u     total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  time:504s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:465s
fi-kbl-r         total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:511s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:637s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:437s
fi-skl-6600u     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:517s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:539s
fi-skl-6700k2    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:502s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:486s
fi-skl-gvtdvm    total:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  time:443s
fi-snb-2520m     total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:538s
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:409s
Blacklisted hosts:
fi-cfl-s2        total:288  pass:256  dwarn:0   dfail:0   fail:3   skip:26  time:567s
fi-skl-guc       total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:424s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_804/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/1] meson: Set up runpath for installed executables
  2018-01-19 11:44 [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables Petri Latvala
                   ` (2 preceding siblings ...)
  2018-01-20  0:03 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2018-01-23 10:01 ` Patchwork
  2018-01-30  7:55 ` [igt-dev] [PATCH 1/1] " Daniel Vetter
  2018-03-12 12:08 ` Arkadiusz Hiler
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-01-23 10:01 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

== Series Details ==

Series: series starting with [1/1] meson: Set up runpath for installed executables
URL   : https://patchwork.freedesktop.org/series/36787/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
cb2e65dae7e8ca3f388f43aeec3e7d7dc5d2cfb4 man: Update for new igt-dev mailing list

with latest DRM-Tip kernel build CI_DRM_3671
06c8efda323a drm-tip: 2018y-01m-22d-17h-43m-26s UTC integration manifest

No testlist changes.

Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-b:
                incomplete -> PASS       (fi-snb-2520m) fdo#103713

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u     total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  time:422s
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:427s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:373s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:497s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:283s
fi-bxt-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:486s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:486s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:471s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:465s
fi-elk-e7500     total:224  pass:168  dwarn:9   dfail:1   fail:0   skip:45 
fi-gdg-551       total:288  pass:179  dwarn:0   dfail:0   fail:1   skip:108 time:282s
fi-glk-1         total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:516s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:393s
fi-hsw-4770r     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:405s
fi-ilk-650       total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  time:411s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:460s
fi-ivb-3770      total:288  pass:255  dwarn:0   dfail:0   fail:0   skip:33  time:413s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:458s
fi-kbl-7560u     total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  time:503s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:452s
fi-kbl-r         total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:505s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:585s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:432s
fi-skl-6600u     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:513s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:532s
fi-skl-6700k2    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:487s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:483s
fi-skl-guc       total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:419s
fi-skl-gvtdvm    total:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  time:434s
fi-snb-2520m     total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:526s
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:410s
Blacklisted hosts:
fi-cfl-s2        total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:567s
fi-glk-dsi       total:288  pass:257  dwarn:0   dfail:0   fail:1   skip:30  time:486s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_814/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables
  2018-01-19 11:44 [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables Petri Latvala
                   ` (3 preceding siblings ...)
  2018-01-23 10:01 ` Patchwork
@ 2018-01-30  7:55 ` Daniel Vetter
  2018-03-12 12:08 ` Arkadiusz Hiler
  5 siblings, 0 replies; 7+ messages in thread
From: Daniel Vetter @ 2018-01-30  7:55 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev, Tomi Sarvela

On Fri, Jan 19, 2018 at 01:44:07PM +0200, Petri Latvala wrote:
> Meson builds libigt as a shared library, and executables naturally
> have to find it at runtime. Using default options puts the library to
> a normal search paths, but any modifications to the directory options
> or a non-conventional prefix setting makes using LD_LIBRARY_PATH or
> other library search means mandatory.
> 
> Add a build option 'use_rpath' (default: false) that makes meson set
> up DT_RUNPATH at install time, pointing to the library with a path
> relative to the executable, using $ORIGIN. That way the installed
> executables find the library even when not installed to exactly the
> build-time configured prefix path, a setup CI occasionally uses.
> 
> Signed-off-by: Petri Latvala <petri.latvala@intel.com>
> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

Not exactly the most knowledgeable person in this area, but still:

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  meson_options.txt |  4 ++++
>  tests/meson.build | 26 ++++++++++++++++++++++++++
>  tools/meson.build | 26 ++++++++++++++++++++++++++
>  3 files changed, 56 insertions(+)
>  create mode 100644 meson_options.txt
> 
> diff --git a/meson_options.txt b/meson_options.txt
> new file mode 100644
> index 00000000..41be35e0
> --- /dev/null
> +++ b/meson_options.txt
> @@ -0,0 +1,4 @@
> +option('use_rpath',
> +       type : 'boolean',
> +       value : false,
> +       description : 'Set runpath on installed executables for libigt.so')
> diff --git a/tests/meson.build b/tests/meson.build
> index 2322217d..b764b7f7 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -255,24 +255,49 @@ if alsa.found() and gsl.found()
>  	test_deps += alsa
>  endif
>  
> +if get_option('use_rpath')
> +	# Set up runpath for the test executables towards libigt.so.
> +	# The path should be relative to $ORIGIN so the library is
> +	# still found properly even if installed to a path other than
> +	# prefix.
> +
> +	# libdir and libexecdir are pathnames relative to
> +	# prefix. meson enforces this.
> +
> +	# Start from the executable
> +	rpathdir = '$ORIGIN'
> +	# Executables are installed in libexecdir. Add a .. for each
> +	# directory name in it.
> +	foreach p : libexecdir.split('/')
> +		rpathdir = join_paths(rpathdir, '..')
> +	endforeach
> +	# Add relative path to libdir
> +	rpathdir = join_paths(rpathdir, libdir)
> +else
> +	rpathdir = ''
> +endif
> +
>  test_executables = []
>  
>  foreach prog : test_progs
>  	test_executables += executable(prog, prog + '.c',
>  		   dependencies : test_deps,
>  		   install_dir : libexecdir,
> +		   install_rpath : rpathdir,
>  		   install : true)
>  endforeach
>  
>  test_executables += executable('perf_pmu', 'perf_pmu.c',
>  	   dependencies : test_deps + [ lib_igt_perf ],
>  	   install_dir : libexecdir,
> +	   install_rpath : rpathdir,
>  	   install : true)
>  test_progs += 'perf_pmu'
>  
>  executable('testdisplay', ['testdisplay.c', 'testdisplay_hotplug.c'],
>  	   dependencies : test_deps,
>  	   install_dir : libexecdir,
> +	   install_rpath : rpathdir,
>  	   install : true)
>  test_progs += 'testdisplay'
>  
> @@ -292,6 +317,7 @@ endforeach
>  executable('gem_stress', 'gem_stress.c',
>  	   install : true,
>  	   install_dir : libexecdir,
> +	   install_rpath : rpathdir,
>  	   dependencies : igt_deps)
>  
>  # IMPORTANT: These tests here are all disabled because the result in sometime
> diff --git a/tools/meson.build b/tools/meson.build
> index acd9242d..98366a09 100644
> --- a/tools/meson.build
> +++ b/tools/meson.build
> @@ -50,9 +50,32 @@ if libdrm_intel.found()
>  	tool_deps += zlib
>  endif
>  
> +if get_option('use_rpath')
> +	# Set up runpath for the test executables towards libigt.so.
> +	# The path should be relative to $ORIGIN so the library is
> +	# still found properly even if installed to a path other than
> +	# prefix.
> +
> +	# libdir and bindir are pathnames relative to prefix. meson
> +	# enforces this.
> +
> +	# Start from the executable
> +	rpathdir = '$ORIGIN'
> +	# Executables are installed in bindir. Add a .. for each
> +	# directory name in it.
> +	foreach p : bindir.split('/')
> +		rpathdir = join_paths(rpathdir, '..')
> +	endforeach
> +	# Add relative path to libdir
> +	rpathdir = join_paths(rpathdir, libdir)
> +else
> +	rpathdir = ''
> +endif
> +
>  foreach prog : tools_progs
>  	executable(prog, prog + '.c',
>  		   dependencies : tool_deps,
> +		   install_rpath : rpathdir,
>  		   install : true)
>  endforeach
>  
> @@ -63,18 +86,21 @@ if libudev.found()
>  	]
>  	executable('intel_dp_compliance', sources : intel_dp_compliance_src,
>  		   dependencies : [tool_deps, libudev],
> +		   install_rpath : rpathdir,
>  		   install : true)
>  endif
>  
>  intel_l3_parity_src = [ 'intel_l3_parity.c', 'intel_l3_udev_listener.c' ]
>  executable('intel_l3_parity', sources : intel_l3_parity_src,
>  	   dependencies : tool_deps,
> +	   install_rpath : rpathdir,
>  	   install : true)
>  
>  intel_reg_src = [ 'intel_reg.c', 'intel_reg_decode.c', 'intel_reg_spec.c' ]
>  executable('intel_reg', sources : intel_reg_src,
>  	   dependencies : tool_deps,
>  	   install : true,
> +	   install_rpath : rpathdir,
>  	   c_args : [
>  	     '-DIGT_DATADIR="@0@"'.format(datadir),
>  	   ])
> -- 
> 2.14.1
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables
  2018-01-19 11:44 [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables Petri Latvala
                   ` (4 preceding siblings ...)
  2018-01-30  7:55 ` [igt-dev] [PATCH 1/1] " Daniel Vetter
@ 2018-03-12 12:08 ` Arkadiusz Hiler
  5 siblings, 0 replies; 7+ messages in thread
From: Arkadiusz Hiler @ 2018-03-12 12:08 UTC (permalink / raw)
  To: Latvala, Petri; +Cc: igt-dev, Sarvela, Tomi P

On Fri, Jan 19, 2018 at 01:44:07PM +0200, Latvala, Petri wrote:
> Meson builds libigt as a shared library, and executables naturally
> have to find it at runtime. Using default options puts the library to
> a normal search paths, but any modifications to the directory options
> or a non-conventional prefix setting makes using LD_LIBRARY_PATH or
> other library search means mandatory.
> 
> Add a build option 'use_rpath' (default: false) that makes meson set
> up DT_RUNPATH at install time, pointing to the library with a path
> relative to the executable, using $ORIGIN. That way the installed
> executables find the library even when not installed to exactly the
> build-time configured prefix path, a setup CI occasionally uses.
> 
> Signed-off-by: Petri Latvala <petri.latvala@intel.com>
> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> ---
>  meson_options.txt |  4 ++++
>  tests/meson.build | 26 ++++++++++++++++++++++++++
>  tools/meson.build | 26 ++++++++++++++++++++++++++
>  3 files changed, 56 insertions(+)
>  create mode 100644 meson_options.txt
> 
> diff --git a/meson_options.txt b/meson_options.txt
> new file mode 100644
> index 00000000..41be35e0
> --- /dev/null
> +++ b/meson_options.txt
> @@ -0,0 +1,4 @@
> +option('use_rpath',
> +       type : 'boolean',
> +       value : false,
> +       description : 'Set runpath on installed executables for libigt.so')
> diff --git a/tests/meson.build b/tests/meson.build
> index 2322217d..b764b7f7 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -255,24 +255,49 @@ if alsa.found() and gsl.found()
>  	test_deps += alsa
>  endif
>  
> +if get_option('use_rpath')
> +	# Set up runpath for the test executables towards libigt.so.
> +	# The path should be relative to $ORIGIN so the library is
> +	# still found properly even if installed to a path other than
> +	# prefix.
> +
> +	# libdir and libexecdir are pathnames relative to
> +	# prefix. meson enforces this.
> +
> +	# Start from the executable
> +	rpathdir = '$ORIGIN'
> +	# Executables are installed in libexecdir. Add a .. for each
> +	# directory name in it.
> +	foreach p : libexecdir.split('/')
> +		rpathdir = join_paths(rpathdir, '..')
> +	endforeach
> +	# Add relative path to libdir
> +	rpathdir = join_paths(rpathdir, libdir)

Theoretically there is $LIB which:
"They will be replaced by [...] or either lib - for 32-bit binaries - or
lib64 - for 64-bit binaries - in the case of $LIB"

But I think I like current soultion more.

Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Tested-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

I'll push it in a minute.

I've learend something today, thanks!

-- 
Cheers,
Arek
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2018-03-12 12:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-19 11:44 [igt-dev] [PATCH 1/1] meson: Set up runpath for installed executables Petri Latvala
2018-01-19 12:20 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [1/1] " Patchwork
2018-01-19 15:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2018-01-20  0:03 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2018-01-23 10:01 ` Patchwork
2018-01-30  7:55 ` [igt-dev] [PATCH 1/1] " Daniel Vetter
2018-03-12 12:08 ` Arkadiusz Hiler

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.