fixed FTBS with gcc8
This commit is contained in:
		
							parent
							
								
									18e888157e
								
							
						
					
					
						commit
						03506c65b5
					
				
							
								
								
									
										177
									
								
								libvma-8.0.1-gcc8.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										177
									
								
								libvma-8.0.1-gcc8.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,177 @@ | |||||||
|  | diff -up libvma-8.0.1/src/stats/stats_publisher.cpp.me libvma-8.0.1/src/stats/stats_publisher.cpp
 | ||||||
|  | --- libvma-8.0.1/src/stats/stats_publisher.cpp.me	2018-02-06 17:39:15.618093186 +0100
 | ||||||
|  | +++ libvma-8.0.1/src/stats/stats_publisher.cpp	2018-02-06 17:39:54.488171577 +0100
 | ||||||
|  | @@ -268,7 +268,7 @@ shmem_error:
 | ||||||
|  |  	g_sh_mem_info.fd_sh_stats = -1; | ||||||
|  |  	g_sh_mem_info.p_sh_stats = MAP_FAILED; | ||||||
|  |  	g_sh_mem = &g_local_sh_mem; | ||||||
|  | -	memset(g_sh_mem, 0, sizeof(*g_sh_mem));
 | ||||||
|  | +	memset(static_cast<void*>(g_sh_mem), 0, sizeof(*g_sh_mem));
 | ||||||
|  |  	*p_p_vma_log_level = &g_sh_mem->log_level; | ||||||
|  |  	*p_p_vma_log_details = &g_sh_mem->log_details_level; | ||||||
|  |  	BULLSEYE_EXCLUDE_BLOCK_END | ||||||
|  | @@ -332,7 +332,7 @@ void vma_stats_instance_create_socket_bl
 | ||||||
|  |   | ||||||
|  |  out: | ||||||
|  |  	if (p_skt_stats) { | ||||||
|  | -		memset(p_skt_stats, 0, sizeof(*p_skt_stats));
 | ||||||
|  | +		memset(static_cast<void*>(p_skt_stats), 0, sizeof(*p_skt_stats));
 | ||||||
|  |  		p_skt_stats->mc_grp_map.reset(); | ||||||
|  |                  g_p_stats_data_reader->add_data_reader(local_stats_addr, p_skt_stats, sizeof(socket_stats_t)); | ||||||
|  |  	} | ||||||
|  | diff -up libvma-8.0.1/src/stats/stats_reader.cpp.me libvma-8.0.1/src/stats/stats_reader.cpp
 | ||||||
|  | --- libvma-8.0.1/src/stats/stats_reader.cpp.me	2018-02-06 15:59:12.754199479 +0100
 | ||||||
|  | +++ libvma-8.0.1/src/stats/stats_reader.cpp	2018-02-06 16:39:38.406905488 +0100
 | ||||||
