summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--compat_reports/2.3.0_to_2.3.1/compat_report.html572
-rw-r--r--compat_reports/2.3.1_to_2.3.2/compat_report.html682
-rw-r--r--compat_reports/2.3.2_to_2.3.3/compat_report.html2778
-rw-r--r--gd.spec227
-rw-r--r--getlib.sh42
-rw-r--r--libgd-bumpsoname.patch12
-rw-r--r--libgd-flip.patch50
-rw-r--r--libgd-iostream.patch35
9 files changed, 4304 insertions, 96 deletions
diff --git a/.gitignore b/.gitignore
index 1ab5c4f..01f0400 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
+clog
package-*.xml
*.tgz
+*.tar.bz2
*.tar.gz
*.tar.xz
*.tar.xz.asc
diff --git a/compat_reports/2.3.0_to_2.3.1/compat_report.html b/compat_reports/2.3.0_to_2.3.1/compat_report.html
new file mode 100644
index 0000000..f89468d
--- /dev/null
+++ b/compat_reports/2.3.0_to_2.3.1/compat_report.html
@@ -0,0 +1,572 @@
+<!-- kind:binary;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;constant_changes_other:1;tool_version:2.3 -->
+<!-- kind:source;verdict:incompatible;affected:0.4;added:0;removed:2;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;constant_changes_other:1;tool_version:2.3 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width,initial-scale=1" />
+<meta name="keywords" content="libgd, compatibility, API, ABI, report" />
+<meta name="description" content="API/ABI compatibility report for the libgd library between 2.3.0 and 2.3.1 versions" />
+<title>libgd: 2.3.0 to 2.3.1 compatibility report</title>
+<style type="text/css">
+body {
+ font-family:Arial, sans-serif;
+ background-color:White;
+ color:Black;
+}
+hr {
+ color:Black;
+ background-color:Black;
+ height:1px;
+ border:0;
+}
+h1 {
+ margin-bottom:0px;
+ padding-bottom:0px;
+ font-size:1.625em;
+}
+h2 {
+ margin-bottom:0px;
+ padding-bottom:0px;
+ font-size:1.25em;
+ white-space:nowrap;
+}
+span.section {
+ font-weight:bold;
+ cursor:pointer;
+ color:#003E69;
+ white-space:nowrap;
+ margin-left:0.3125em;
+}
+span.new_sign {
+ font-weight:bold;
+ margin-left:1.65em;
+ color:#003E69;
+}
+span.new_sign_lbl {
+ margin-left:3em;
+ font-size:1em;
+ color:Black;
+}
+span:hover.section {
+ color:#336699;
+}
+span.sect_aff {
+ cursor:pointer;
+ padding-left:1.55em;
+ font-size:0.875em;
+ color:#cc3300;
+}
+span.sect_info {
+ cursor:pointer;
+ padding-left:1.55em;
+ font-size:0.875em;
+ color:Black;
+}
+span.ext {
+ font-weight:normal;
+}
+span.h_name {
+ color:#cc3300;
+ font-size:0.875em;
+ font-weight:bold;
+}
+div.h_list, div.lib_list {
+ font-size:0.94em;
+ padding-left:0.4em;
+}
+span.ns {
+ color:#408080;
+ font-size:0.94em;
+}
+span.lib_name {
+ color:Green;
+ font-size:0.875em;
+ font-weight:bold;
+}
+span.iname {
+ font-weight:bold;
+ color:#003E69;
+ margin-left:0.3125em;
+}
+span.iname_b {
+ font-weight:bold;
+}
+span.iname_a {
+ color:#333333;
+ font-weight:bold;
+ font-size:0.94em;
+}
+span.sym_p {
+ font-weight:normal;
+ white-space:normal;
+}
+span.sym_pd {
+ white-space:normal;
+}
+span.sym_p span, span.sym_pd span {
+ white-space:nowrap;
+}
+div.affect {
+ padding-left:1em;
+ padding-bottom:10px;
+ font-size:0.87em;
+ font-style:italic;
+ line-height:0.9em;
+}
+div.affected {
+ padding-left:1.9em;
+ padding-top:10px;
+}
+table.ptable {
+ border-collapse:collapse;
+ border:1px outset black;
+ margin-left:0.95em;
+ margin-top:3px;
+ margin-bottom:3px;
+ width:56.25em;
+}
+table.ptable td {
+ border:1px solid gray;
+ padding:3px;
+ font-size:0.875em;
+ text-align:left;
+ vertical-align:top;
+ max-width:28em;
+ word-wrap:break-word;
+}
+table.ptable th.pn {
+ width:2%;
+}
+table.ptable th.chg {
+ width:47%;
+}
+table.vtable {
+ border-collapse:collapse;
+ border:1px outset black;
+ margin-left:1.9em;
+ margin-top:0.7em;
+}
+table.vtable td {
+ border:1px solid gray;
+ padding:3px;
+ font-size:0.875em;
+ vertical-align:top;
+ max-width:450px;
+ word-wrap:break-word;
+}
+table.ptable th, table.vtable th {
+ background-color:#eeeeee;
+ font-weight:bold;
+ color:#333333;
+ font-family:Verdana, Arial;
+ font-size:0.875em;
+ border:1px solid gray;
+ text-align:center;
+ vertical-align:top;
+ white-space:nowrap;
+ padding:3px;
+}
+table.summary {
+ border-collapse:collapse;
+ border:1px outset black;
+}
+table.summary th {
+ background-color:#eeeeee;
+ font-weight:normal;
+ text-align:left;
+ font-size:0.94em;
+ white-space:nowrap;
+ border:1px inset gray;
+ padding:3px;
+}
+table.summary td {
+ text-align:right;
+ white-space:nowrap;
+ border:1px inset gray;
+ padding:3px 5px 3px 10px;
+}
+span.mngl {
+ padding-left:1em;
+ font-size:0.875em;
+ cursor:text;
+ color:#444444;
+ font-weight:bold;
+}
+span.pleft {
+ padding-left:2.5em;
+}
+span.sym_ver {
+ color:#333333;
+ white-space:nowrap;
+ font-family:"DejaVu Sans Mono", Monospace;
+}
+span.attr {
+ color:#333333;
+ font-weight:normal;
+}
+span.color_p {
+ font-style:italic;
+ color:Brown;
+}
+span.p {
+ font-style:italic;
+}
+span.fp {
+ font-style:italic;
+ background-color:#DCDCDC;
+}
+span.ttype {
+ font-weight:normal;
+}
+span.nowrap {
+ white-space:nowrap;
+}
+span.value {
+ font-weight:bold;
+}
+.passed {
+ background-color:#CCFFCC;
+ font-weight:normal;
+}
+.warning {
+ background-color:#F4F4AF;
+ font-weight:normal;
+}
+.failed {
+ background-color:#FFCCCC;
+ font-weight:normal;
+}
+.new {
+ background-color:#C6DEFF;
+ font-weight:normal;
+}
+.compatible {
+ background-color:#CCFFCC;
+ font-weight:normal;
+}
+.almost_compatible {
+ background-color:#FFDAA3;
+ font-weight:normal;
+}
+.incompatible {
+ background-color:#FFCCCC;
+ font-weight:normal;
+}
+.gray {
+ background-color:#DCDCDC;
+ font-weight:normal;
+}
+.top_ref {
+ font-size:0.69em;
+}
+.footer {
+ font-size:0.75em;
+}
+
+.tabset {
+ float:left;
+}
+a.tab {
+ border:1px solid Black;
+ float:left;
+ margin:0px 5px -1px 0px;
+ padding:3px 5px 3px 5px;
+ position:relative;
+ font-size:0.875em;
+ background-color:#DDD;
+ text-decoration:none;
+ color:Black;
+}
+a.disabled:hover
+{
+ color:Black;
+ background:#EEE;
+}
+a.active:hover
+{
+ color:Black;
+ background:White;
+}
+a.active {
+ border-bottom-color:White;
+ background-color:White;
+}
+div.tab {
+ border-top:1px solid Black;
+ padding:0px;
+ width:100%;
+ clear:both;
+}
+</style>
+<script type="text/javascript" language="JavaScript">
+<!--
+function showContent(header, id)
+{
+ e = document.getElementById(id);
+ if(e.style.display == 'none')
+ {
+ e.style.display = 'block';
+ e.style.visibility = 'visible';
+ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[&minus;]");
+ }
+ else
+ {
+ e.style.display = 'none';
+ e.style.visibility = 'hidden';
+ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
+ }
+}
+function initTabs()
+{
+ var url = window.location.href;
+ if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
+ {
+ var tab1 = document.getElementById('BinaryID');
+ var tab2 = document.getElementById('SourceID');
+ tab1.className='tab disabled';
+ tab2.className='tab active';
+ }
+ var sets = document.getElementsByTagName('div');
+ for (var i = 0; i < sets.length; i++)
+ {
+ if (sets[i].className.indexOf('tabset') != -1)
+ {
+ var tabs = [];
+ var links = sets[i].getElementsByTagName('a');
+ for (var j = 0; j < links.length; j++)
+ {
+ if (links[j].className.indexOf('tab') != -1)
+ {
+ tabs.push(links[j]);
+ links[j].tabs = tabs;
+ var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
+ //reset all tabs on start
+ if (tab)
+ {
+ if (links[j].className.indexOf('active')!=-1) {
+ tab.style.display = 'block';
+ }
+ else {
+ tab.style.display = 'none';
+ }
+ }
+ links[j].onclick = function()
+ {
+ var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
+ if (tab)
+ {
+ //reset all tabs before change
+ for (var k = 0; k < this.tabs.length; k++)
+ {
+ document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
+ this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
+ }
+ this.className = 'tab active';
+ tab.style.display = 'block';
+ // window.location.hash = this.id.replace('ID', '');
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+ if(url.indexOf('#')!=-1) {
+ location.href=location.href;
+ }
+}
+if (window.addEventListener) window.addEventListener('load', initTabs, false);
+else if (window.attachEvent) window.attachEvent('onload', initTabs);
+-->
+</script>
+</head>
+<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libgd</span> library between <span style='color:Red;'>2.3.0</span> and <span style='color:Red;'>2.3.1</span> versions on <span style='color:Blue;'>x86_64</span></h1>
+
+ <br/>
+ <div class='tabset'>
+ <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
+ <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
+ </div><div id='BinaryTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>libgd</td></tr>
+<tr><th>Version #1</th><td>2.3.0</td></tr>
+<tr><th>Version #2</th><td>2.3.1</td></tr>
+<tr><th>Arch</th><td>x86_64</td></tr>
+<tr><th>GCC Version</th><td>10</td></tr>
+<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>10</a></td></tr>
+<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>236 / 58</td></tr>
+<tr><th>Compatibility</th>
+<td class='compatible'>100%</td>
+</tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>1</a></td></tr>
+</table>
+
+<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Constants'></a>
+<h2>Other Changes in Constants <span class='passed'>&nbsp;1&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_1')">
+<span class='ext'>[+]</span> GD_FLIP_HORIZONTAL</span>
+<br/>
+<div id="c_1" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_FLIP_HORIZONTAL</b> with value <b>1</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;10&nbsp;</span></h2><hr/>
+<div class='h_list'>
+entities.h<br/>
+gd.h<br/>
+gd_io.h<br/>
+gdcache.h<br/>
+gdfontg.h<br/>
+gdfontl.h<br/>
+gdfontmb.h<br/>
+gdfonts.h<br/>
+gdfontt.h<br/>
+gdfx.h<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Libraries <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
+<div class='lib_list'>
+libgd.so.3.0.8<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><div id='SourceTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>libgd</td></tr>
+<tr><th>Version #1</th><td>2.3.0</td></tr>
+<tr><th>Version #2</th><td>2.3.1</td></tr>
+<tr><th>Arch</th><td>x86_64</td></tr>
+<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>10</a></td></tr>
+<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>495 / 122</td></tr>
+<tr><th>Compatibility</th>
+<td class='warning'>99.6%</td>
+</tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Source_Removed' style='color:Blue;'>2</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>1</a></td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>1</a></td></tr>
+</table>
+
+<a name='Source_Removed'></a><a name='Source_Withdrawn'></a><h2>Removed Symbols <span class='failed'>&nbsp;2&nbsp;</span></h2><hr/>
+<span class='h_name'>gd_io.h</span><br/>
+<span class="iname">Putchar&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>c</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<span class="iname">Putword&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>w</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a>
+<h2>Problems with Constants, Low Severity <span class='warning'>&nbsp;1&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_2')">
+<span class='ext'>[+]</span> GD_RELEASE_VERSION</span>
+<br/>
+<div id="c_2" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The value of constant <b>GD_RELEASE_VERSION</b> has been changed from <b>0</b> to <b>1</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Constants'></a>
+<h2>Other Changes in Constants <span class='passed'>&nbsp;1&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_3')">
+<span class='ext'>[+]</span> GD_FLIP_HORIZONTAL</span>
+<br/>
+<div id="c_3" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_FLIP_HORIZONTAL</b> with value <b>1</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;10&nbsp;</span></h2><hr/>
+<div class='h_list'>
+entities.h<br/>
+gd.h<br/>
+gd_io.h<br/>
+gdcache.h<br/>
+gdfontg.h<br/>
+gdfontl.h<br/>
+gdfontmb.h<br/>
+gdfonts.h<br/>
+gdfontt.h<br/>
+gdfx.h<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Libraries <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
+<div class='lib_list'>
+libgd.so.3.0.8<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><hr/>
+<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3 &#160;</i>
+</div>
+<br/>
+
+</body></html>
diff --git a/compat_reports/2.3.1_to_2.3.2/compat_report.html b/compat_reports/2.3.1_to_2.3.2/compat_report.html
new file mode 100644
index 0000000..1420324
--- /dev/null
+++ b/compat_reports/2.3.1_to_2.3.2/compat_report.html
@@ -0,0 +1,682 @@
+<!-- kind:binary;verdict:compatible;affected:0;added:16;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;constant_changes_other:3;tool_version:2.3 -->
+<!-- kind:source;verdict:compatible;affected:0;added:16;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;constant_changes_other:3;tool_version:2.3 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width,initial-scale=1" />
+<meta name="keywords" content="libgd, compatibility, API, ABI, report" />
+<meta name="description" content="API/ABI compatibility report for the libgd library between 2.3.1 and 2.3.2 versions" />
+<title>libgd: 2.3.1 to 2.3.2 compatibility report</title>
+<style type="text/css">
+body {
+ font-family:Arial, sans-serif;
+ background-color:White;
+ color:Black;
+}
+hr {
+ color:Black;
+ background-color:Black;
+ height:1px;
+ border:0;
+}
+h1 {
+ margin-bottom:0px;
+ padding-bottom:0px;
+ font-size:1.625em;
+}
+h2 {
+ margin-bottom:0px;
+ padding-bottom:0px;
+ font-size:1.25em;
+ white-space:nowrap;
+}
+span.section {
+ font-weight:bold;
+ cursor:pointer;
+ color:#003E69;
+ white-space:nowrap;
+ margin-left:0.3125em;
+}
+span.new_sign {
+ font-weight:bold;
+ margin-left:1.65em;
+ color:#003E69;
+}
+span.new_sign_lbl {
+ margin-left:3em;
+ font-size:1em;
+ color:Black;
+}
+span:hover.section {
+ color:#336699;
+}
+span.sect_aff {
+ cursor:pointer;
+ padding-left:1.55em;
+ font-size:0.875em;
+ color:#cc3300;
+}
+span.sect_info {
+ cursor:pointer;
+ padding-left:1.55em;
+ font-size:0.875em;
+ color:Black;
+}
+span.ext {
+ font-weight:normal;
+}
+span.h_name {
+ color:#cc3300;
+ font-size:0.875em;
+ font-weight:bold;
+}
+div.h_list, div.lib_list {
+ font-size:0.94em;
+ padding-left:0.4em;
+}
+span.ns {
+ color:#408080;
+ font-size:0.94em;
+}
+span.lib_name {
+ color:Green;
+ font-size:0.875em;
+ font-weight:bold;
+}
+span.iname {
+ font-weight:bold;
+ color:#003E69;
+ margin-left:0.3125em;
+}
+span.iname_b {
+ font-weight:bold;
+}
+span.iname_a {
+ color:#333333;
+ font-weight:bold;
+ font-size:0.94em;
+}
+span.sym_p {
+ font-weight:normal;
+ white-space:normal;
+}
+span.sym_pd {
+ white-space:normal;
+}
+span.sym_p span, span.sym_pd span {
+ white-space:nowrap;
+}
+div.affect {
+ padding-left:1em;
+ padding-bottom:10px;
+ font-size:0.87em;
+ font-style:italic;
+ line-height:0.9em;
+}
+div.affected {
+ padding-left:1.9em;
+ padding-top:10px;
+}
+table.ptable {
+ border-collapse:collapse;
+ border:1px outset black;
+ margin-left:0.95em;
+ margin-top:3px;
+ margin-bottom:3px;
+ width:56.25em;
+}
+table.ptable td {
+ border:1px solid gray;
+ padding:3px;
+ font-size:0.875em;
+ text-align:left;
+ vertical-align:top;
+ max-width:28em;
+ word-wrap:break-word;
+}
+table.ptable th.pn {
+ width:2%;
+}
+table.ptable th.chg {
+ width:47%;
+}
+table.vtable {
+ border-collapse:collapse;
+ border:1px outset black;
+ margin-left:1.9em;
+ margin-top:0.7em;
+}
+table.vtable td {
+ border:1px solid gray;
+ padding:3px;
+ font-size:0.875em;
+ vertical-align:top;
+ max-width:450px;
+ word-wrap:break-word;
+}
+table.ptable th, table.vtable th {
+ background-color:#eeeeee;
+ font-weight:bold;
+ color:#333333;
+ font-family:Verdana, Arial;
+ font-size:0.875em;
+ border:1px solid gray;
+ text-align:center;
+ vertical-align:top;
+ white-space:nowrap;
+ padding:3px;
+}
+table.summary {
+ border-collapse:collapse;
+ border:1px outset black;
+}
+table.summary th {
+ background-color:#eeeeee;
+ font-weight:normal;
+ text-align:left;
+ font-size:0.94em;
+ white-space:nowrap;
+ border:1px inset gray;
+ padding:3px;
+}
+table.summary td {
+ text-align:right;
+ white-space:nowrap;
+ border:1px inset gray;
+ padding:3px 5px 3px 10px;
+}
+span.mngl {
+ padding-left:1em;
+ font-size:0.875em;
+ cursor:text;
+ color:#444444;
+ font-weight:bold;
+}
+span.pleft {
+ padding-left:2.5em;
+}
+span.sym_ver {
+ color:#333333;
+ white-space:nowrap;
+ font-family:"DejaVu Sans Mono", Monospace;
+}
+span.attr {
+ color:#333333;
+ font-weight:normal;
+}
+span.color_p {
+ font-style:italic;
+ color:Brown;
+}
+span.p {
+ font-style:italic;
+}
+span.fp {
+ font-style:italic;
+ background-color:#DCDCDC;
+}
+span.ttype {
+ font-weight:normal;
+}
+span.nowrap {
+ white-space:nowrap;
+}
+span.value {
+ font-weight:bold;
+}
+.passed {
+ background-color:#CCFFCC;
+ font-weight:normal;
+}
+.warning {
+ background-color:#F4F4AF;
+ font-weight:normal;
+}
+.failed {
+ background-color:#FFCCCC;
+ font-weight:normal;
+}
+.new {
+ background-color:#C6DEFF;
+ font-weight:normal;
+}
+.compatible {
+ background-color:#CCFFCC;
+ font-weight:normal;
+}
+.almost_compatible {
+ background-color:#FFDAA3;
+ font-weight:normal;
+}
+.incompatible {
+ background-color:#FFCCCC;
+ font-weight:normal;
+}
+.gray {
+ background-color:#DCDCDC;
+ font-weight:normal;
+}
+.top_ref {
+ font-size:0.69em;
+}
+.footer {
+ font-size:0.75em;
+}
+
+.tabset {
+ float:left;
+}
+a.tab {
+ border:1px solid Black;
+ float:left;
+ margin:0px 5px -1px 0px;
+ padding:3px 5px 3px 5px;
+ position:relative;
+ font-size:0.875em;
+ background-color:#DDD;
+ text-decoration:none;
+ color:Black;
+}
+a.disabled:hover
+{
+ color:Black;
+ background:#EEE;
+}
+a.active:hover
+{
+ color:Black;
+ background:White;
+}
+a.active {
+ border-bottom-color:White;
+ background-color:White;
+}
+div.tab {
+ border-top:1px solid Black;
+ padding:0px;
+ width:100%;
+ clear:both;
+}
+</style>
+<script type="text/javascript" language="JavaScript">
+<!--
+function showContent(header, id)
+{
+ e = document.getElementById(id);
+ if(e.style.display == 'none')
+ {
+ e.style.display = 'block';
+ e.style.visibility = 'visible';
+ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[&minus;]");
+ }
+ else
+ {
+ e.style.display = 'none';
+ e.style.visibility = 'hidden';
+ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
+ }
+}
+function initTabs()
+{
+ var url = window.location.href;
+ if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
+ {
+ var tab1 = document.getElementById('BinaryID');
+ var tab2 = document.getElementById('SourceID');
+ tab1.className='tab disabled';
+ tab2.className='tab active';
+ }
+ var sets = document.getElementsByTagName('div');
+ for (var i = 0; i < sets.length; i++)
+ {
+ if (sets[i].className.indexOf('tabset') != -1)
+ {
+ var tabs = [];
+ var links = sets[i].getElementsByTagName('a');
+ for (var j = 0; j < links.length; j++)
+ {
+ if (links[j].className.indexOf('tab') != -1)
+ {
+ tabs.push(links[j]);
+ links[j].tabs = tabs;
+ var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
+ //reset all tabs on start
+ if (tab)
+ {
+ if (links[j].className.indexOf('active')!=-1) {
+ tab.style.display = 'block';
+ }
+ else {
+ tab.style.display = 'none';
+ }
+ }
+ links[j].onclick = function()
+ {
+ var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
+ if (tab)
+ {
+ //reset all tabs before change
+ for (var k = 0; k < this.tabs.length; k++)
+ {
+ document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
+ this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
+ }
+ this.className = 'tab active';
+ tab.style.display = 'block';
+ // window.location.hash = this.id.replace('ID', '');
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+ if(url.indexOf('#')!=-1) {
+ location.href=location.href;
+ }
+}
+if (window.addEventListener) window.addEventListener('load', initTabs, false);
+else if (window.attachEvent) window.attachEvent('onload', initTabs);
+-->
+</script>
+</head>
+<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libgd</span> library between <span style='color:Red;'>2.3.1</span> and <span style='color:Red;'>2.3.2</span> versions on <span style='color:Blue;'>x86_64</span></h1>
+
+ <br/>
+ <div class='tabset'>
+ <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
+ <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
+ </div><div id='BinaryTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>libgd</td></tr>
+<tr><th>Version #1</th><td>2.3.1</td></tr>
+<tr><th>Version #2</th><td>2.3.2</td></tr>
+<tr><th>Arch</th><td>x86_64</td></tr>
+<tr><th>GCC Version</th><td>10</td></tr>
+<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>10</a></td></tr>
+<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>236 / 58</td></tr>
+<tr><th>Compatibility</th>
+<td class='compatible'>100%</td>
+</tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>16</a></td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>3</a></td></tr>
+</table>
+
+<a name='Binary_Added'></a><h2>Added Symbols <span class='new'>&nbsp;16&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span>, <span class='lib_name'>libgd.so.3.0.10</span><br/>
+<span class="iname">gdImageAvif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>FILE* <span class='color_p'>outFile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageAvifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>FILE* <span class='color_p'>outFile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageAvifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>size</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageAvifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>size</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromAvif&#160;<span class='sym_p'><span>(&#160;FILE* <span class='color_p'>inFile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromAvifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromAvifPtr&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>size</span></span>, <span>void* <span class='color_p'>data</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromHeif&#160;<span class='sym_p'><span>(&#160;FILE* <span class='color_p'>inFile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromHeifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromHeifPtr&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>size</span></span>, <span>void* <span class='color_p'>data</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>FILE* <span class='color_p'>outFile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>FILE* <span class='color_p'>outFile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>size</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>size</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span></span><br/>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Constants'></a>
+<h2>Other Changes in Constants <span class='passed'>&nbsp;3&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_1')">
+<span class='ext'>[+]</span> GD_HEIF_CHROMA_420</span>
+<br/>
+<div id="c_1" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_HEIF_CHROMA_420</b> with value <b>&quot;420&quot;</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_2')">
+<span class='ext'>[+]</span> GD_HEIF_CHROMA_422</span>
+<br/>
+<div id="c_2" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_HEIF_CHROMA_422</b> with value <b>&quot;422&quot;</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_3')">
+<span class='ext'>[+]</span> GD_HEIF_CHROMA_444</span>
+<br/>
+<div id="c_3" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_HEIF_CHROMA_444</b> with value <b>&quot;444&quot;</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;10&nbsp;</span></h2><hr/>
+<div class='h_list'>
+entities.h<br/>
+gd.h<br/>
+gd_io.h<br/>
+gdcache.h<br/>
+gdfontg.h<br/>
+gdfontl.h<br/>
+gdfontmb.h<br/>
+gdfonts.h<br/>
+gdfontt.h<br/>
+gdfx.h<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Libraries <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
+<div class='lib_list'>
+libgd.so.3.0.9<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><div id='SourceTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>libgd</td></tr>
+<tr><th>Version #1</th><td>2.3.1</td></tr>
+<tr><th>Version #2</th><td>2.3.2</td></tr>
+<tr><th>Arch</th><td>x86_64</td></tr>
+<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>10</a></td></tr>
+<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>493 / 122</td></tr>
+<tr><th>Compatibility</th>
+<td class='compatible'>100%</td>
+</tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>16</a></td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>1</a></td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>3</a></td></tr>
+</table>
+
+<a name='Source_Added'></a><h2>Added Symbols <span class='new'>&nbsp;16&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="iname">gdImageAvif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>FILE* <span class='color_p'>outFile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageAvifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>FILE* <span class='color_p'>outFile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageAvifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>size</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageAvifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>size</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromAvif&#160;<span class='sym_p'><span>(&#160;FILE* <span class='color_p'>inFile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromAvifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromAvifPtr&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>size</span></span>, <span>void* <span class='color_p'>data</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromHeif&#160;<span class='sym_p'><span>(&#160;FILE* <span class='color_p'>inFile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromHeifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageCreateFromHeifPtr&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>size</span></span>, <span>void* <span class='color_p'>data</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>FILE* <span class='color_p'>outFile</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>FILE* <span class='color_p'>outFile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>size</span></span>&#160;)</span></span><br/>
+<span class="iname">gdImageHeifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>size</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span></span><br/>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a>
+<h2>Problems with Constants, Low Severity <span class='warning'>&nbsp;1&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_4')">
+<span class='ext'>[+]</span> GD_RELEASE_VERSION</span>
+<br/>
+<div id="c_4" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The value of constant <b>GD_RELEASE_VERSION</b> has been changed from <b>1</b> to <b>2</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Constants'></a>
+<h2>Other Changes in Constants <span class='passed'>&nbsp;3&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_5')">
+<span class='ext'>[+]</span> GD_HEIF_CHROMA_420</span>
+<br/>
+<div id="c_5" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_HEIF_CHROMA_420</b> with value <b>&quot;420&quot;</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_6')">
+<span class='ext'>[+]</span> GD_HEIF_CHROMA_422</span>
+<br/>
+<div id="c_6" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_HEIF_CHROMA_422</b> with value <b>&quot;422&quot;</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_7')">
+<span class='ext'>[+]</span> GD_HEIF_CHROMA_444</span>
+<br/>
+<div id="c_7" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_HEIF_CHROMA_444</b> with value <b>&quot;444&quot;</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;10&nbsp;</span></h2><hr/>
+<div class='h_list'>
+entities.h<br/>
+gd.h<br/>
+gd_io.h<br/>
+gdcache.h<br/>
+gdfontg.h<br/>
+gdfontl.h<br/>
+gdfontmb.h<br/>
+gdfonts.h<br/>
+gdfontt.h<br/>
+gdfx.h<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Libraries <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
+<div class='lib_list'>
+libgd.so.3.0.9<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><hr/>
+<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3 &#160;</i>
+</div>
+<br/>
+
+</body></html>
diff --git a/compat_reports/2.3.2_to_2.3.3/compat_report.html b/compat_reports/2.3.2_to_2.3.3/compat_report.html
new file mode 100644
index 0000000..d47f7e0
--- /dev/null
+++ b/compat_reports/2.3.2_to_2.3.3/compat_report.html
@@ -0,0 +1,2778 @@
+<!-- kind:binary;verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:9;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:29;changed_constants:2;type_changes_other:8;constant_changes_other:1;tool_version:2.3 -->
+<!-- kind:source;verdict:incompatible;affected:0.2;added:19;removed:1;type_problems_high:0;type_problems_medium:0;type_problems_low:8;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:38;changed_constants:3;type_changes_other:9;constant_changes_other:7;tool_version:2.3 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width,initial-scale=1" />
+<meta name="keywords" content="libgd, compatibility, API, ABI, report" />
+<meta name="description" content="API/ABI compatibility report for the libgd library between 2.3.2 and 2.3.3 versions" />
+<title>libgd: 2.3.2 to 2.3.3 compatibility report</title>
+<style type="text/css">
+body {
+ font-family:Arial, sans-serif;
+ background-color:White;
+ color:Black;
+}
+hr {
+ color:Black;
+ background-color:Black;
+ height:1px;
+ border:0;
+}
+h1 {
+ margin-bottom:0px;
+ padding-bottom:0px;
+ font-size:1.625em;
+}
+h2 {
+ margin-bottom:0px;
+ padding-bottom:0px;
+ font-size:1.25em;
+ white-space:nowrap;
+}
+span.section {
+ font-weight:bold;
+ cursor:pointer;
+ color:#003E69;
+ white-space:nowrap;
+ margin-left:0.3125em;
+}
+span.new_sign {
+ font-weight:bold;
+ margin-left:1.65em;
+ color:#003E69;
+}
+span.new_sign_lbl {
+ margin-left:3em;
+ font-size:1em;
+ color:Black;
+}
+span:hover.section {
+ color:#336699;
+}
+span.sect_aff {
+ cursor:pointer;
+ padding-left:1.55em;
+ font-size:0.875em;
+ color:#cc3300;
+}
+span.sect_info {
+ cursor:pointer;
+ padding-left:1.55em;
+ font-size:0.875em;
+ color:Black;
+}
+span.ext {
+ font-weight:normal;
+}
+span.h_name {
+ color:#cc3300;
+ font-size:0.875em;
+ font-weight:bold;
+}
+div.h_list, div.lib_list {
+ font-size:0.94em;
+ padding-left:0.4em;
+}
+span.ns {
+ color:#408080;
+ font-size:0.94em;
+}
+span.lib_name {
+ color:Green;
+ font-size:0.875em;
+ font-weight:bold;
+}
+span.iname {
+ font-weight:bold;
+ color:#003E69;
+ margin-left:0.3125em;
+}
+span.iname_b {
+ font-weight:bold;
+}
+span.iname_a {
+ color:#333333;
+ font-weight:bold;
+ font-size:0.94em;
+}
+span.sym_p {
+ font-weight:normal;
+ white-space:normal;
+}
+span.sym_pd {
+ white-space:normal;
+}
+span.sym_p span, span.sym_pd span {
+ white-space:nowrap;
+}
+div.affect {
+ padding-left:1em;
+ padding-bottom:10px;
+ font-size:0.87em;
+ font-style:italic;
+ line-height:0.9em;
+}
+div.affected {
+ padding-left:1.9em;
+ padding-top:10px;
+}
+table.ptable {
+ border-collapse:collapse;
+ border:1px outset black;
+ margin-left:0.95em;
+ margin-top:3px;
+ margin-bottom:3px;
+ width:56.25em;
+}
+table.ptable td {
+ border:1px solid gray;
+ padding:3px;
+ font-size:0.875em;
+ text-align:left;
+ vertical-align:top;
+ max-width:28em;
+ word-wrap:break-word;
+}
+table.ptable th.pn {
+ width:2%;
+}
+table.ptable th.chg {
+ width:47%;
+}
+table.vtable {
+ border-collapse:collapse;
+ border:1px outset black;
+ margin-left:1.9em;
+ margin-top:0.7em;
+}
+table.vtable td {
+ border:1px solid gray;
+ padding:3px;
+ font-size:0.875em;
+ vertical-align:top;
+ max-width:450px;
+ word-wrap:break-word;
+}
+table.ptable th, table.vtable th {
+ background-color:#eeeeee;
+ font-weight:bold;
+ color:#333333;
+ font-family:Verdana, Arial;
+ font-size:0.875em;
+ border:1px solid gray;
+ text-align:center;
+ vertical-align:top;
+ white-space:nowrap;
+ padding:3px;
+}
+table.summary {
+ border-collapse:collapse;
+ border:1px outset black;
+}
+table.summary th {
+ background-color:#eeeeee;
+ font-weight:normal;
+ text-align:left;
+ font-size:0.94em;
+ white-space:nowrap;
+ border:1px inset gray;
+ padding:3px;
+}
+table.summary td {
+ text-align:right;
+ white-space:nowrap;
+ border:1px inset gray;
+ padding:3px 5px 3px 10px;
+}
+span.mngl {
+ padding-left:1em;
+ font-size:0.875em;
+ cursor:text;
+ color:#444444;
+ font-weight:bold;
+}
+span.pleft {
+ padding-left:2.5em;
+}
+span.sym_ver {
+ color:#333333;
+ white-space:nowrap;
+ font-family:"DejaVu Sans Mono", Monospace;
+}
+span.attr {
+ color:#333333;
+ font-weight:normal;
+}
+span.color_p {
+ font-style:italic;
+ color:Brown;
+}
+span.p {
+ font-style:italic;
+}
+span.fp {
+ font-style:italic;
+ background-color:#DCDCDC;
+}
+span.ttype {
+ font-weight:normal;
+}
+span.nowrap {
+ white-space:nowrap;
+}
+span.value {
+ font-weight:bold;
+}
+.passed {
+ background-color:#CCFFCC;
+ font-weight:normal;
+}
+.warning {
+ background-color:#F4F4AF;
+ font-weight:normal;
+}
+.failed {
+ background-color:#FFCCCC;
+ font-weight:normal;
+}
+.new {
+ background-color:#C6DEFF;
+ font-weight:normal;
+}
+.compatible {
+ background-color:#CCFFCC;
+ font-weight:normal;
+}
+.almost_compatible {
+ background-color:#FFDAA3;
+ font-weight:normal;
+}
+.incompatible {
+ background-color:#FFCCCC;
+ font-weight:normal;
+}
+.gray {
+ background-color:#DCDCDC;
+ font-weight:normal;
+}
+.top_ref {
+ font-size:0.69em;
+}
+.footer {
+ font-size:0.75em;
+}
+
+.tabset {
+ float:left;
+}
+a.tab {
+ border:1px solid Black;
+ float:left;
+ margin:0px 5px -1px 0px;
+ padding:3px 5px 3px 5px;
+ position:relative;
+ font-size:0.875em;
+ background-color:#DDD;
+ text-decoration:none;
+ color:Black;
+}
+a.disabled:hover
+{
+ color:Black;
+ background:#EEE;
+}
+a.active:hover
+{
+ color:Black;
+ background:White;
+}
+a.active {
+ border-bottom-color:White;
+ background-color:White;
+}
+div.tab {
+ border-top:1px solid Black;
+ padding:0px;
+ width:100%;
+ clear:both;
+}
+</style>
+<script type="text/javascript" language="JavaScript">
+<!--
+function showContent(header, id)
+{
+ e = document.getElementById(id);
+ if(e.style.display == 'none')
+ {
+ e.style.display = 'block';
+ e.style.visibility = 'visible';
+ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[&minus;]");
+ }
+ else
+ {
+ e.style.display = 'none';
+ e.style.visibility = 'hidden';
+ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
+ }
+}
+function initTabs()
+{
+ var url = window.location.href;
+ if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
+ {
+ var tab1 = document.getElementById('BinaryID');
+ var tab2 = document.getElementById('SourceID');
+ tab1.className='tab disabled';
+ tab2.className='tab active';
+ }
+ var sets = document.getElementsByTagName('div');
+ for (var i = 0; i < sets.length; i++)
+ {
+ if (sets[i].className.indexOf('tabset') != -1)
+ {
+ var tabs = [];
+ var links = sets[i].getElementsByTagName('a');
+ for (var j = 0; j < links.length; j++)
+ {
+ if (links[j].className.indexOf('tab') != -1)
+ {
+ tabs.push(links[j]);
+ links[j].tabs = tabs;
+ var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
+ //reset all tabs on start
+ if (tab)
+ {
+ if (links[j].className.indexOf('active')!=-1) {
+ tab.style.display = 'block';
+ }
+ else {
+ tab.style.display = 'none';
+ }
+ }
+ links[j].onclick = function()
+ {
+ var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
+ if (tab)
+ {
+ //reset all tabs before change
+ for (var k = 0; k < this.tabs.length; k++)
+ {
+ document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
+ this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
+ }
+ this.className = 'tab active';
+ tab.style.display = 'block';
+ // window.location.hash = this.id.replace('ID', '');
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+ if(url.indexOf('#')!=-1) {
+ location.href=location.href;
+ }
+}
+if (window.addEventListener) window.addEventListener('load', initTabs, false);
+else if (window.attachEvent) window.attachEvent('onload', initTabs);
+-->
+</script>
+</head>
+<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libgd</span> library between <span style='color:Red;'>2.3.2</span> and <span style='color:Red;'>2.3.3</span> versions on <span style='color:Blue;'>x86_64</span></h1>
+
+ <br/>
+ <div class='tabset'>
+ <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
+ <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
+ </div><div id='BinaryTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>libgd</td></tr>
+<tr><th>Version #1</th><td>2.3.2</td></tr>
+<tr><th>Version #2</th><td>2.3.3</td></tr>
+<tr><th>Arch</th><td>x86_64</td></tr>
+<tr><th>GCC Version</th><td>10</td></tr>
+<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>10</a></td></tr>
+<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>251 / 59</td></tr>
+<tr><th>Compatibility</th>
+<td class='compatible'>100%</td>
+</tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>9</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Symbol_Binary_Problems_Low' style='color:Blue;'>29</a></td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>2</a></td></tr>
+<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Types' style='color:Blue;'>8</a></td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>1</a></td></tr>
+</table>
+
+<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a>
+<h2>Problems with Data Types, Low Severity <span class='warning'>&nbsp;9&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_1')">
+<span class='ext'>[+]</span> <span class='ttype'>enum</span> gdInterpolationMethod <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_1" style="display:none;">
+<table class='ptable'><tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Value of member <b>GD_METHOD_COUNT</b> has been changed from <b>23</b> to <b>30</b>.</td>
+<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')">
+[+] affected symbols: 200 (79.7%)</span>
+<div id="c_2" style="display:none;">
+<div class='affected'><span class='iname_a'>gdImageAABlend&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAlphaBlending&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>alphaBlendingArg</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageArc&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>cx</i></span>, <span>int <i>cy</i></span>, <span>int <i>w</i></span>, <span>int <i>h</i></span>, <span>int <i>s</i></span>, <span>int <i>e</i></span>, <span>int <i>color</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtx* <i>outfile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageBmp&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageBmpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtxPtr <i>out</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_3')">
+<span class='ext'>[+]</span> <span class='ttype'>typedef</span> interpolation_method <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_3" style="display:none;">
+<table class='ptable'><tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Base type has been changed from <b>double(*)(double)</b> to <span class='value'>double(*)(double, double)</span>.</td>
+<td>Replacement of the base data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')">
+[+] affected symbols: 200 (79.7%)</span>
+<div id="c_4" style="display:none;">
+<div class='affected'><span class='iname_a'>gdImageAABlend&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAlphaBlending&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>alphaBlendingArg</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageArc&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>cx</i></span>, <span>int <i>cy</i></span>, <span>int <i>w</i></span>, <span>int <i>h</i></span>, <span>int <i>s</i></span>, <span>int <i>e</i></span>, <span>int <i>color</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtx* <i>outfile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageBmp&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageBmpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtxPtr <i>out</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>gd_io.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_5')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> gdIOCtx <span class='warning'>&nbsp;7&nbsp;</span></span>
+<br/>
+<div id="c_5" style="display:none;">
+<table class='ptable'><tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Base type of field <b>gd_free</b> has been changed from <span class='value'>void(*)(struct gdIOCtx*)</span> to <b>void(*)(gdIOCtxPtr)</b>.</td>
+<td>Replacement of field base type may indicate a change in the semantic meaning of the field.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Base type of field <b>getBuf</b> has been changed from <span class='value'>int(*)(struct gdIOCtx*, void*, int)</span> to <span class='value'>int(*)(gdIOCtxPtr, void*, int)</span>.</td>
+<td>Replacement of field base type may indicate a change in the semantic meaning of the field.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Base type of field <b>getC</b> has been changed from <span class='value'>int(*)(struct gdIOCtx*)</span> to <b>int(*)(gdIOCtxPtr)</b>.</td>
+<td>Replacement of field base type may indicate a change in the semantic meaning of the field.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Base type of field <b>putBuf</b> has been changed from <span class='value'>int(*)(struct gdIOCtx*, void const*, int)</span> to <span class='value'>int(*)(gdIOCtxPtr, void const*, int)</span>.</td>
+<td>Replacement of field base type may indicate a change in the semantic meaning of the field.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Base type of field <b>putC</b> has been changed from <span class='value'>void(*)(struct gdIOCtx*, int)</span> to <span class='value'>void(*)(gdIOCtxPtr, int)</span>.</td>
+<td>Replacement of field base type may indicate a change in the semantic meaning of the field.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>Base type of field <b>seek</b> has been changed from <span class='value'>int(*)(struct gdIOCtx*, int)</span> to <span class='value'>int(*)(gdIOCtxPtr, int)</span>.</td>
+<td>Replacement of field base type may indicate a change in the semantic meaning of the field.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>Base type of field <b>tell</b> has been changed from <span class='value'>long(*)(struct gdIOCtx*)</span> to <b>long(*)(gdIOCtxPtr)</b>.</td>
+<td>Replacement of field base type may indicate a change in the semantic meaning of the field.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')">
+[+] affected symbols: 33 (13.1%)</span>
+<div id="c_6" style="display:none;">
+<div class='affected'><span class='iname_a'>gdDPExtractData&#160;<span class='sym_p'><span>(&#160;struct gdIOCtx* <span class='fp'>ctx</span></span>, <span>int* <i>size</i></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;ctx&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <i>im</i></span>, <span>gdIOCtx* <span class='fp'>outfile</span></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;outfile&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageBmpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <i>im</i></span>, <span>gdIOCtxPtr <span class='fp'>out</span></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;out&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageCreateFromAvifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='fp'>infile</span></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;infile&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageCreateFromBmpCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='fp'>infile</span></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;infile&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageCreateFromGd2Ctx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='fp'>in</span></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;in&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageCreateFromGd2PartCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='fp'>in</span></span>, <span>int <i>srcx</i></span>, <span>int <i>srcy</i></span>, <span>int <i>w</i></span>, <span>int <i>h</i></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;in&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageCreateFromGdCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='fp'>in</span></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;in&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageCreateFromGifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='fp'>in</span></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;in&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageCreateFromHeifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='fp'>infile</span></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;infile&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Symbol_Binary_Problems_Low'></a><a name='Interface_Binary_Problems_Low'></a>
+<h2>Problems with Symbols, Low Severity <span class='warning'>&nbsp;29&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span>, <span class='lib_name'>libgd.so.3.0.10</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_7')">
+<span class='ext'>[+]</span> gdDPExtractData&#160;<span class='sym_p'><span>(&#160;struct gdIOCtx* <span class='color_p'>ctx</span></span>, <span>int* <span class='color_p'>size</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_7" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdDPExtractData&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>ctx</span></span>, <span>int* <span class='color_p'>size</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>ctx</b> has been changed from <span class='value'>struct gdIOCtx*</span> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_8')">
+<span class='ext'>[+]</span> gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_8" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>outfile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_9')">
+<span class='ext'>[+]</span> gdImageCreateFromAvifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_9" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromAvifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_10')">
+<span class='ext'>[+]</span> gdImageCreateFromHeifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_10" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromHeifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_11')">
+<span class='ext'>[+]</span> gdImageCreateFromJpegCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_11" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromJpegCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_12')">
+<span class='ext'>[+]</span> gdImageCreateFromJpegCtxEx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>, <span>int <span class='color_p'>ignore_warning</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_12" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromJpegCtxEx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>, <span>int <span class='color_p'>ignore_warning</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_13')">
+<span class='ext'>[+]</span> gdImageCreateFromTgaCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_13" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromTgaCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_14')">
+<span class='ext'>[+]</span> gdImageCreateFromTiffCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_14" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromTiffCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_15')">
+<span class='ext'>[+]</span> gdImageCreateFromWBMPCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_15" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromWBMPCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_16')">
+<span class='ext'>[+]</span> gdImageCreateFromWebpCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_16" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromWebpCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_17')">
+<span class='ext'>[+]</span> gdImageGifAnimAddCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>, <span>int <span class='color_p'>LocalCM</span></span>, <span>int <span class='color_p'>LeftOfs</span></span>, <span>int <span class='color_p'>TopOfs</span></span>, <span>int <span class='color_p'>Delay</span></span>, <span>int <span class='color_p'>Disposal</span></span>, <span>gdImagePtr <span class='color_p'>previm</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_17" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageGifAnimAddCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>, <span>int <span class='color_p'>LocalCM</span></span>, <span>int <span class='color_p'>LeftOfs</span></span>, <span>int <span class='color_p'>TopOfs</span></span>, <span>int <span class='color_p'>Delay</span></span>, <span>int <span class='color_p'>Disposal</span></span>, <span>gdImagePtr <span class='color_p'>previm</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_18')">
+<span class='ext'>[+]</span> gdImageGifAnimBeginCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>, <span>int <span class='color_p'>GlobalCM</span></span>, <span>int <span class='color_p'>Loops</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_18" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageGifAnimBeginCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>, <span>int <span class='color_p'>GlobalCM</span></span>, <span>int <span class='color_p'>Loops</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_19')">
+<span class='ext'>[+]</span> gdImageGifAnimEndCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_19" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageGifAnimEndCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_20')">
+<span class='ext'>[+]</span> gdImageGifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_20" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageGifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_21')">
+<span class='ext'>[+]</span> gdImageHeifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_21" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageHeifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>outfile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_22')">
+<span class='ext'>[+]</span> gdImageJpegCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>, <span>int <span class='color_p'>quality</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_22" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageJpegCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>, <span>int <span class='color_p'>quality</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_23')">
+<span class='ext'>[+]</span> gdImagePngCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_23" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImagePngCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_24')">
+<span class='ext'>[+]</span> gdImagePngCtxEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>, <span>int <span class='color_p'>level</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_24" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImagePngCtxEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>, <span>int <span class='color_p'>level</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_25')">
+<span class='ext'>[+]</span> gdImageStringFT&#160;<span class='sym_p'><span>(&#160;gdImage* <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>brect</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>char const* <span class='color_p'>fontlist</span></span>, <span>double <span class='color_p'>ptsize</span></span>, <span>double <span class='color_p'>angle</span></span>, <span>int <span class='color_p'>x</span></span>, <span>int <span class='color_p'>y</span></span>, <span>char const* <span class='color_p'>string</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_25" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageStringFT&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>brect</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>char const* <span class='color_p'>fontlist</span></span>, <span>double <span class='color_p'>ptsize</span></span>, <span>double <span class='color_p'>angle</span></span>, <span>int <span class='color_p'>x</span></span>, <span>int <span class='color_p'>y</span></span>, <span>char const* <span class='color_p'>string</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>im</b> has been changed from <b>gdImage*</b> to <b>gdImagePtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_26')">
+<span class='ext'>[+]</span> gdImageStringFTEx&#160;<span class='sym_p'><span>(&#160;gdImage* <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>brect</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>char const* <span class='color_p'>fontlist</span></span>, <span>double <span class='color_p'>ptsize</span></span>, <span>double <span class='color_p'>angle</span></span>, <span>int <span class='color_p'>x</span></span>, <span>int <span class='color_p'>y</span></span>, <span>char const* <span class='color_p'>string</span></span>, <span>gdFTStringExtraPtr <span class='color_p'>strex</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_26" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageStringFTEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>brect</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>char const* <span class='color_p'>fontlist</span></span>, <span>double <span class='color_p'>ptsize</span></span>, <span>double <span class='color_p'>angle</span></span>, <span>int <span class='color_p'>x</span></span>, <span>int <span class='color_p'>y</span></span>, <span>char const* <span class='color_p'>string</span></span>, <span>gdFTStringExtraPtr <span class='color_p'>strex</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>im</b> has been changed from <b>gdImage*</b> to <b>gdImagePtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_27')">
+<span class='ext'>[+]</span> gdImageStringTTF&#160;<span class='sym_p'><span>(&#160;gdImage* <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>brect</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>char const* <span class='color_p'>fontlist</span></span>, <span>double <span class='color_p'>ptsize</span></span>, <span>double <span class='color_p'>angle</span></span>, <span>int <span class='color_p'>x</span></span>, <span>int <span class='color_p'>y</span></span>, <span>char const* <span class='color_p'>string</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_27" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageStringTTF&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>int* <span class='color_p'>brect</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>char const* <span class='color_p'>fontlist</span></span>, <span>double <span class='color_p'>ptsize</span></span>, <span>double <span class='color_p'>angle</span></span>, <span>int <span class='color_p'>x</span></span>, <span>int <span class='color_p'>y</span></span>, <span>char const* <span class='color_p'>string</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>im</b> has been changed from <b>gdImage*</b> to <b>gdImagePtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_28')">
+<span class='ext'>[+]</span> gdImageTiffCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_28" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageTiffCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_29')">
+<span class='ext'>[+]</span> gdImageWBMPCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_29" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageWBMPCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>3rd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_30')">
+<span class='ext'>[+]</span> gdImageWebpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quantization</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_30" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageWebpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quantization</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>outfile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_31')">
+<span class='ext'>[+]</span> gdImageXbmCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>char* <span class='color_p'>file_name</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_31" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageXbmCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>char* <span class='color_p'>file_name</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>4th</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of parameter data type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_32')">
+<span class='ext'>[+]</span> gdNewDynamicCtx&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>size</span></span>, <span>void* <span class='color_p'>data</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_32" style="display:none;">
+
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of return value has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of return type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_33')">
+<span class='ext'>[+]</span> gdNewDynamicCtxEx&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>size</span></span>, <span>void* <span class='color_p'>data</span></span>, <span>int <span class='color_p'>freeFlag</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_33" style="display:none;">
+
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of return value has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of return type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_34')">
+<span class='ext'>[+]</span> gdNewFileCtx&#160;<span class='sym_p'><span>(&#160;FILE* <span class='color_p'>p1</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_34" style="display:none;">
+
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of return value has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of return type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_35')">
+<span class='ext'>[+]</span> gdNewSSCtx&#160;<span class='sym_p'><span>(&#160;gdSourcePtr <span class='color_p'>in</span></span>, <span>gdSinkPtr <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_35" style="display:none;">
+
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of return value has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Replacement of return type may indicate a change in its semantic meaning.</td>
+</tr>
+</table>
+<br/>
+</div>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Constant_Binary_Problems_Low'></a>
+<h2>Problems with Constants, Low Severity <span class='warning'>&nbsp;2&nbsp;</span></h2><hr/>
+<span class='h_name'>entities.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_36')">
+<span class='ext'>[+]</span> ENTITY_NAME_LENGTH_MAX</span>
+<br/>
+<div id="c_36" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>ENTITY_NAME_LENGTH_MAX</b> with value <b>8</b> has been removed.</td>
+<td>The value of this constant may no longer be properly handled by new-version library functions.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_37')">
+<span class='ext'>[+]</span> NR_OF_ENTITIES</span>
+<br/>
+<div id="c_37" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>NR_OF_ENTITIES</b> with value <b>252</b> has been removed.</td>
+<td>The value of this constant may no longer be properly handled by new-version library functions.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Types'></a>
+<h2>Other Changes in Data Types <span class='passed'>&nbsp;8&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_38')">
+<span class='ext'>[+]</span> <span class='ttype'>enum</span> gdInterpolationMethod <span class='passed'>&nbsp;8&nbsp;</span></span>
+<br/>
+<div id="c_38" style="display:none;">
+<table class='ptable'><tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>The member <b>GD_BLACKMAN_BESSEL</b> with value <b>25</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>The member <b>GD_BLACKMAN_SINC</b> with value <b>26</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>The member <b>GD_COSINE</b> with value <b>29</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>The member <b>GD_CUBIC_SPLINE</b> with value <b>28</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>The member <b>GD_LANCZOS3</b> with value <b>23</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>The member <b>GD_LANCZOS8</b> with value <b>24</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>The member <b>GD_QUADRATIC_BSPLINE</b> with value <b>27</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>8</th>
+<td>The member <b>GD_WELSH</b> with value <b>30</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_39')">
+[+] affected symbols: 200 (79.7%)</span>
+<div id="c_39" style="display:none;">
+<div class='affected'><span class='iname_a'>gdImageAABlend&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAlphaBlending&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>alphaBlendingArg</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageArc&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>cx</i></span>, <span>int <i>cy</i></span>, <span>int <i>w</i></span>, <span>int <i>h</i></span>, <span>int <i>s</i></span>, <span>int <i>e</i></span>, <span>int <i>color</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtx* <i>outfile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageBmp&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageBmpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtxPtr <i>out</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Other_Binary_Changes_In_Constants'></a>
+<h2>Other Changes in Constants <span class='passed'>&nbsp;1&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_40')">
+<span class='ext'>[+]</span> gdWebpLossless</span>
+<br/>
+<div id="c_40" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>gdWebpLossless</b> with value <b>101</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;10&nbsp;</span></h2><hr/>
+<div class='h_list'>
+entities.h<br/>
+gd.h<br/>
+gd_io.h<br/>
+gdcache.h<br/>
+gdfontg.h<br/>
+gdfontl.h<br/>
+gdfontmb.h<br/>
+gdfonts.h<br/>
+gdfontt.h<br/>
+gdfx.h<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Libraries <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
+<div class='lib_list'>
+libgd.so.3.0.10<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><div id='SourceTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>libgd</td></tr>
+<tr><th>Version #1</th><td>2.3.2</td></tr>
+<tr><th>Version #2</th><td>2.3.3</td></tr>
+<tr><th>Arch</th><td>x86_64</td></tr>
+<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>10</a></td></tr>
+<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>509 / 123</td></tr>
+<tr><th>Compatibility</th>
+<td class='warning'>99.8%</td>
+</tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>19</a></td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Source_Removed' style='color:Blue;'>1</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>8</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Symbol_Source_Problems_Low' style='color:Blue;'>38</a></td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>3</a></td></tr>
+<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Types' style='color:Blue;'>9</a></td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>7</a></td></tr>
+</table>
+
+<a name='Source_Added'></a><h2>Added Symbols <span class='new'>&nbsp;19&nbsp;</span></h2><hr/>
+<span class='h_name'>gd_color_map.h</span><br/>
+<span class="iname">GD_COLOR_MAP_X11 <span class='attr'>[data]</span></span><br/>
+<span class="iname">gdColorMapLookup&#160;<span class='sym_p'><span>(&#160;struct gdColorMap const <span class='color_p'>color_map</span></span>, <span>char const* <span class='color_p'>color_name</span></span>, <span>int* <span class='color_p'>r</span></span>, <span>int* <span class='color_p'>g</span></span>, <span>int* <span class='color_p'>b</span></span>&#160;)</span></span><br/>
+<br/>
+<span class='h_name'>gd_errors.h</span><br/>
+<span class="iname">gd_error&#160;<span class='sym_p'><span>(&#160;char const* <span class='color_p'>format</span></span>, <span>...</span>&#160;)</span></span><br/>
+<span class="iname">gd_error_ex&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>priority</span></span>, <span>char const* <span class='color_p'>format</span></span>, <span>...</span>&#160;)</span></span><br/>
+<br/>
+<span class='h_name'>iostream</span><br/>
+<span class="iname">__dso_handle <span class='attr'>[data]</span></span><br/>
+<br/>
+<span class='h_name'>iostream</span><br/>
+<span class='ns'>namespace <b>std</b></span><br/>
+<span class="iname">__ioinit <span class='attr'>[data]</span></span><br/>
+<span class="iname">cerr <span class='attr'>[data]</span></span><br/>
+<span class="iname">cin <span class='attr'>[data]</span></span><br/>
+<span class="iname">clog <span class='attr'>[data]</span></span><br/>
+<span class="iname">cout <span class='attr'>[data]</span></span><br/>
+<span class="iname">wcerr <span class='attr'>[data]</span></span><br/>
+<span class="iname">wcin <span class='attr'>[data]</span></span><br/>
+<span class="iname">wclog <span class='attr'>[data]</span></span><br/>
+<span class="iname">wcout <span class='attr'>[data]</span></span><br/>
+<br/>
+<span class='h_name'>syslog.h</span><br/>
+<span class="iname">closelog&#160;<span class='sym_p'>(&#160;)</span></span><br/>
+<span class="iname">openlog&#160;<span class='sym_p'><span>(&#160;char const* <span class='color_p'>__ident</span></span>, <span>int <span class='color_p'>__option</span></span>, <span>int <span class='color_p'>__facility</span></span>&#160;)</span></span><br/>
+<span class="iname">setlogmask&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>__mask</span></span>&#160;)</span></span><br/>
+<span class="iname">syslog&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>__pri</span></span>, <span>char const* <span class='color_p'>__fmt</span></span>, <span>...</span>&#160;)</span></span><br/>
+<span class="iname">vsyslog&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>__pri</span></span>, <span>char const* <span class='color_p'>__fmt</span></span>, <span>struct __va_list_tag* <span class='color_p'>__ap</span></span>&#160;)</span></span><br/>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Source_Removed'></a><a name='Source_Withdrawn'></a><h2>Removed Symbols <span class='failed'>&nbsp;1&nbsp;</span></h2><hr/>
+<span class='h_name'>entities.h</span><br/>
+<span class="iname">entities <span class='attr'>[data]</span></span><br/>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a>
+<h2>Problems with Data Types, Low Severity <span class='warning'>&nbsp;8&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_41')">
+<span class='ext'>[+]</span> <span class='ttype'>typedef</span> interpolation_method <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_41" style="display:none;">
+<table class='ptable'><tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Base type has been changed from <b>double(*)(double)</b> to <span class='value'>double(*)(double, double)</span>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_42')">
+[+] affected symbols: 200 (39.3%)</span>
+<div id="c_42" style="display:none;">
+<div class='affected'><span class='iname_a'>gdImageAABlend&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAlphaBlending&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>alphaBlendingArg</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageArc&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>cx</i></span>, <span>int <i>cy</i></span>, <span>int <i>w</i></span>, <span>int <i>h</i></span>, <span>int <i>s</i></span>, <span>int <i>e</i></span>, <span>int <i>color</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtx* <i>outfile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageAvifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageBmp&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+<span class='iname_a'>gdImageBmpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtxPtr <i>out</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;interpolation_method&#39;.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>gd_io.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_43')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> gdIOCtx <span class='warning'>&nbsp;7&nbsp;</span></span>
+<br/>
+<div id="c_43" style="display:none;">
+<table class='ptable'><tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Base type of field <b>gd_free</b> has been changed from <span class='value'>void(*)(struct gdIOCtx*)</span> to <b>void(*)(gdIOCtxPtr)</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Base type of field <b>getBuf</b> has been changed from <span class='value'>int(*)(struct gdIOCtx*, void*, int)</span> to <span class='value'>int(*)(gdIOCtxPtr, void*, int)</span>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Base type of field <b>getC</b> has been changed from <span class='value'>int(*)(struct gdIOCtx*)</span> to <b>int(*)(gdIOCtxPtr)</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Base type of field <b>putBuf</b> has been changed from <span class='value'>int(*)(struct gdIOCtx*, void const*, int)</span> to <span class='value'>int(*)(gdIOCtxPtr, void const*, int)</span>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Base type of field <b>putC</b> has been changed from <span class='value'>void(*)(struct gdIOCtx*, int)</span> to <span class='value'>void(*)(gdIOCtxPtr, int)</span>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>Base type of field <b>seek</b> has been changed from <span class='value'>int(*)(struct gdIOCtx*, int)</span> to <span class='value'>int(*)(gdIOCtxPtr, int)</span>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>Base type of field <b>tell</b> has been changed from <span class='value'>long(*)(struct gdIOCtx*)</span> to <b>long(*)(gdIOCtxPtr)</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_44')">
+[+] affected symbols: 46 (9%)</span>
+<div id="c_44" style="display:none;">
+<div class='affected'><span class='iname_a'>gdDPExtractData&#160;<span class='sym_p'><span>(&#160;struct gdIOCtx* <span class='fp'>ctx</span></span>, <span>int* <i>size</i></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;ctx&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdGetBuf&#160;<span class='sym_p'><span>(&#160;void* <i>p1</i></span>, <span>int <i>p2</i></span>, <span>gdIOCtx* <span class='fp'>p3</span></span>&#160;)</span></span><br/>
+<div class='affect'>3rd parameter &#39;p3&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdGetByte&#160;<span class='sym_p'><span>(&#160;int* <i>result</i></span>, <span>gdIOCtx* <span class='fp'>ctx</span></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;ctx&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdGetC&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='fp'>ctx</span></span>&#160;)</span></span><br/>
+<div class='affect'>1st parameter &#39;ctx&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdGetInt&#160;<span class='sym_p'><span>(&#160;int* <i>result</i></span>, <span>gdIOCtx* <span class='fp'>ctx</span></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;ctx&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdGetIntLSB&#160;<span class='sym_p'><span>(&#160;int* <i>result</i></span>, <span>gdIOCtx* <span class='fp'>ctx</span></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;ctx&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdGetWord&#160;<span class='sym_p'><span>(&#160;int* <i>result</i></span>, <span>gdIOCtx* <span class='fp'>ctx</span></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;ctx&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdGetWordLSB&#160;<span class='sym_p'><span>(&#160;short* <i>result</i></span>, <span>gdIOCtx* <span class='fp'>ctx</span></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;ctx&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <i>im</i></span>, <span>gdIOCtx* <span class='fp'>outfile</span></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;outfile&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+<span class='iname_a'>gdImageBmpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <i>im</i></span>, <span>gdIOCtxPtr <span class='fp'>out</span></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>2nd parameter &#39;out&#39; (pointer) has base type &#39;struct gdIOCtx&#39;.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Symbol_Source_Problems_Low'></a><a name='Interface_Source_Problems_Low'></a>
+<h2>Problems with Symbols, Low Severity <span class='warning'>&nbsp;38&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_45')">
+<span class='ext'>[+]</span> gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_45" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>int <span class='color_p'>speed</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>outfile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_46')">
+<span class='ext'>[+]</span> gdImageCreateFromAvifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_46" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromAvifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_47')">
+<span class='ext'>[+]</span> gdImageCreateFromHeifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_47" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromHeifCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_48')">
+<span class='ext'>[+]</span> gdImageCreateFromJpegCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_48" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromJpegCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_49')">
+<span class='ext'>[+]</span> gdImageCreateFromJpegCtxEx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>, <span>int <span class='color_p'>ignore_warning</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_49" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromJpegCtxEx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>, <span>int <span class='color_p'>ignore_warning</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_50')">
+<span class='ext'>[+]</span> gdImageCreateFromTgaCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_50" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromTgaCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_51')">
+<span class='ext'>[+]</span> gdImageCreateFromTiffCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_51" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromTiffCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_52')">
+<span class='ext'>[+]</span> gdImageCreateFromWBMPCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_52" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromWBMPCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_53')">
+<span class='ext'>[+]</span> gdImageCreateFromWebpCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>infile</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_53" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageCreateFromWebpCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>infile</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>infile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_54')">
+<span class='ext'>[+]</span> gdImageGifAnimAddCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>, <span>int <span class='color_p'>LocalCM</span></span>, <span>int <span class='color_p'>LeftOfs</span></span>, <span>int <span class='color_p'>TopOfs</span></span>, <span>int <span class='color_p'>Delay</span></span>, <span>int <span class='color_p'>Disposal</span></span>, <span>gdImagePtr <span class='color_p'>previm</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_54" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageGifAnimAddCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>, <span>int <span class='color_p'>LocalCM</span></span>, <span>int <span class='color_p'>LeftOfs</span></span>, <span>int <span class='color_p'>TopOfs</span></span>, <span>int <span class='color_p'>Delay</span></span>, <span>int <span class='color_p'>Disposal</span></span>, <span>gdImagePtr <span class='color_p'>previm</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_55')">
+<span class='ext'>[+]</span> gdImageGifAnimBeginCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>, <span>int <span class='color_p'>GlobalCM</span></span>, <span>int <span class='color_p'>Loops</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_55" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageGifAnimBeginCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>, <span>int <span class='color_p'>GlobalCM</span></span>, <span>int <span class='color_p'>Loops</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_56')">
+<span class='ext'>[+]</span> gdImageGifAnimEndCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_56" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageGifAnimEndCtx&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_57')">
+<span class='ext'>[+]</span> gdImageGifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_57" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageGifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_58')">
+<span class='ext'>[+]</span> gdImageHeifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_58" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageHeifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quality</span></span>, <span>enum gdHeifCodec <span class='color_p'>codec</span></span>, <span>gdHeifChroma <span class='color_p'>chroma</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>outfile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_59')">
+<span class='ext'>[+]</span> gdImageJpegCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>, <span>int <span class='color_p'>quality</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_59" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageJpegCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>, <span>int <span class='color_p'>quality</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_60')">
+<span class='ext'>[+]</span> gdImagePngCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_60" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImagePngCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_61')">
+<span class='ext'>[+]</span> gdImagePngCtxEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>, <span>int <span class='color_p'>level</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_61" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImagePngCtxEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>, <span>int <span class='color_p'>level</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_62')">
+<span class='ext'>[+]</span> gdImageTiffCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_62" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageTiffCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_63')">
+<span class='ext'>[+]</span> gdImageWBMPCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_63" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageWBMPCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>3rd</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_64')">
+<span class='ext'>[+]</span> gdImageWebpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtx* <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quantization</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_64" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageWebpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>im</span></span>, <span>gdIOCtxPtr <span class='color_p'>outfile</span></span>, <span>int <span class='color_p'>quantization</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>outfile</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_65')">
+<span class='ext'>[+]</span> gdImageXbmCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>char* <span class='color_p'>file_name</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>gdIOCtx* <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_65" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdImageXbmCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='color_p'>image</span></span>, <span>char* <span class='color_p'>file_name</span></span>, <span>int <span class='color_p'>fg</span></span>, <span>gdIOCtxPtr <span class='color_p'>out</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>4th</b> parameter <b>out</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_66')">
+<span class='ext'>[+]</span> gdNewDynamicCtx&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>size</span></span>, <span>void* <span class='color_p'>data</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_66" style="display:none;">
+
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of return value has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_67')">
+<span class='ext'>[+]</span> gdNewDynamicCtxEx&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>size</span></span>, <span>void* <span class='color_p'>data</span></span>, <span>int <span class='color_p'>freeFlag</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_67" style="display:none;">
+
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of return value has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_68')">
+<span class='ext'>[+]</span> gdNewFileCtx&#160;<span class='sym_p'><span>(&#160;FILE* <span class='color_p'>p1</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_68" style="display:none;">
+
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of return value has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_69')">
+<span class='ext'>[+]</span> gdNewSSCtx&#160;<span class='sym_p'><span>(&#160;gdSourcePtr <span class='color_p'>in</span></span>, <span>gdSinkPtr <span class='color_p'>out</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_69" style="display:none;">
+
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of return value has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<br/>
+<span class='h_name'>gd_io.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_70')">
+<span class='ext'>[+]</span> gdGetBuf&#160;<span class='sym_p'><span>(&#160;void* <span class='color_p'>p1</span></span>, <span>int <span class='color_p'>p2</span></span>, <span>gdIOCtx* <span class='color_p'>p3</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_70" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdGetBuf&#160;<span class='sym_p'><span>(&#160;void* <span class='color_p'>p1</span></span>, <span>int <span class='color_p'>p2</span></span>, <span>gdIOCtxPtr <span class='color_p'>p3</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>3rd</b> parameter <b>p3</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_71')">
+<span class='ext'>[+]</span> gdGetByte&#160;<span class='sym_p'><span>(&#160;int* <span class='color_p'>result</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_71" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdGetByte&#160;<span class='sym_p'><span>(&#160;int* <span class='color_p'>result</span></span>, <span>gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_72')">
+<span class='ext'>[+]</span> gdGetC&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_72" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdGetC&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_73')">
+<span class='ext'>[+]</span> gdGetInt&#160;<span class='sym_p'><span>(&#160;int* <span class='color_p'>result</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_73" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdGetInt&#160;<span class='sym_p'><span>(&#160;int* <span class='color_p'>result</span></span>, <span>gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_74')">
+<span class='ext'>[+]</span> gdGetIntLSB&#160;<span class='sym_p'><span>(&#160;int* <span class='color_p'>result</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_74" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdGetIntLSB&#160;<span class='sym_p'><span>(&#160;int* <span class='color_p'>result</span></span>, <span>gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_75')">
+<span class='ext'>[+]</span> gdGetWord&#160;<span class='sym_p'><span>(&#160;int* <span class='color_p'>result</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_75" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdGetWord&#160;<span class='sym_p'><span>(&#160;int* <span class='color_p'>result</span></span>, <span>gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_76')">
+<span class='ext'>[+]</span> gdGetWordLSB&#160;<span class='sym_p'><span>(&#160;short* <span class='color_p'>result</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_76" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdGetWordLSB&#160;<span class='sym_p'><span>(&#160;short* <span class='color_p'>result</span></span>, <span>gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_77')">
+<span class='ext'>[+]</span> gdPutBuf&#160;<span class='sym_p'><span>(&#160;void const* <span class='color_p'>p1</span></span>, <span>int <span class='color_p'>p2</span></span>, <span>gdIOCtx* <span class='color_p'>p3</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_77" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdPutBuf&#160;<span class='sym_p'><span>(&#160;void const* <span class='color_p'>p1</span></span>, <span>int <span class='color_p'>p2</span></span>, <span>gdIOCtxPtr <span class='color_p'>p3</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>3rd</b> parameter <b>p3</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_78')">
+<span class='ext'>[+]</span> gdPutC&#160;<span class='sym_p'><span>(&#160;unsigned char const <span class='color_p'>c</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_78" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdPutC&#160;<span class='sym_p'><span>(&#160;unsigned char const <span class='color_p'>c</span></span>, <span>gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_79')">
+<span class='ext'>[+]</span> gdPutInt&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>w</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_79" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdPutInt&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>w</span></span>, <span>gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_80')">
+<span class='ext'>[+]</span> gdPutWord&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>w</span></span>, <span>gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_80" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdPutWord&#160;<span class='sym_p'><span>(&#160;int <span class='color_p'>w</span></span>, <span>gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>2nd</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_81')">
+<span class='ext'>[+]</span> gdSeek&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>ctx</span></span>, <span>int const <span class='color_p'>offset</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_81" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdSeek&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>ctx</span></span>, <span>int const <span class='color_p'>offset</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_82')">
+<span class='ext'>[+]</span> gdTell&#160;<span class='sym_p'><span>(&#160;gdIOCtx* <span class='color_p'>ctx</span></span>&#160;)</span> <span class='warning'>&nbsp;1&nbsp;</span></span>
+<br/>
+<div id="c_82" style="display:none;">
+
+
+<span class='new_sign_lbl'>&#8675;</span>
+<br/>
+<span class='new_sign'>gdTell&#160;<span class='sym_p'><span>(&#160;gdIOCtxPtr <span class='color_p'>ctx</span></span>&#160;)</span></span><br/>
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Type of <b>1st</b> parameter <b>ctx</b> has been changed from <b>gdIOCtx*</b> to <b>gdIOCtxPtr</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Constant_Source_Problems_Low'></a>
+<h2>Problems with Constants, Low Severity <span class='warning'>&nbsp;3&nbsp;</span></h2><hr/>
+<span class='h_name'>entities.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_83')">
+<span class='ext'>[+]</span> ENTITY_NAME_LENGTH_MAX</span>
+<br/>
+<div id="c_83" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>ENTITY_NAME_LENGTH_MAX</b> with value <b>8</b> has been removed.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_84')">
+<span class='ext'>[+]</span> NR_OF_ENTITIES</span>
+<br/>
+<div id="c_84" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>NR_OF_ENTITIES</b> with value <b>252</b> has been removed.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_85')">
+<span class='ext'>[+]</span> GD_RELEASE_VERSION</span>
+<br/>
+<div id="c_85" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The value of constant <b>GD_RELEASE_VERSION</b> has been changed from <b>2</b> to <b>3</b>.</td>
+<td>Recompilation of a client program may be broken.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Types'></a>
+<h2>Other Changes in Data Types <span class='passed'>&nbsp;9&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_86')">
+<span class='ext'>[+]</span> <span class='ttype'>enum</span> gdInterpolationMethod <span class='passed'>&nbsp;9&nbsp;</span></span>
+<br/>
+<div id="c_86" style="display:none;">
+<table class='ptable'><tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>The member <b>GD_BLACKMAN_BESSEL</b> with value <b>25</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>The member <b>GD_BLACKMAN_SINC</b> with value <b>26</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>The member <b>GD_COSINE</b> with value <b>29</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>The member <b>GD_CUBIC_SPLINE</b> with value <b>28</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>The member <b>GD_LANCZOS3</b> with value <b>23</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>The member <b>GD_LANCZOS8</b> with value <b>24</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>The member <b>GD_QUADRATIC_BSPLINE</b> with value <b>27</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>8</th>
+<td>The member <b>GD_WELSH</b> with value <b>30</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+<tr>
+<th>9</th>
+<td>Value of member <b>GD_METHOD_COUNT</b> has been changed from <b>23</b> to <b>30</b>.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_87')">
+[+] affected symbols: 200 (39.3%)</span>
+<div id="c_87" style="display:none;">
+<div class='affected'><span class='iname_a'>gdImageAABlend&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAlphaBlending&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>alphaBlendingArg</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageArc&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int <i>cx</i></span>, <span>int <i>cy</i></span>, <span>int <i>w</i></span>, <span>int <i>h</i></span>, <span>int <i>s</i></span>, <span>int <i>e</i></span>, <span>int <i>color</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvif&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtx* <i>outfile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifPtr&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageAvifPtrEx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>int* <i>size</i></span>, <span>int <i>quality</i></span>, <span>int <i>speed</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageBmp&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>FILE* <i>outFile</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+<span class='iname_a'>gdImageBmpCtx&#160;<span class='sym_p'><span>(&#160;gdImagePtr <span class='fp'>im</span></span>, <span>gdIOCtxPtr <i>out</i></span>, <span>int <i>compression</i></span>&#160;)</span></span><br/>
+<div class='affect'>Field &#39;im.interpolation_id&#39; in 1st parameter &#39;im&#39; (pointer) is of type &#39;enum gdInterpolationMethod&#39;.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Other_Source_Changes_In_Constants'></a>
+<h2>Other Changes in Constants <span class='passed'>&nbsp;7&nbsp;</span></h2><hr/>
+<span class='h_name'>gd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_88')">
+<span class='ext'>[+]</span> BGD_MALLOC</span>
+<br/>
+<div id="c_88" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>BGD_MALLOC</b> with value <span class='value'>__attribute__ ((__malloc__))</span> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_89')">
+<span class='ext'>[+]</span> gdWebpLossless</span>
+<br/>
+<div id="c_89" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>gdWebpLossless</b> with value <b>101</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<span class='h_name'>gd_errors.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_90')">
+<span class='ext'>[+]</span> GD_DEBUG</span>
+<br/>
+<div id="c_90" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_DEBUG</b> with value <b>LOG_DEBUG</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_91')">
+<span class='ext'>[+]</span> GD_ERROR</span>
+<br/>
+<div id="c_91" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_ERROR</b> with value <b>LOG_ERR</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_92')">
+<span class='ext'>[+]</span> GD_INFO</span>
+<br/>
+<div id="c_92" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_INFO</b> with value <b>LOG_INFO</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_93')">
+<span class='ext'>[+]</span> GD_NOTICE</span>
+<br/>
+<div id="c_93" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_NOTICE</b> with value <b>LOG_NOTICE</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_94')">
+<span class='ext'>[+]</span> GD_WARNING</span>
+<br/>
+<div id="c_94" style="display:none;">
+<table class='ptable'>
+<tr>
+<th class='pn'></th>
+<th class='chg'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>The constant <b>GD_WARNING</b> with value <b>LOG_WARNING</b> has been added.</td>
+<td>No effect.</td>
+</tr>
+</table>
+<br/>
+</div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;10&nbsp;</span></h2><hr/>
+<div class='h_list'>
+entities.h<br/>
+gd.h<br/>
+gd_io.h<br/>
+gdcache.h<br/>
+gdfontg.h<br/>
+gdfontl.h<br/>
+gdfontmb.h<br/>
+gdfonts.h<br/>
+gdfontt.h<br/>
+gdfx.h<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Libraries <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
+<div class='lib_list'>
+libgd.so.3.0.10<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><hr/>
+<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3 &#160;</i>
+</div>
+<br/>
+
+</body></html>
diff --git a/gd.spec b/gd.spec
index 9ab9c57..cde3cc4 100644
--- a/gd.spec
+++ b/gd.spec
@@ -1,4 +1,4 @@
-# remirepo spec file for gd-last
+# remirepo spec file for gd3php
# renamed for parallel installation, from:
#
# Fedora spec file for gd
@@ -12,32 +12,55 @@
#global commit 725ba9de4005144d137d2a7a70f760068fc3d306
#global short %%(c=%%{commit}; echo ${c:0:7})
-%global with_webp 1
+%bcond_without tests
+
+%if 0%{?rhel} >= 7 && 0%{?rhel} <= 9
+%bcond_without bump
+%else
+%bcond_with bump
+%endif
+
+%bcond_without webp
+%if 0%{?fedora} >= 35
+# disabled as breaks vertical text with freetype >= 2.11
+# See https://bugzilla.redhat.com/2022957
+# https://github.com/libgd/libgd/issues/790
+%bcond_with raqm
+%else
+%bcond_without raqm
+%endif
+
+%if 0%{?fedora} >= 33 || 0%{?rhel} >= 8
+%bcond_without avif
+%else
+# Not available or too old
+# See https://github.com/libgd/libgd/issues/677 - avif test failure
+%bcond_with avif
+%endif
+
+# Disabled as only in rpmfusion
+# Also see https://github.com/libgd/libgd/issues/678 - heif segfault
+%bcond_with heif
%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8
-%global with_liq 1
+%bcond_without liq
%else
# requested by https://bugzilla.redhat.com/1468338
# this break gdimagefile/gdnametest:
# gdimagefile/gdnametest.c:122: 255 pixels different on /tmp/gdtest.CrpdIb/img.gif
# gdimagefile/gdnametest.c:122: 255 pixels different on /tmp/gdtest.CrpdIb/img.GIF
# FAIL gdimagefile/gdnametest (exit status: 2)
-%global with_liq 0
-%endif
-%if 0%{?fedora} >= 22 || 0%{?rhel} >= 7
-%global with_raqm 1
-%else
-%global with_raqm 0
+%bcond_with liq
%endif
Summary: A graphics library for quick creation of PNG or JPEG images
-%if 0%{?fedora} >= 20 || 0%{?rhel} >= 8
-Name: gd
+%if %{with bump}
+Name: gd3php
%else
-Name: gd-last
+Name: gd
%endif
-Version: 2.3.0
-Release: 1%{?prever}%{?short}%{?dist}
+Version: 2.3.3
+Release: 9%{?prever}%{?short}%{?dist}
License: MIT
URL: http://libgd.github.io/
%if 0%{?commit:1}
@@ -47,8 +70,14 @@ Source0: libgd-%{version}-%{commit}.tgz
%else
Source0: https://github.com/libgd/libgd/releases/download/gd-%{version}/libgd-%{version}.tar.xz
%endif
-# Missing, temporary workaround, fixed upstream for next version
-Source1: https://raw.githubusercontent.com/libgd/libgd/gd-%{version}/config/getlib.sh
+
+# Needed by PHP see https://github.com/libgd/libgd/pull/766
+Patch0: libgd-flip.patch
+# Missing header see https://github.com/libgd/libgd/pull/766
+Patch1: libgd-iostream.patch
+# But soname for PHP usage
+Patch2: libgd-bumpsoname.patch
+
BuildRequires: freetype-devel
BuildRequires: fontconfig-devel
@@ -56,19 +85,25 @@ BuildRequires: gettext-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libtiff-devel
-%if %{with_webp}
+%if %{with webp}
%if 0%{?rhel} == 7
BuildRequires: libwebp7-devel
%else
BuildRequires: libwebp-devel
%endif
%endif
-%if %{with_liq}
+%if %{with liq}
BuildRequires: libimagequant-devel
%endif
-%if %{with_raqm}
+%if %{with raqm}
BuildRequires: libraqm-devel
%endif
+%if %{with avif}
+BuildRequires: libavif-devel >= 0.8.2
+%endif
+%if %{with heif}
+BuildRequires: libheif-devel >= 1.7.0
+%endif
BuildRequires: libX11-devel
BuildRequires: libXpm-devel
BuildRequires: zlib-devel
@@ -76,16 +111,11 @@ BuildRequires: pkgconfig
BuildRequires: libtool
BuildRequires: perl
BuildRequires: perl-generators
+BuildRequires: perl(FindBin)
# for fontconfig/basic test
BuildRequires: liberation-sans-fonts
-%if 0%{?fedora} >= 29
-BuildRequires: libimagequant-devel
-%endif
-
-%if "%{name}" != "gd-last"
-Obsoletes: gd-last <= %{version}
-%endif
+Obsoletes: gd-last < %{version}-%{release}
%description
The gd graphics library allows your code to quickly draw images
@@ -99,12 +129,11 @@ browsers. Note that gd is not a paint program.
%package progs
Requires: %{name}%{?_isa} = %{version}-%{release}
Summary: Utility programs that use libgd
-%if "%{name}" == "gd-last"
+%if %{with bump}
Conflicts: gd-progs < %{version}
Provides: gd-progs = %{version}-%{release}
-%else
-Obsoletes: gd-last-progs <= %{version}
%endif
+Obsoletes: gd-last-progs < %{version}-%{release}
%description progs
The gd-progs package includes utility programs supplied with gd, a
@@ -119,25 +148,34 @@ Requires: fontconfig-devel%{?_isa}
Requires: libjpeg-devel%{?_isa}
Requires: libpng-devel%{?_isa}
Requires: libtiff-devel%{?_isa}
-%if %{with_webp}
+%if %{with webp}
+%if 0%{?rhel} == 7
+Requires: libwebp7-devel%{?_isa}
+%else
Requires: libwebp-devel%{?_isa}
%endif
+%endif
Requires: libX11-devel%{?_isa}
Requires: libXpm-devel%{?_isa}
Requires: zlib-devel%{?_isa}
-%if %{with_liq}
+%if %{with liq}
Requires: libimagequant-devel%{?_isa}
%endif
-%if %{with_raqm}
+%if %{with raqm}
Requires: libraqm-devel
%endif
+%if %{with avif}
+Requires: libavif-devel
+%endif
+%if %{with heif}
+Requires: libheif-devel
+%endif
-%if "%{name}" == "gd-last"
+%if %{with bump}
Conflicts: gd-devel < %{version}
Provides: gd-devel = %{version}-%{release}
-%else
-Obsoletes: gd-last-devel <= %{version}
%endif
+Obsoletes: gd-last-devel < %{version}-%{release}
%description devel
@@ -147,15 +185,14 @@ files for gd, a graphics library for creating PNG and JPEG graphics.
%prep
%setup -q -n libgd-%{version}%{?prever:-%{prever}}
-install -m 0755 %{SOURCE1} config/
+%patch0 -p1
+%patch1 -p1
+%if %{with bump}
+%patch2 -p1
+%endif
: $(perl config/getver.pl)
-# RHEL-6 auto* are too old
-%if 0%{?rhel} == 6
-sed -e 's/-Werror//' -i configure
-touch tests/Makefile.in
-%else
: regenerate autotool stuff
if [ -f configure ]; then
libtoolize --copy --force
@@ -163,7 +200,6 @@ if [ -f configure ]; then
else
./bootstrap.sh
fi
-%endif
%build
@@ -187,7 +223,33 @@ export CFLAGS="$CFLAGS -ffp-contract=off"
%configure \
+ --enable-gd-formats \
--with-tiff=%{_prefix} \
+%if %{with raqm}
+ --with-raqm \
+%else
+ --without-raqm \
+%endif
+%if %{with liq}
+ --with-liq \
+%else
+ --without-liq \
+%endif
+%if %{with webp}
+ --with-webp \
+%else
+ --without-webp \
+%endif
+%if %{with avif}
+ --with-avif \
+%else
+ --without-avif \
+%endif
+%if %{with heif}
+ --with-heif \
+%else
+ --without-heif \
+%endif
--disable-rpath
make %{?_smp_mflags}
@@ -198,30 +260,25 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/libgd.la
rm -f $RPM_BUILD_ROOT/%{_libdir}/libgd.a
+%if %{with tests}
%check
-# minor diff in size
-XFAIL_TESTS="gdimagestringft/gdimagestringft_bbox"
-%ifarch s390x
-XFAIL_TESTS="gdimagestring16/gdimagestring16 gdimagestringup16/gdimagestringup16 $XFAIL_TESTS"
-%endif
+XFAIL_TESTS=""
%if 0%{?fedora} <= 28 && 0%{?rhel} <= 7
%ifarch %{ix86}
# See https://github.com/libgd/libgd/issues/359
XFAIL_TESTS="gdimagegrayscale/basic $XFAIL_TESTS"
%endif
%endif
-%if 0%{?rhel} > 0 && 0%{?rhel} <= 6
-# See https://github.com/libgd/libgd/issues/363
-XFAIL_TESTS="freetype/bug00132 $XFAIL_TESTS"
-%endif
-
export XFAIL_TESTS
+# Workaround to https://github.com/libgd/libgd/issues/763
+export TMPDIR=/tmp
: Upstream test suite
-make check
+make check %{?_smp_mflags}
: Check content of pkgconfig
grep %{version} $RPM_BUILD_ROOT%{_libdir}/pkgconfig/gdlib.pc
+%endif
%if 0%{?fedora} < 28 && 0%{?rhel} < 8
@@ -233,7 +290,11 @@ grep %{version} $RPM_BUILD_ROOT%{_libdir}/pkgconfig/gdlib.pc
%files
%{!?_licensedir:%global license %%doc}
%license COPYING
-%{_libdir}/*.so.*
+%if %{with bump}
+%{_libdir}/*.so.103*
+%else
+%{_libdir}/*.so.3*
+%endif
%files progs
%{_bindir}/*
@@ -245,6 +306,64 @@ grep %{version} $RPM_BUILD_ROOT%{_libdir}/pkgconfig/gdlib.pc
%changelog
+* Thu Nov 17 2022 Remi Collet <remi@remirepo.net> - 2.3.3-9
+- EL-9 rebuild for new libavif
+
+* Tue Jul 19 2022 Remi Collet <remi@remirepo.net> - 2.3.3-8
+- enable avif support in EL-8 and EL-9
+
+* Thu Jun 23 2022 Remi Collet <remi@remirepo.net> - 2.3.3-7
+- obsolete old gd-last packages
+
+* Wed Jun 22 2022 Remi Collet <remi@remirepo.net> - 2.3.3-6
+- EL-7: devel requires libwebp7-devel (not libwebp-devel)
+
+* Tue Mar 29 2022 Remi Collet <remi@remirepo.net> - 2.3.3-5
+- rename to gd3php on EL-9
+
+* Thu Dec 2 2021 Remi Collet <remi@remirepo.net> - 2.3.3-4
+- rename to gd3php on EL-7 and EL-8
+ https://github.com/remicollet/remirepo/issues/194
+
+* Fri Nov 19 2021 Remi Collet <remi@remirepo.net> - 2.3.3-3
+- disable libraqm usage on F35+
+
+* Mon Sep 20 2021 Remi Collet <remi@remirepo.net> - 2.3.3-2
+- Explicitly enable gd/gd2 formats, wanted by perl bindings (#2005916)
+- open https://github.com/libgd/libgd/pull/776
+
+* Mon Sep 13 2021 Remi Collet <remi@remirepo.net> - 2.3.3-1
+- update to 2.3.3
+- open https://github.com/libgd/libgd/pull/766 missing macros
+- open https://github.com/libgd/libgd/pull/767 missing headers
+
+* Wed Apr 28 2021 Remi Collet <remi@remirepo.net> - 2.3.2-4
+- rebuild for libavif new soname on Fedora 34
+
+* Wed Mar 17 2021 Remi Collet <remi@remirepo.net> - 2.3.2-3
+- enable avif support on Fedora 33+
+
+* Mon Mar 8 2021 Remi Collet <remi@remirepo.net> - 2.3.2-2
+- enable avif support on Fedora 34
+
+* Mon Mar 8 2021 Remi Collet <remi@remirepo.net> - 2.3.2-1
+- update to 2.3.2
+- open https://github.com/libgd/libgd/issues/677 avif test failure
+- open https://github.com/libgd/libgd/issues/678 heif segfault
+
+* Thu Feb 4 2021 Remi Collet <remi@remirepo.net> - 2.3.1-1
+- update to 2.3.1 in sync with Fedora
+
+* Wed Feb 3 2021 Filip Januš <fjanus@redhat.com> - 2.3.1-1
+- Upstream released new version 2.3.1
+- patch bug615 is no more needed - fixed by upstream in release
+- gdimagestring16/gdimagestring16 gdimagestringup16/gdimagestringup16 passed on
+ x390s - XFAIL_TEST definition for x390s is no more necessary
+
+* Wed Jul 15 2020 Remi Collet <remi@remirepo.net> - 2.3.0-2
+- fix gdImageStringFT() fails for empty strings
+ https://github.com/libgd/libgd/issues/615
+
* Tue Mar 24 2020 Remi Collet <remi@remirepo.net> - 2.3.0-1
- update to 2.3.0
- add dependency on libraqm
diff --git a/getlib.sh b/getlib.sh
deleted file mode 100644
index 4835cf6..0000000
--- a/getlib.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-
-GETVER="${0%/*}/getver.pl"
-GDLIB_MAJOR=$("${GETVER}" MAJOR)
-GDLIB_MINOR=$("${GETVER}" MINOR)
-GDLIB_REVISION=$("${GETVER}" RELEASE)
-
-# Dynamic library version information
-# See http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
-
-GDLIB_LT_CURRENT=3
-# This is the version where the soname (current above) changes. We use it
-# to reset the revision base back to zero. It's a bit of a pain, but some
-# systems restrict the revision range below to [0..255] (like OS X).
-GDLIB_PREV_MAJOR=2
-GDLIB_PREV_MINOR=2
-# This isn't 100% correct, but it tends to be a close enough approximation
-# for how we manage the codebase. It's rare to do a release that doesn't
-# modify the library since this project is centered around the library.
-GDLIB_LT_REVISION=$(( ((GDLIB_MAJOR - GDLIB_PREV_MAJOR) << 6) | ((GDLIB_MINOR - GDLIB_PREV_MINOR) << 3) | GDLIB_REVISION ))
-GDLIB_LT_AGE=0
-
-# The first three fields we feed into libtool and the OS target determines how
-# they get used. The last two fields we feed into cmake. We use the same rules
-# as Linux SONAME versioning in libtool, but cmake should handle it for us.
-case $1 in
-CURRENT)
- printf '%s' "${GDLIB_LT_CURRENT}"
- ;;
-REVISION)
- printf '%s' "${GDLIB_LT_REVISION}"
- ;;
-AGE)
- printf '%s' "${GDLIB_LT_AGE}"
- ;;
-VERSION)
- printf '%s' "$(( GDLIB_LT_CURRENT - GDLIB_LT_AGE )).${GDLIB_LT_AGE}.${GDLIB_LT_REVISION}"
- ;;
-SONAME)
- printf '%s' "$(( GDLIB_LT_CURRENT - GDLIB_LT_AGE ))"
- ;;
-esac
diff --git a/libgd-bumpsoname.patch b/libgd-bumpsoname.patch
new file mode 100644
index 0000000..dadcc5d
--- /dev/null
+++ b/libgd-bumpsoname.patch
@@ -0,0 +1,12 @@
+diff -up ./config/getlib.sh.old ./config/getlib.sh
+--- ./config/getlib.sh.old 2021-12-02 10:39:08.156110846 +0100
++++ ./config/getlib.sh 2021-12-02 10:39:11.003100629 +0100
+@@ -8,7 +8,7 @@ GDLIB_REVISION=$("${GETVER}" RELEASE)
+ # Dynamic library version information
+ # See http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
+
+-GDLIB_LT_CURRENT=3
++GDLIB_LT_CURRENT=103
+ # This is the version where the soname (current above) changes. We use it
+ # to reset the revision base back to zero. It's a bit of a pain, but some
+ # systems restrict the revision range below to [0..255] (like OS X).
diff --git a/libgd-flip.patch b/libgd-flip.patch
new file mode 100644
index 0000000..4fa964f
--- /dev/null
+++ b/libgd-flip.patch
@@ -0,0 +1,50 @@
+From f4bc1f5c26925548662946ed7cfa473c190a104a Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Mon, 13 Sep 2021 14:57:52 +0200
+Subject: [PATCH 1/2] Revert "Fix #318, these macros are not used as planed, we
+ have separate functions for each"
+
+This reverts commit bdc281eadb1d58d5c0c7bbc1125ee4674256df08.
+---
+ src/gd.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/gd.h b/src/gd.h
+index 30560395..1ad9e637 100644
+--- a/src/gd.h
++++ b/src/gd.h
+@@ -1604,6 +1604,11 @@ BGD_DECLARE(void) gdImageFlipHorizontal(gdImagePtr im);
+ BGD_DECLARE(void) gdImageFlipVertical(gdImagePtr im);
+ BGD_DECLARE(void) gdImageFlipBoth(gdImagePtr im);
+
++#define GD_FLIP_HORINZONTAL 1 /* typo, kept for BC */
++#define GD_FLIP_HORIZONTAL 1
++#define GD_FLIP_VERTICAL 2
++#define GD_FLIP_BOTH 3
++
+ /**
+ * Group: Crop
+ *
+
+From e47c619d792455aad23708d2ec2947455394427e Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Mon, 13 Sep 2021 14:59:47 +0200
+Subject: [PATCH 2/2] add comment to not remove these macros
+
+---
+ src/gd.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/gd.h b/src/gd.h
+index 1ad9e637..71f5a89c 100644
+--- a/src/gd.h
++++ b/src/gd.h
+@@ -1604,6 +1604,8 @@ BGD_DECLARE(void) gdImageFlipHorizontal(gdImagePtr im);
+ BGD_DECLARE(void) gdImageFlipVertical(gdImagePtr im);
+ BGD_DECLARE(void) gdImageFlipBoth(gdImagePtr im);
+
++/* Macros still used in gd extension up to PHP 8.0
++ so please keep these unused macros for now */
+ #define GD_FLIP_HORINZONTAL 1 /* typo, kept for BC */
+ #define GD_FLIP_HORIZONTAL 1
+ #define GD_FLIP_VERTICAL 2
diff --git a/libgd-iostream.patch b/libgd-iostream.patch
new file mode 100644
index 0000000..c80b3ec
--- /dev/null
+++ b/libgd-iostream.patch
@@ -0,0 +1,35 @@
+From 01bcbdcae35b90de082012e639094c711a7aa2b3 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Mon, 13 Sep 2021 15:05:18 +0200
+Subject: [PATCH] install missing header, used by gdpp.h
+
+---
+ src/CMakeLists.txt | 1 +
+ src/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 3839bc78..c1eea100 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -194,6 +194,7 @@ install(FILES
+ gdfontt.h
+ gdfx.h
+ gdpp.h
++ gd_io_stream.h
+ DESTINATION include)
+
+ CONFIGURE_FILE(../config/gdlib.pc.cmake gdlib.pc @ONLY)
+diff --git a/src/Makefile.am b/src/Makefile.am
+index dbe9243c..c8c779f1 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -52,7 +52,7 @@ EXTRA_DIST = \
+ msinttypes/inttypes.h \
+ msinttypes/stdint.h
+
+-include_HEADERS = gd.h gdfx.h gd_io.h gdcache.h gdfontg.h gdfontl.h gdfontmb.h gdfonts.h gdfontt.h gd_color_map.h gd_errors.h gdpp.h
++include_HEADERS = gd.h gdfx.h gd_io.h gdcache.h gdfontg.h gdfontl.h gdfontmb.h gdfonts.h gdfontt.h gd_color_map.h gd_errors.h gdpp.h gd_io_stream.h
+
+ lib_LTLIBRARIES = libgd.la
+