svn commit: r353168 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Hans Petter Selasky
hps at selasky.org
Mon Oct 7 10:39:10 UTC 2019
On 2019-10-07 10:00, Andriy Gapon wrote:
> Author: avg
> Date: Mon Oct 7 08:00:54 2019
> New Revision: 353168
> URL: https://svnweb.freebsd.org/changeset/base/353168
>
> Log:
> ZFS: unconditionally use atomic_swap_64
>
> Previously, the code used a plain store on platforms that lacked
> atomic_swap_64 and possibly some other platforms as the condition worked
> only if atomic_swap_64 was a macro.
>
> MFC after: 1 week
> X-MFC after: r353166, r353167
>
> Modified:
> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c
>
> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c
> ==============================================================================
> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c Mon Oct 7 07:54:34 2019 (r353167)
> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c Mon Oct 7 08:00:54 2019 (r353168)
> @@ -313,12 +313,8 @@ feature_sync(spa_t *spa, zfeature_info_t *feature, uin
> if (feature->fi_feature != SPA_FEATURE_NONE) {
> uint64_t *refcount_cache =
> &spa->spa_feat_refcount_cache[feature->fi_feature];
> -#ifdef atomic_swap_64
> VERIFY3U(*refcount_cache, ==,
> atomic_swap_64(refcount_cache, refcount));
> -#else
> - *refcount_cache = refcount;
> -#endif
> }
>
> if (refcount == 0)
>
Hi,
Is this yours for i386?
You maybe need to include:
/sys/i386/include/atomic.h:atomic_swap_64(volatile uint64_t *p, uint64_t v)
--HPS
> 09:27:46 --- gdtoa_dtoa.po ---
> 09:27:46 --- all_subdir_rescue ---
> 09:27:46 ld: error: undefined symbol: atomic_swap_64
> 09:27:46 >>> referenced by zfeature.c:316 (/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c:316)
> 09:27:46 >>> zfeature.o:(feature_sync) in archive /usr/obj/usr/src/i386.i386/tmp/usr/lib/libzpool.a
> 09:27:46
> 09:27:46 ld: error: undefined symbol: atomic_swap_64
> 09:27:46 >>> referenced by dmu_object.c:195 (/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c:195)
> 09:27:46 >>> dmu_object.o:(dmu_object_alloc_impl) in archive /usr/obj/usr/src/i386.i386/tmp/usr/lib/libzpool.a
> 09:27:46
> 09:27:46 ld: error: undefined symbol: atomic_swap_64
> 09:27:46 >>> referenced by dmu_object.c:149 (/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c:149)
> 09:27:46 >>> dmu_object.o:(dmu_object_alloc_impl) in archive /usr/obj/usr/src/i386.i386/tmp/usr/lib/libzpool.a
> 09:27:46 --- all_subdir_lib ---
> 09:27:46 --- gdtoa_gdtoa.po ---
> 09:27:46 --- gdtoa_dtoa.po ---
More information about the svn-src-all
mailing list