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