|  | @@ -1525,8 +1525,10 @@ int  init_print_process_stats(sh_mem_inf
 | ||||||
|  |  	sh_mem_t* sh_mem; | ||||||
|  |  	int pid = sh_mem_info.pid; | ||||||
|  |   | ||||||
|  | -	snprintf(sh_mem_info.filename_sh_stats, sizeof(sh_mem_info.filename_sh_stats), "%s/vmastat.%d", g_vma_shmem_dir, pid);
 | ||||||
|  | -	
 | ||||||
|  | +	//snprintf(sh_mem_info.filename_sh_stats, sizeof(sh_mem_info.filename_sh_stats), "%s/vmastat.%d", g_vma_shmem_dir, pid);
 | ||||||
|  | +	const char ib_path_format[] = "%s/vmastat.%d";
 | ||||||
|  | +	snprintf(sh_mem_info.filename_sh_stats, sizeof(sh_mem_info.filename_sh_stats), ib_path_format, g_vma_shmem_dir, pid);
 | ||||||
|  | +
 | ||||||
|  |  	if (user_params.write_auth) | ||||||
|  |  		sh_mem_info.fd_sh_stats = open(sh_mem_info.filename_sh_stats,O_RDWR, S_IRWXU|S_IROTH); | ||||||
|  |  	else | ||||||
|  | diff -up libvma-8.0.1/src/vma/dev/buffer_pool.cpp.me libvma-8.0.1/src/vma/dev/buffer_pool.cpp
 | ||||||
|  | --- libvma-8.0.1/src/vma/dev/buffer_pool.cpp.me	2018-02-06 17:18:48.792336254 +0100
 | ||||||
|  | +++ libvma-8.0.1/src/vma/dev/buffer_pool.cpp	2018-02-06 17:18:25.927276800 +0100
 | ||||||
|  | @@ -166,7 +166,7 @@ buffer_pool::buffer_pool(size_t buffer_c
 | ||||||
|  |  	for (size_t i = 0; i < buffer_count; ++i) { | ||||||
|  |   | ||||||
|  |  		mem_buf_desc_t* ptr_desc_mbdt = (mem_buf_desc_t*)ptr_desc; | ||||||
|  | -		memset(ptr_desc_mbdt, 0, sizeof (*ptr_desc_mbdt));
 | ||||||
|  | +		memset(static_cast<void*>(ptr_desc_mbdt), 0, sizeof (*ptr_desc_mbdt));
 | ||||||
|  |  		mem_buf_desc_t *desc = new (ptr_desc) mem_buf_desc_t(ptr_buff, buf_size); | ||||||
|  |  		desc->serial_num = i; | ||||||
|  |  		desc->p_desc_owner = owner; | ||||||
|  | diff -up libvma-8.0.1/src/vma/infra/subject_observer.cpp.me libvma-8.0.1/src/vma/infra/subject_observer.cpp
 | ||||||
|  | --- libvma-8.0.1/src/vma/infra/subject_observer.cpp.me	2018-02-06 17:38:01.739951162 +0100
 | ||||||
|  | +++ libvma-8.0.1/src/vma/infra/subject_observer.cpp	2018-02-06 17:38:43.712031849 +0100
 | ||||||
|  | @@ -52,11 +52,11 @@ bool subject::register_observer(IN const
 | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |  	auto_unlocker lock(m_lock); | ||||||
|  | -	if (m_observers.count((observer * const)new_observer) > 0) {
 | ||||||
|  | +	if (m_observers.count((observer *)new_observer) > 0) {
 | ||||||
|  |  //		sub_obs_logdbg("[%s] Observer is already registered (%p)", to_str(), new_observer); | ||||||
|  |  		return false; | ||||||
|  |  	} | ||||||
|  | -	m_observers.insert((observer * const)new_observer);
 | ||||||
|  | +	m_observers.insert((observer *)new_observer);
 | ||||||
|  |  //	sub_obs_logdbg("[%s] Successfully registered new_observer %s", to_str(), new_observer->to_str()); | ||||||
|  |  	return true; | ||||||
|  |  } | ||||||
|  | @@ -69,7 +69,7 @@ bool subject::unregister_observer(IN con
 | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |  	auto_unlocker lock(m_lock); | ||||||
|  | -	m_observers.erase((observer * const)old_observer);
 | ||||||
|  | +	m_observers.erase((observer *)old_observer);
 | ||||||
|  |  //	sub_obs_logdbg("[%s] Successfully unregistered old_observer %s",to_str(), old_observer->to_str()); | ||||||
|  |  	return true; | ||||||
|  |  } | ||||||
|  | diff -up libvma-8.0.1/src/vma/proto/L2_address.h.me libvma-8.0.1/src/vma/proto/L2_address.h
 | ||||||
|  | --- libvma-8.0.1/src/vma/proto/L2_address.h.me	2018-02-06 16:40:59.152129368 +0100
 | ||||||
|  | +++ libvma-8.0.1/src/vma/proto/L2_address.h	2018-02-06 16:49:34.787559057 +0100
 | ||||||
|  | @@ -59,7 +59,7 @@ public:
 | ||||||
|  |  	void		set(address_t const address, addrlen_t const len); | ||||||
|  |   | ||||||
|  |  	addrlen_t	get_addrlen() const { return m_len; }; | ||||||
|  | -	address_t	get_address() const { return (const address_t)m_p_raw_address; };
 | ||||||
|  | +	address_t	get_address() const { return (address_t) m_p_raw_address; };
 | ||||||
|  |   | ||||||
|  |  	virtual bool 	compare(L2_address const& other) const; | ||||||
|  |   | ||||||
|  | diff -up libvma-8.0.1/src/vma/proto/mem_buf_desc.h.me libvma-8.0.1/src/vma/proto/mem_buf_desc.h
 | ||||||
|  | diff -up libvma-8.0.1/src/vma/proto/route_rule_table_key.h.me libvma-8.0.1/src/vma/proto/route_rule_table_key.h
 | ||||||
|  | --- libvma-8.0.1/src/vma/proto/route_rule_table_key.h.me	2018-02-06 17:17:44.241168404 +0100
 | ||||||
|  | +++ libvma-8.0.1/src/vma/proto/route_rule_table_key.h	2018-02-06 17:34:50.072582707 +0100
 | ||||||
|  | @@ -36,6 +36,7 @@
 | ||||||
|  |   | ||||||
|  |  #include <stdio.h> | ||||||
|  |  #include <string> | ||||||
|  | +#include <cstring>
 | ||||||
|  |   | ||||||
|  |  #include "vma/util/to_str.h" | ||||||
|  |  #include "vma/util/vtypes.h" | ||||||
|  | @@ -53,13 +54,18 @@ public:
 | ||||||
|  |  	 | ||||||
|  |  	const std::string to_str() const | ||||||
|  |  	{ | ||||||
|  | -		char s[100];
 | ||||||
|  | +		char s[100] = {0};
 | ||||||
|  |  		sprintf(s, "Destination IP:%d.%d.%d.%d", NIPQUAD(m_dst_ip)); | ||||||
|  | -		if (m_src_ip)
 | ||||||
|  | -			sprintf(s, "%s Source IP:%d.%d.%d.%d", s, NIPQUAD(m_src_ip));	
 | ||||||
|  | -		if (m_tos)
 | ||||||
|  | -			sprintf(s, "%s TOS:%u", s, m_tos);
 | ||||||
|  | -			
 | ||||||
|  | +		if (m_src_ip) {
 | ||||||
|  | +			char sx[40] = {0};
 | ||||||
|  | +			sprintf(sx, " Source IP:%d.%d.%d.%d", NIPQUAD(m_src_ip));	
 | ||||||
|  | +			strcat(s, sx);
 | ||||||
|  | +		}
 | ||||||
|  | +		if (m_tos) {
 | ||||||
|  | +			char sx[20] = {0};
 | ||||||
|  | +			sprintf(sx, " TOS:%u", m_tos);
 | ||||||
|  | +			strcat(s, sx);
 | ||||||
|  | +		}	
 | ||||||
|  |  		return(std::string(s)); | ||||||
|  |  	} | ||||||
|  |  	 | ||||||
|  | @@ -85,16 +91,22 @@ public:
 | ||||||
|  |  	size_t operator()(const route_rule_table_key &key) const | ||||||
|  |  	{ | ||||||
|  |  		hash<string>_hash; | ||||||
|  | -		char s[40];
 | ||||||
|  | +		char s[40] = {0};
 | ||||||
|  |  		/* | ||||||
|  |  		Build string from exist parameter (destination IP, source IP, TOS) | ||||||
|  |  		which is unique for different route-rule entries. | ||||||
|  |  		*/ | ||||||
|  |  		sprintf(s, "%d.%d.%d.%d", NIPQUAD(key.get_dst_ip())); | ||||||
|  | -		if (key.get_src_ip())
 | ||||||
|  | -			sprintf(s, "%s %d.%d.%d.%d", s, NIPQUAD(key.get_src_ip()));	
 | ||||||
|  | -		if (key.get_tos())
 | ||||||
|  | -			sprintf(s, "%s %u", s, key.get_tos());		
 | ||||||
|  | +		if (key.get_src_ip()) {
 | ||||||
|  | +			char sx[20] = {0};
 | ||||||
|  | +			sprintf(sx, " %d.%d.%d.%d", NIPQUAD(key.get_src_ip()));
 | ||||||
|  | +			strcat(s, sx);
 | ||||||
|  | +		}
 | ||||||
|  | +		if (key.get_tos()) {
 | ||||||
|  | +			char sx[20] = {0};
 | ||||||
|  | +			sprintf(sx, " %u", key.get_tos());
 | ||||||
|  | +			strcat(s, sx);
 | ||||||
|  | +		}
 | ||||||
|  |  		return _hash(std::string(s));// Use built in hash function for string input. | ||||||
|  |  	} | ||||||
|  |  }; | ||||||
|  | diff -up libvma-8.0.1/src/vma/sock/pipeinfo.cpp.me libvma-8.0.1/src/vma/sock/pipeinfo.cpp
 | ||||||
|  | --- libvma-8.0.1/src/vma/sock/pipeinfo.cpp.me	2018-02-06 17:36:50.905814995 +0100
 | ||||||
|  | +++ libvma-8.0.1/src/vma/sock/pipeinfo.cpp	2018-02-06 17:37:33.543896959 +0100
 | ||||||
|  | @@ -72,7 +72,7 @@ pipeinfo::pipeinfo(int fd) : socket_fd_a
 | ||||||
|  |  		// pi_logdbg("Got NULL from mce_stats_instance_create_socket_block, using local member"); | ||||||
|  |  		m_p_socket_stats = &m_socket_stats; | ||||||
|  |  	} | ||||||
|  | -	memset(m_p_socket_stats, 0, sizeof(*m_p_socket_stats));
 | ||||||
|  | +	memset(static_cast<void*>(m_p_socket_stats), 0, sizeof(*m_p_socket_stats));
 | ||||||
|  |  	m_p_socket_stats->fd = m_fd; | ||||||
|  |  	m_p_socket_stats->b_blocking = m_b_blocking; | ||||||
|  |  	m_p_socket_stats->n_rx_ready_pkt_count = 0; | ||||||
|  | diff -up libvma-8.0.1/src/vma/sock/sockinfo.cpp.me libvma-8.0.1/src/vma/sock/sockinfo.cpp
 | ||||||
|  | --- libvma-8.0.1/src/vma/sock/sockinfo.cpp.me	2018-02-06 17:35:47.210692547 +0100
 | ||||||
|  | +++ libvma-8.0.1/src/vma/sock/sockinfo.cpp	2018-02-06 17:36:07.360731283 +0100
 | ||||||
|  | @@ -85,7 +85,7 @@ sockinfo::sockinfo(int fd):
 | ||||||
|  |   | ||||||
|  |  	m_p_socket_stats = &m_socket_stats; // Save stats as local copy and allow state publisher to copy from this location | ||||||
|  |  	vma_stats_instance_create_socket_block(m_p_socket_stats); | ||||||
|  | -	memset(m_p_socket_stats, 0, sizeof(*m_p_socket_stats));
 | ||||||
|  | +	memset(static_cast<void*>(m_p_socket_stats), 0, sizeof(*m_p_socket_stats));
 | ||||||
|  |  	m_p_socket_stats->fd = m_fd; | ||||||
|  |  	m_p_socket_stats->inode = fd2inode(m_fd); | ||||||
|  |  	m_p_socket_stats->b_blocking = m_b_blocking; | ||||||
|  | diff -up libvma-8.0.1/src/vma/util/sys_vars.h.me libvma-8.0.1/src/vma/util/sys_vars.h
 | ||||||
| @ -9,11 +9,14 @@ Source: http://www.mellanox.com/downloads/Accelerator/%{name}-%{version}.tar.gz | |||||||
| #arm is excluded since libvma fails to compile on arm.  | #arm is excluded since libvma fails to compile on arm.  | ||||||
| #Reason: libvma uses assembly commands that are not supported by arm. | #Reason: libvma uses assembly commands that are not supported by arm. | ||||||
| Patch0: libvma-8.0.1-gcc7.patch | Patch0: libvma-8.0.1-gcc7.patch | ||||||
|  | Patch1: libvma-8.0.1-gcc8.patch | ||||||
| ExcludeArch: %{arm}  | ExcludeArch: %{arm}  | ||||||
| Requires: pam | Requires: pam | ||||||
| Requires(post): /sbin/ldconfig | Requires(post): /sbin/ldconfig | ||||||
| Requires(postun): /sbin/ldconfig | Requires(postun): /sbin/ldconfig | ||||||
| 
 | # rdma-core doesn't not exist on s390x. need to check later | ||||||
|  | # disable it temporary | ||||||
|  | ExcludeArch: s390x | ||||||
| BuildRequires: rdma-core-devel libnl3-devel | BuildRequires: rdma-core-devel libnl3-devel | ||||||
| BuildRequires: automake autoconf libtool | BuildRequires: automake autoconf libtool | ||||||
| 
 | 
 | ||||||
| @ -45,6 +48,7 @@ Tools for collecting and analyzing libvma statistic. | |||||||
| %prep | %prep | ||||||
| %setup -q | %setup -q | ||||||
| %patch0 -p1 -b .gcc7 | %patch0 -p1 -b .gcc7 | ||||||
|  | %patch1 -p1 -b .gcc8 | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| ./autogen.sh | ./autogen.sh | ||||||
| @ -76,8 +80,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la | |||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
| * Mon Feb 05 2018 Than Ngo <than@redhat.com> - 8.0.1-5 | * Mon Feb 05 2018 Than Ngo <than@redhat.com> - 8.0.1-5 | ||||||
| - fixed FTBS with gcc7 | - fixed FTBS with gcc7/gcc8 | ||||||
| - drop BR on dead packages libibverbs,librdmacm, add BR on rdma-core-devel |  | ||||||
| 
 | 
 | ||||||
| * Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.1-4 | * Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.1-4 | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild | - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user