Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a07d814 authored by Alexey Budankov's avatar Alexey Budankov Committed by Arnaldo Carvalho de Melo
Browse files

tools build feature: Check if libaio is available



This will be used by 'perf record' to speed up reading the perf ring
buffer.

Committer testing:

  $ make -C tools/perf O=/tmp/build/perf
  make: Entering directory '/home/acme/git/perf/tools/perf'
    BUILD:   Doing 'make -j8' parallel build

  Auto-detecting system features:
  ...                         dwarf: [ on  ]
  ...            dwarf_getlocations: [ on  ]
  ...                         glibc: [ on  ]
  ...                          gtk2: [ OFF ]
  ...                      libaudit: [ OFF ]
  ...                        libbfd: [ OFF ]
  ...                        libelf: [ on  ]
  ...                       libnuma: [ OFF ]
  ...        numa_num_possible_cpus: [ OFF ]
  ...                       libperl: [ OFF ]
  ...                     libpython: [ OFF ]
  ...                      libslang: [ on  ]
  ...                     libcrypto: [ on  ]
  ...                     libunwind: [ on  ]
  ...            libdw-dwarf-unwind: [ on  ]
  ...                          zlib: [ on  ]
  ...                          lzma: [ on  ]
  ...                     get_cpuid: [ on  ]
  ...                           bpf: [ on  ]
  ...                        libaio: [ on  ]

  $ ls -la /tmp/build/perf/feature/test-libaio.*
  -rwxrwxr-x. 1 acme acme 18296 Nov 26 08:49 /tmp/build/perf/feature/test-libaio.bin
  -rw-rw-r--. 1 acme acme  1165 Nov 26 08:49 /tmp/build/perf/feature/test-libaio.d
  -rw-rw-r--. 1 acme acme     0 Nov 26 08:49 /tmp/build/perf/feature/test-libaio.make.output
  $
  $ grep -i aio /tmp/build/perf/FEATURE-DUMP
  feature-libaio=1
  $

Signed-off-by: default avatarAlexey Budankov <alexey.budankov@linux.intel.com>
Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Reviewed-by: default avatarJiri Olsa <jolsa@redhat.com>
Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/5fcda10c-6c63-68df-383a-c6d9e5d1f918@linux.intel.com


[ split from a larger patch ]
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 1c6f709b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -70,7 +70,8 @@ FEATURE_TESTS_BASIC := \
        sched_getcpu			\
        sdt				\
        setns				\
        libopencsd
        libopencsd			\
        libaio

# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
# of all feature tests
@@ -116,7 +117,8 @@ FEATURE_DISPLAY ?= \
         zlib                   \
         lzma                   \
         get_cpuid              \
         bpf
         bpf			\
         libaio

# Set FEATURE_CHECK_(C|LD)FLAGS-all for all FEATURE_TESTS features.
# If in the future we need per-feature checks/flags for features not
+5 −1
Original line number Diff line number Diff line
@@ -61,7 +61,8 @@ FILES= \
         test-libopencsd.bin			\
         test-clang.bin				\
         test-llvm.bin				\
         test-llvm-version.bin
         test-llvm-version.bin			\
         test-libaio.bin

FILES := $(addprefix $(OUTPUT),$(FILES))

@@ -297,6 +298,9 @@ $(OUTPUT)test-clang.bin:

-include $(OUTPUT)*.d

$(OUTPUT)test-libaio.bin:
	$(BUILD) -lrt

###############################

clean:
+5 −0
Original line number Diff line number Diff line
@@ -174,6 +174,10 @@
# include "test-libopencsd.c"
#undef main

#define main main_test_libaio
# include "test-libaio.c"
#undef main

int main(int argc, char *argv[])
{
	main_test_libpython();
@@ -214,6 +218,7 @@ int main(int argc, char *argv[])
	main_test_sdt();
	main_test_setns();
	main_test_libopencsd();
	main_test_libaio();

	return 0;
}
+16 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
#include <aio.h>

int main(void)
{
	struct aiocb aiocb;

	aiocb.aio_fildes  = 0;
	aiocb.aio_offset  = 0;
	aiocb.aio_buf     = 0;
	aiocb.aio_nbytes  = 0;
	aiocb.aio_reqprio = 0;
	aiocb.aio_sigevent.sigev_notify = 1 /*SIGEV_NONE*/;

	return (int)aio_return(&aiocb);
}
+6 −0
Original line number Diff line number Diff line
@@ -365,6 +365,12 @@ ifeq ($(feature-glibc), 1)
  CFLAGS += -DHAVE_GLIBC_SUPPORT
endif

ifeq ($(feature-libaio), 1)
  ifndef NO_AIO
    CFLAGS += -DHAVE_AIO_SUPPORT
  endif
endif

ifdef NO_DWARF
  NO_LIBDW_DWARF_UNWIND := 1
endif
Loading