diff options
Diffstat (limited to 'meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch')
-rw-r--r-- | meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch b/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch deleted file mode 100644 index fd314bfee5..0000000000 --- a/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch +++ /dev/null @@ -1,121 +0,0 @@ -By default, gcc-5 uses C99 inline semantics, this semantics doesn't -generate externally visible function for inline functions. This results in -below error, when an another translation unit (TU) tries to link with the -inline function, - --- snip -- -| lsuio.o: In function `main': -| <...>/libuio/0.2.1-r0/git/tools/lsuio.c:85: undefined reference to `uio_mmap' -| collect2: error: ld returned 1 exit status -| make[2]: *** [lsuio] Error 1 --- CUT -- - -To solve this error and make libuio to compile with both 4.x and 5.x, - -1. We can remove 'uio_mmap' inline function definition in uio_mmap.c, and move - that definition into uio_helper.h file (which is included by lsuio.c) and - replace inline with "static inline". Similarly it can be done to other - uio_single_munmap and uio_munmap inline functions - -2. Add 'extern' keyword in front of inline functions declaration, to make - inlined function as externally visible function, and to link with other TUs. - -Going with option 1. - -Upstream-Status: Pending - -Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> - ---- git_org/src/uio_helper.h 2015-10-20 02:37:04.183075855 -0400 -+++ git/src/uio_helper.h 2015-10-20 03:34:24.659970136 -0400 -@@ -61,11 +61,11 @@ struct uio_info_t { - - /* function prototypes */ - --inline char* uio_lib_name(void); --inline char* uio_lib_version(void); --inline int uio_lib_ifcurrent(void); --inline int uio_lib_ifrevision(void); --inline int uio_lib_ifage(void); -+static inline char* uio_lib_name(void); -+static inline char* uio_lib_version(void); -+static inline int uio_lib_ifcurrent(void); -+static inline int uio_lib_ifrevision(void); -+static inline int uio_lib_ifage(void); - - int uio_get_mem_size(struct uio_info_t* info, int map_num); - int uio_get_mem_addr(struct uio_info_t* info, int map_num); -@@ -76,10 +76,30 @@ int uio_get_all_info(struct uio_info_t* - int uio_get_device_attributes(struct uio_info_t* info); - - void* uio_single_mmap(struct uio_info_t* info, int map_num, int fd); --inline void uio_mmap(struct uio_info_t* info, int fd); - --inline void uio_single_munmap(struct uio_info_t* info, int map_num); --inline void uio_munmap(struct uio_info_t* info); -+static inline void uio_mmap(struct uio_info_t* info, int fd); -+static inline void uio_mmap(struct uio_info_t* info, int fd) -+{ -+ int map_num; -+ if (!fd) return; -+ for (map_num= 0; map_num < MAX_UIO_MAPS; map_num++) -+ uio_single_mmap(info, map_num, fd); -+} -+ -+static inline void uio_single_munmap(struct uio_info_t* info, int map_num); -+static inline void uio_single_munmap(struct uio_info_t* info, int map_num) -+{ -+ munmap(info->maps[map_num].internal_addr, info->maps[map_num].size); -+ info->maps[map_num].mmap_result = UIO_MMAP_NOT_DONE; -+} -+ -+static inline void uio_munmap(struct uio_info_t* info); -+static inline void uio_munmap(struct uio_info_t* info) -+{ -+ int i; -+ for (i = 0; i < MAX_UIO_MAPS; i++) -+ uio_single_munmap(info, i); -+} - - void uio_free_dev_attrs(struct uio_info_t* info); - void uio_free_info(struct uio_info_t* info); ---- git_org/src/uio_mmap.c 2015-10-20 02:37:04.183075855 -0400 -+++ git/src/uio_mmap.c 2015-10-20 03:34:45.060003208 -0400 -@@ -22,11 +22,3 @@ - #include <stdlib.h> - - #include "uio_helper.h" -- --inline void uio_mmap(struct uio_info_t* info, int fd) --{ -- int map_num; -- if (!fd) return; -- for (map_num= 0; map_num < MAX_UIO_MAPS; map_num++) -- uio_single_mmap(info, map_num, fd); --} ---- git_org/src/uio_munmap.c 2015-10-20 02:37:04.183075855 -0400 -+++ git/src/uio_munmap.c 2015-10-20 03:34:59.636026835 -0400 -@@ -22,10 +22,3 @@ - #include <stdlib.h> - - #include "uio_helper.h" -- --inline void uio_munmap(struct uio_info_t* info) --{ -- int i; -- for (i = 0; i < MAX_UIO_MAPS; i++) -- uio_single_munmap(info, i); --} -\ No newline at end of file ---- git_org/src/uio_single_munmap.c 2015-10-20 02:37:04.183075855 -0400 -+++ git/src/uio_single_munmap.c 2015-10-20 03:52:55.005763023 -0400 -@@ -24,9 +24,3 @@ - #include <sys/mman.h> - - #include "uio_helper.h" -- --inline void uio_single_munmap(struct uio_info_t* info, int map_num) --{ -- munmap(info->maps[map_num].internal_addr, info->maps[map_num].size); -- info->maps[map_num].mmap_result = UIO_MMAP_NOT_DONE; --} |