fx2lafw, sysclk-lwla: Avoid g_stat()
It turns out that g_stat() breaks apart when using 64 bit stat on 32-bit systems. Since the actual type of GStatBuf is decided when glib/gstdio.h is included, it is thus possible for GLib itself to be compiled with a different type than user code. Ouch. Unfortunately going back to plain stat() also means that we lose Unicode filename support on Windows.
This commit is contained in:
parent
eb2373f167
commit
2a09aac268
|
@ -39,7 +39,7 @@ int dslogic_fpga_firmware_upload(const struct sr_dev_inst *sdi,
|
|||
const char *filename)
|
||||
{
|
||||
FILE *fw;
|
||||
GStatBuf st;
|
||||
struct stat st;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
int chunksize, result, ret;
|
||||
unsigned char *buf;
|
||||
|
@ -49,7 +49,7 @@ int dslogic_fpga_firmware_upload(const struct sr_dev_inst *sdi,
|
|||
sr_dbg("Uploading FPGA firmware at %s.", filename);
|
||||
|
||||
usb = sdi->conn;
|
||||
if (g_stat(filename, &st) < 0) {
|
||||
if (stat(filename, &st) < 0) {
|
||||
sr_err("Unable to upload FPGA firmware: %s", g_strerror(errno));
|
||||
return SR_ERR;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
#include <config.h>
|
||||
#include <errno.h>
|
||||
#include <sys/stat.h>
|
||||
#include <glib/gstdio.h>
|
||||
#include <libsigrok/libsigrok.h>
|
||||
#include "libsigrok-internal.h"
|
||||
|
@ -33,13 +34,13 @@
|
|||
*/
|
||||
static unsigned char *load_bitstream_file(const char *filename, int *length_p)
|
||||
{
|
||||
GStatBuf statbuf;
|
||||
struct stat statbuf;
|
||||
FILE *file;
|
||||
unsigned char *stream;
|
||||
size_t length, count;
|
||||
|
||||
/* Retrieve and validate the file size. */
|
||||
if (g_stat(filename, &statbuf) < 0) {
|
||||
if (stat(filename, &statbuf) < 0) {
|
||||
sr_err("Failed to access bitstream file: %s.",
|
||||
g_strerror(errno));
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in New Issue