Patrick Williams | b48b7b4 | 2016-08-17 15:04:38 -0500 | [diff] [blame] | 1 | fuse: Fix linking issues with gold linker |
| 2 | |
| 3 | fuse has problems when linking with gold since it uses version |
| 4 | scripts in a way thats so perticular to bfd ld |
| 5 | |
| 6 | /home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstro |
| 7 | error: symbol __fuse_exited has undefined version |
| 8 | | collect2: ld returned 1 exit status |
| 9 | | make[1]: *** [libfuse.la] Error 1 |
| 10 | | make[1]: *** Waiting for unfinished jobs.... |
| 11 | |
| 12 | For more details |
| 13 | |
| 14 | http://blog.flameeyes.eu/2011/06/01/gold-readiness-obstacle-2-base-versioning |
| 15 | http://sources.redhat.com/bugzilla/show_bug.cgi?id=10861 |
| 16 | http://comments.gmane.org/gmane.comp.file-systems.fuse.devel/9524 |
| 17 | http://www.airs.com/blog/archives/300 |
| 18 | |
| 19 | Upstream-Status: Pending |
| 20 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 21 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> |
| 22 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
| 23 | --- |
| 24 | lib/fuse.c | 10 +++++----- |
| 25 | lib/fuse_mt.c | 2 +- |
| 26 | lib/fuse_versionscript | 3 +++ |
| 27 | lib/helper.c | 6 +++--- |
| 28 | 4 files changed, 12 insertions(+), 9 deletions(-) |
| 29 | |
| 30 | diff --git a/lib/fuse.c b/lib/fuse.c |
| 31 | index 067d0dc..6d27711 100644 |
| 32 | --- a/lib/fuse.c |
| 33 | +++ b/lib/fuse.c |
| 34 | @@ -4873,11 +4873,11 @@ struct fuse *fuse_new_compat1(int fd, int flags, |
| 35 | 11); |
| 36 | } |
| 37 | |
| 38 | -FUSE_SYMVER(".symver fuse_exited,__fuse_exited@"); |
| 39 | -FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@"); |
| 40 | -FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@"); |
| 41 | -FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@"); |
| 42 | -FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@"); |
| 43 | +FUSE_SYMVER(".symver fuse_exited,__fuse_exited@FUSE_UNVERSIONED"); |
| 44 | +FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@FUSE_UNVERSIONED"); |
| 45 | +FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@FUSE_UNVERSIONED"); |
| 46 | +FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@FUSE_UNVERSIONED"); |
| 47 | +FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@FUSE_UNVERSIONED"); |
| 48 | FUSE_SYMVER(".symver fuse_new_compat22,fuse_new@FUSE_2.2"); |
| 49 | |
| 50 | #endif /* __FreeBSD__ || __NetBSD__ */ |
| 51 | diff --git a/lib/fuse_mt.c b/lib/fuse_mt.c |
| 52 | index f6dbe71..fd5ac23 100644 |
| 53 | --- a/lib/fuse_mt.c |
| 54 | +++ b/lib/fuse_mt.c |
| 55 | @@ -119,4 +119,4 @@ int fuse_loop_mt(struct fuse *f) |
| 56 | return res; |
| 57 | } |
| 58 | |
| 59 | -FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@"); |
| 60 | +FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@FUSE_UNVERSIONED"); |
| 61 | diff --git a/lib/fuse_versionscript b/lib/fuse_versionscript |
| 62 | index 8d91887..de16ab2 100644 |
| 63 | --- a/lib/fuse_versionscript |
| 64 | +++ b/lib/fuse_versionscript |
| 65 | @@ -1,3 +1,6 @@ |
| 66 | +FUSE_UNVERSIONED { |
| 67 | +}; |
| 68 | + |
| 69 | FUSE_2.2 { |
| 70 | global: |
| 71 | fuse_destroy; |
| 72 | diff --git a/lib/helper.c b/lib/helper.c |
| 73 | index b644012..c5349bf 100644 |
| 74 | --- a/lib/helper.c |
| 75 | +++ b/lib/helper.c |
| 76 | @@ -436,10 +436,10 @@ int fuse_mount_compat1(const char *mountpoint, const char *args[]) |
| 77 | return fuse_mount_compat22(mountpoint, NULL); |
| 78 | } |
| 79 | |
| 80 | -FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@"); |
| 81 | +FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@FUSE_UNVERSIONED"); |
| 82 | FUSE_SYMVER(".symver fuse_setup_compat22,fuse_setup@FUSE_2.2"); |
| 83 | -FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@"); |
| 84 | -FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@"); |
| 85 | +FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@FUSE_UNVERSIONED"); |
| 86 | +FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@FUSE_UNVERSIONED"); |
| 87 | FUSE_SYMVER(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2"); |
| 88 | |
| 89 | #endif /* __FreeBSD__ || __NetBSD__ */ |
| 90 | -- |
| 91 | 1.8.1.2 |
| 92 | |