Re: [ecasound] largefile update

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [ecasound] largefile update
From: Kai Vehmanen (k_AT_eca.cx)
Date: Tue Dec 04 2001 - 02:19:24 EET


On Mon, 3 Dec 2001, The Eye wrote:

> just tried this and it gives me the exact same error than when running
> with largefile support .. i.e.:
> eye_AT_lormoral:~/ecasound-cvs/libecasound > c++ -DHAVE_CONFIG_H -I. -I. -I.. -I. -I.. -I../kvutils -O2 -D_REENTRANT -DNDEBUG -ffast-math -fstrict-aliasing -funroll-loops -DENABLE_DBC -Wp,-MD,.deps/audioio-cdr.pp -c -fPIC -DPIC audioio-cdr.cpp -o .libs/audioio-cdr.lo
> audioio-cdr.cpp: In method `void CDRFILE::seek_position()':
> audioio-cdr.cpp:125: conversion from `long long int' to non-scalar type `_G_fpos_t' requested

Hmm, this doesn't look good. The line in question is...:

    fpos_t newpos = position_in_samples() * frame_size();

... here position_in_sample() is a 'long long int' (and thus also the
whole expression 'position_in_samples() * frame_size()' is a long long
int). The above errors tells that 'f_pos_t' is defined to be '_G_fpos_t',
which again is not defined to any real scalar type.

What does "grep _G_fpos_t /usr/include/*.h" show on your machine? With
glibc2.1.3 I get:

--cut--
###| ~ |$ grep _G_fpos_t /usr/include/*.h
/usr/include/_G_config.h:#define _G_fpos_t __off_t
/usr/include/libio.h:#define _IO_pos_t _G_fpos_t /* obsolete */
/usr/include/libio.h:#define _IO_fpos_t _G_fpos_t
/usr/include/stdio.h:typedef _G_fpos_t fpos_t;
--cut--

... this means that '_G_fpos_t' is actually an '__off_t', which again is
defined in...:

--cut--
###| ~/ecasound/sound/ecasound/libecasound |$ grep __off_t
/usr/include/bits/types.h
typedef long int __off_t; /* Type of file sizes and offsets. */
--cut--

So to the compiler, line 125 of audioio-cdr.cpp looks like:

long int newpos = position_in_samples() * frame_size();

... with 'configure --with-largefile', then: fpos_t -> _G_fpos64_t ->
__off64_t --> __loff_t -> __quad_t -> long long int ... ie. the right
result.

-- 
 http://www.eca.cx
 Audio software for Linux!

-- To unsubscribe send message 'unsubscribe' in the body of the message to <ecasound-list-request_AT_wakkanet.fi>.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Tue Dec 04 2001 - 02:13:25 EET