openmp: Add basic library allocator support

Sebastian Huber sebastian.huber@embedded-brains.de
Tue Jun 2 09:26:37 GMT 2020


Hello,

On 19/05/2020 10:24, Jakub Jelinek via Gcc-patches wrote:
> +      gomp_mutex_lock (&allocator_data->lock);
> +      if (__builtin_add_overflow (allocator_data->used_pool_size, new_size,
> +				  &used_pool_size)
> +	  || used_pool_size > allocator_data->pool_size)
> +	{
> +	  gomp_mutex_unlock (&allocator_data->lock);
> +	  goto fail;
> +	}
> +      allocator_data->used_pool_size = used_pool_size;
> +      gomp_mutex_unlock (&allocator_data->lock);
> +#endif
> +      ptr = malloc (new_size);
> +      if (ptr == NULL)
> +	{
> +#ifdef HAVE_SYNC_BUILTINS
> +	  __atomic_add_fetch (&allocator_data->used_pool_size, -new_size,
> +			      MEMMODEL_RELAXED);
> +#else
> +	  gomp_mutex_lock (&allocator_data->lock);
> +	  allocator_data->used_pool_size -= new_size;
> +	  gomp_mutex_unlock (&allocator_data->lock);
> +#endif

with this patch I get the following error for target arm-rtems6:

../../../gnu-mirror-gcc-86b14bb/libgomp/allocator.c: In function 'omp_free':
../../../gnu-mirror-gcc-86b14bb/libgomp/allocator.c:351:42: error: 
'struct omp_mem_header' has no member named 'new_size'
   351 |    allocator_data->used_pool_size -= data->new_size;
       |                                          ^~



More information about the Gcc-patches mailing list