In order to ensure ABI compatibility between staged builds it was required that rtkaio/Makefile define both IN_MODULE=MODULE_librt and IS_IN_librt in order to get both the right set of versioned symbols and enable cancellation correctly. The changes to rtkaio/Makefile are Red Hat internal changes. commit 286663c34b006c1409df4a71f89d6d4d5d01df09 Author: Siddhesh Poyarekar Date: Wed Nov 19 12:15:01 2014 +0530 Fix -Wundef warning in SHLIB_COMPAT Replace the IS_IN_##lib with IS_IN(lib). Verified that the generated code remains the same. * include/shlib-compat.h (_SHLIB_COMPAT): Use IS_IN. Index: glibc-2.17-c758a686/include/shlib-compat.h =================================================================== --- glibc-2.17-c758a686.orig/include/shlib-compat.h +++ glibc-2.17-c758a686/include/shlib-compat.h @@ -45,7 +45,7 @@ # define SHLIB_COMPAT(lib, introduced, obsoleted) \ _SHLIB_COMPAT (lib, introduced, obsoleted) # define _SHLIB_COMPAT(lib, introduced, obsoleted) \ - ((IS_IN_##lib - 0) \ + (IS_IN (lib) \ && (!(ABI_##lib##_##obsoleted - 0) \ || ((ABI_##lib##_##introduced - 0) < (ABI_##lib##_##obsoleted - 0)))) Index: glibc-2.17-c758a686/rtkaio/Makefile =================================================================== --- glibc-2.17-c758a686.orig/rtkaio/Makefile +++ glibc-2.17-c758a686/rtkaio/Makefile @@ -69,7 +69,8 @@ CFLAGS-kaio_librt-cancellation.c = -fasy LDFLAGS-rtkaio.so = -Wl,-soname=lib$(libprefix)rt.so$(librt.so-version) \ -Wl,--enable-new-dtags,-z,nodelete -CPPFLAGS-librtkaio += -DIS_IN_librt=1 -I$(..)rt +CPPFLAGS-librtkaio += -UIN_MODULE -DIN_MODULE=MODULE_librt \ + -UIS_IN_librt -DIS_IN_librt=1 -I$(..)rt rpath-dirs := $(patsubst rt,rtkaio,$(rpath-dirs))