siranwu / theunarchiver

Automatically exported from code.google.com/p/theunarchiver
Other
0 stars 0 forks source link

GCC warnings that may lead to runtime issues with new GNUstep libraries #754

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Hi,

The following bug was reported to the Debian bug tracking system:

Source: unar
Version: 1.8.1-2
Severity: normal
Tags: sid jessie
User: pkg-gnustep-maintainers@lists.alioth.debian.org
Usertags: gnustep-base1.24-transition gnustep-transition

Your package builds successfully with the new GNUstep libraries, but
there are some GCC warnings that *may* lead to problems at runtime and
may affect the forthcoming gnustep transition/jessie release.  Latest
versions of the core GNUstep packages are available at mentors.d.n [*];
they will be uploaded to experimental first.

Please note that the warnings may be unrelated to GNUstep or changes in
GNUstep but could be legitimate nevertheless.  In case the fix is
applicable for the current gnustep-* library packages in sid (-base/1.22
and -gui/0.20) you can upload the fixed package before the transition
begins.  Otherwise, please wait for the transition to complete and
do not forget to adjust the Build-Depends field accordingly:

  libgnustep-base-dev (>= 1.24.6)

Relevant portion(s) of the log:

XADArchiveParser.m: In function '+[XADArchiveParser 
scanForVolumesWithFilename:regex:firstFileExtension:]':
XADArchiveParser.m:790:2: warning: passing argument 1 of 
'sortUsingFunction:context:' from incompatible pointer type [enabled by default]
  [volumes sortUsingFunction:XADVolumeSort context:firstext];
  ^
XADArchiveParser.m:790:2: note: expected 'enum NSComparisonResult (*)(struct 
objc_object *, struct objc_object *, void *)' but argument is of type 
'NSInteger (*)(struct objc_object *, struct objc_object *, void *)'
[...]
XADArchiveParserDescriptions.m: In function '-[XADArchiveParser(Descriptions) 
descriptiveOrderingOfKeysInDictionary:]':
XADArchiveParserDescriptions.m:205:2: warning: passing argument 1 of 
'sortedArrayUsingFunction:context:' from incompatible pointer type [enabled by 
default]
  return [[dict allKeys] sortedArrayUsingFunction:OrderKeys context:ordering];
  ^
XADArchiveParserDescriptions.m:205:2: note: expected 'enum NSComparisonResult 
(*)(struct objc_object *, struct objc_object *, void *)' but argument is of 
type 'NSInteger (*)(struct objc_object *, struct objc_object *, void *)'
[...]
XADNSISParser.m: In function '-[XADNSISParser 
parseOpcodesWithHeader:blocks:extractOpcode:ignoreOverwrite:directoryOpcode:dire
ctoryArgument:assignOpcode:startOffset:endOffset:stride:stringStartOffset:string
EndOffset:unicode:newDateTimeOrder:]':
XADNSISParser.m:519:2: warning: passing argument 1 of 
'sortUsingFunction:context:' from incompatible pointer type [enabled by default]
  [array sortUsingFunction:CompareEntryDataOffsets context:NULL];
  ^
XADNSISParser.m:519:2: note: expected 'enum NSComparisonResult (*)(struct 
objc_object *, struct objc_object *, void *)' but argument is of type 
'NSInteger (*)(struct objc_object *, struct objc_object *, void *)'
[...]
XADUnarchiver.m: In function '-[XADUnarchiver _fixDeferredDirectories]':
XADUnarchiver.m:338:2: warning: passing argument 1 of 
'sortUsingFunction:context:' from incompatible pointer type [enabled by default]
  [deferreddirectories sortUsingFunction:SortDirectoriesByDepthAndResource context:NULL];
  ^
XADUnarchiver.m:338:2: note: expected 'enum NSComparisonResult (*)(struct 
objc_object *, struct objc_object *, void *)' but argument is of type 
'NSInteger (*)(struct objc_object *, struct objc_object *, void *)'

The full build log is available upon request.
The severity of this bug may be raised to "important", "serious" or
"grave" after the transition depending on the impact.

[*]
http://mentors.debian.net/debian/pool/main/g/gnustep-make/gnustep-make_2.6.6-1.d
sc
http://mentors.debian.net/debian/pool/main/g/gnustep-base/gnustep-base_1.24.6-1.
dsc
http://mentors.debian.net/debian/pool/main/g/gnustep-gui/gnustep-gui_0.24.0-1.ds
c
http://mentors.debian.net/debian/pool/main/g/gnustep-back/gnustep-back_0.24.0-1.
dsc

I've attached a patch that should eliminate these warnings.  I've verified that 
it works with the GNUstep version that's currently in Debian unstable, 1.22.

Original issue reported on code.google.com by kr...@ftbfs.org on 1 Jun 2014 at 2:32

Attachments:

GoogleCodeExporter commented 9 years ago
Applied, finally. I'll note that this prototype no longer matches OS X, though.

Original comment by paracel...@gmail.com on 20 Jul 2015 at 10:08