Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) from os import getenv
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) from subprocess import Popen, PIPE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) from re import sub
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) cc = getenv("CC")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) cc_is_clang = b"clang version" in Popen([cc.split()[0], "-v"], stderr=PIPE).stderr.readline()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) def clang_has_option(option):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)     return [o for o in Popen([cc, option], stderr=PIPE).stderr.readlines() if b"unknown argument" in o] == [ ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) if cc_is_clang:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)     from distutils.sysconfig import get_config_vars
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)     vars = get_config_vars()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)     for var in ('CFLAGS', 'OPT'):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)         vars[var] = sub("-specs=[^ ]+", "", vars[var])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)         if not clang_has_option("-mcet"):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)             vars[var] = sub("-mcet", "", vars[var])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)         if not clang_has_option("-fcf-protection"):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)             vars[var] = sub("-fcf-protection", "", vars[var])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)         if not clang_has_option("-fstack-clash-protection"):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)             vars[var] = sub("-fstack-clash-protection", "", vars[var])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)         if not clang_has_option("-fstack-protector-strong"):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)             vars[var] = sub("-fstack-protector-strong", "", vars[var])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)         if not clang_has_option("-fno-semantic-interposition"):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)             vars[var] = sub("-fno-semantic-interposition", "", vars[var])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) from distutils.core import setup, Extension
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) from distutils.command.build_ext   import build_ext   as _build_ext
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) from distutils.command.install_lib import install_lib as _install_lib
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) class build_ext(_build_ext):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)     def finalize_options(self):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)         _build_ext.finalize_options(self)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)         self.build_lib  = build_lib
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)         self.build_temp = build_tmp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) class install_lib(_install_lib):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)     def finalize_options(self):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)         _install_lib.finalize_options(self)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)         self.build_dir = build_lib
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) cflags = getenv('CFLAGS', '').split()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) # switch off several checks (need to be at the end of cflags list)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) cflags += ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-parameter', '-Wno-redundant-decls' ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) if not cc_is_clang:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)     cflags += ['-Wno-cast-function-type' ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) src_perf  = getenv('srctree') + '/tools/perf'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) build_lib = getenv('PYTHON_EXTBUILD_LIB')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) build_tmp = getenv('PYTHON_EXTBUILD_TMP')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) libtraceevent = getenv('LIBTRACEEVENT')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) libapikfs = getenv('LIBAPI')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) libperf = getenv('LIBPERF')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) ext_sources = [f.strip() for f in open('util/python-ext-sources')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 				if len(f.strip()) > 0 and f[0] != '#']
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) # use full paths with source files
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) ext_sources = list(map(lambda x: '%s/%s' % (src_perf, x) , ext_sources))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) extra_libraries = []
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) if '-DHAVE_LIBNUMA_SUPPORT' in cflags:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)     extra_libraries = [ 'numa' ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) if '-DHAVE_LIBCAP_SUPPORT' in cflags:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)     extra_libraries += [ 'cap' ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) perf = Extension('perf',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 		  sources = ext_sources,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) 		  include_dirs = ['util/include'],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 		  libraries = extra_libraries,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 		  extra_compile_args = cflags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) 		  extra_objects = [libtraceevent, libapikfs, libperf],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)                  )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) setup(name='perf',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)       version='0.1',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)       description='Interface with the Linux profiling infrastructure',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)       author='Arnaldo Carvalho de Melo',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)       author_email='acme@redhat.com',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)       license='GPLv2',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)       url='http://perf.wiki.kernel.org',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)       ext_modules=[perf],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)       cmdclass={'build_ext': build_ext, 'install_lib': install_lib})