[Flac-dev] Fixes to make flac build on Solaris
Brian Cameron
Brian.Cameron at Sun.COM
Sun Jun 17 21:06:08 PDT 2007
Josh:
> fixed, thanks!
Thanks. However, I think there is a better patch to fix these problems.
I reworked this patch not long ago to do better testing for what inline
to use in configure, and also a better way to calculate the size of
the #defines in replaygain_analysis.c. This was submitted to the
SourceForge bug tracker as bug 1701960. See here, and note attached
patch.
http://sourceforge.net/tracker/index.php?func=detail&group_id=13478&atid=313478&aid=1701960
I'd recommend backing out my previous patch and applying the above
one instead.
I'm cc:ing the Flac-dev mail list again, just so this is tracked.
Brian
> --- Brian Cameron <Brian.Cameron at sun.com> wrote:
>
>> The attached patch is needed to make flac build on Solaris. Can
>> some/all of these changes go upstream?
>>
>> Brian
>>> --- flac-1.1.3/src/plugin_common/tags.c.orig 2006-11-30
>> 15:58:34.067469000 +0000
>> +++ flac-1.1.3/src/plugin_common/tags.c 2006-11-30 16:00:10.958487000
>> +0000
>> @@ -29,7 +29,7 @@
>> #include "FLAC/metadata.h"
>>
>>
>> -static __inline unsigned local__wide_strlen(const FLAC__uint16 *s)
>> +static inline unsigned local__wide_strlen(const FLAC__uint16 *s)
>> {
>> unsigned n = 0;
>> while(*s++)
>> @@ -43,7 +43,7 @@
>> * and a more clear explanation at the end of this section:
>> * http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
>> */
>> -static __inline unsigned local__utf8len(const FLAC__byte *utf8)
>> +static inline unsigned local__utf8len(const FLAC__byte *utf8)
>> {
>> FLAC__ASSERT(0 != utf8);
>> if ((utf8[0] & 0x80) == 0) {
>> @@ -85,7 +85,7 @@
>> }
>>
>>
>> -static __inline unsigned local__utf8_to_ucs2(const FLAC__byte *utf8,
>> FLAC__uint16 *ucs2)
>> +static inline unsigned local__utf8_to_ucs2(const FLAC__byte *utf8,
>> FLAC__uint16 *ucs2)
>> {
>> const unsigned len = local__utf8len(utf8);
>>
>> @@ -140,7 +140,7 @@
>> return out;
>> }
>>
>> -static __inline unsigned local__ucs2len(FLAC__uint16 ucs2)
>> +static inline unsigned local__ucs2len(FLAC__uint16 ucs2)
>> {
>> if (ucs2 < 0x0080)
>> return 1;
>> @@ -150,7 +150,7 @@
>> return 3;
>> }
>>
>> -static __inline unsigned local__ucs2_to_utf8(FLAC__uint16 ucs2,
>> FLAC__byte *utf8)
>> +static inline unsigned local__ucs2_to_utf8(FLAC__uint16 ucs2,
>> FLAC__byte *utf8)
>> {
>> if (ucs2 < 0x080) {
>> utf8[0] = (FLAC__byte)ucs2;
>> +++ flac-1.1.3/src/share/replaygain_analysis/replaygain_analysis.c
>> 2006-11-30 16:05:05.804777000 +0000
>> @@ -122,7 +122,14 @@
>> * sampleWindow calculation in ResetSampleFrequency(), and was
>> causing
>> * buffer overflows for 48kHz analysis, hence the +1.
>> */
>> +#ifndef __sun
>> #define MAX_SAMPLES_PER_WINDOW (size_t) (MAX_SAMP_FREQ *
>> RMS_WINDOW_TIME + 1.) /* max. Samples per Time slice */
>> +#else
>> + /* Different #define for Solaris Forte compiler because it
>> + doesn't like to multiply floats when declaring a variable. */
>> +#define MAX_SAMPLES_PER_WINDOW (size_t) (2401)
>> +#define UINT32_T_FORTE 12000.0 /* Used in Unit32_t code below. */
>> +#endif
>> #define PINK_REF 64.82 /* 298640883795 */
>> /* calibration value */
>>
>> static Float_t linprebuf [MAX_ORDER * 2];
>> @@ -142,8 +149,13 @@
>> static double lsum;
>> static double rsum;
>> static int freqindex;
>> +#ifndef __sun
>> static Uint32_t A [(size_t)(STEPS_per_dB * MAX_dB)];
>> static Uint32_t B [(size_t)(STEPS_per_dB * MAX_dB)];
>> +#else
>> +static Uint32_t A [(size_t)(UINT32_T_FORTE)];
>> +static Uint32_t B [(size_t)(UINT32_T_FORTE)];
>> +#endif
>>
>> /* for each filter:
>> [0] 48 kHz, [1] 44.1 kHz, [2] 32 kHz, [3] 24 kHz, [4] 22050 Hz,
>> [5] 16 kHz, [6] 12 kHz, [7] is 11025 Hz, [8] 8 kHz */
>> --- flac-1.1.3/src/libFLAC/format.c.orig 2006-12-02
>> 19:57:22.519801600 +0000
>> +++ flac-1.1.3/src/libFLAC/format.c 2006-12-02 19:57:40.139113400
>> +0000
>> @@ -294,7 +294,7 @@
>> * and a more clear explanation at the end of this section:
>> * http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
>> */
>> -static __inline unsigned utf8len_(const FLAC__byte *utf8)
>> +static inline unsigned utf8len_(const FLAC__byte *utf8)
>> {
>> FLAC__ASSERT(0 != utf8);
>> if ((utf8[0] & 0x80) == 0) {
>>> _______________________________________________
>> Flac-dev mailing list
>> Flac-dev at xiph.org
>> http://lists.xiph.org/mailman/listinfo/flac-dev
>>
>
>
>
> ____________________________________________________________________________________
> Shape Yahoo! in your own image. Join our Network Research Panel today! http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7
>
>
More information about the Flac-dev
mailing list