blob: 85b7265312f339767ccc411265b29495df0a8d6d [file] [log] [blame]
Ebrahim Byagowi7250ade2020-05-29 12:34:30 +04301#!/usr/bin/env python3
2
3import sys, os, shutil, subprocess
4
Ebrahim Byagowia07672d2020-07-04 14:12:55 +04305os.chdir (os.getenv ('srcdir', os.path.dirname (__file__)))
Ebrahim Byagowi7250ade2020-05-29 12:34:30 +04306
Ebrahim Byagowia07672d2020-07-04 14:12:55 +04307libs = os.getenv ('libs', '.libs')
Ebrahim Byagowi7250ade2020-05-29 12:34:30 +04308
Behdad Esfahbod13c6ad92021-06-12 11:00:19 -06009ldd = os.getenv ('LDD', shutil.which ('ldd'))
10if not ldd:
11 otool = os.getenv ('OTOOL', shutil.which ('otool'))
12 if otool:
13 ldd = otool + ' -L'
Ebrahim Byagowi7250ade2020-05-29 12:34:30 +043014 else:
15 print ('check-libstdc++.py: \'ldd\' not found; skipping test')
16 sys.exit (77)
17
18stat = 0
19tested = False
20
21# harfbuzz-icu links to libstdc++ because icu does.
22for soname in ['harfbuzz', 'harfbuzz-subset', 'harfbuzz-gobject']:
23 for suffix in ['so', 'dylib']:
24 so = os.path.join (libs, 'lib%s.%s' % (soname, suffix))
25 if not os.path.exists (so): continue
26
27 print ('Checking that we are not linking to libstdc++ or libc++ in %s' % so)
Behdad Esfahbod13c6ad92021-06-12 11:00:19 -060028 ldd_result = subprocess.check_output (ldd.split() + [so])
Ebrahim Byagowi7250ade2020-05-29 12:34:30 +043029 if (b'libstdc++' in ldd_result) or (b'libc++' in ldd_result):
30 print ('Ouch, %s is linked to libstdc++ or libc++' % so)
31 stat = 1
32
33 tested = True
34
35if not tested:
36 print ('check-libstdc++.py: libharfbuzz shared library not found; skipping test')
37 sys.exit (77)
38
39sys.exit (stat)