Beim avr-gcc musst du auch bloß die Fuses setzen, die du haben willst (also alle die auf 0 gesetzt werden sollen. Wenn man Makros verwendet werden diese intern invertiert. Steht alles in den .h Dateien.

Meine Headerdatei für den VS Test ist zum Beispiel
Code:
#ifndef _AST_FUSE_SET_ATMEGA8_H_
#define _AST_FUSE_SET_ATMEGA8_H_

#include <avr/io.h>

FUSES = 
{
	.low = (FUSE_SUT0 & FUSE_CKSEL3 & FUSE_CKSEL1 & FUSE_CKSEL0),// & FUSE_BODLEVEL & FUSE_BODEN),
	.high = HFUSE_DEFAULT, //(FUSE_SPIEN & FUSE_BOOTSZ1 & FUSE_BOOTSZ0)
};
// high=0xD9 low=0x24
//zum Fusebits ermitteln
//http://palmavr.sourceforge.net/cgi-bin/fc.cgi
    
/*
Fuses

#define FUSE_MEMORY_SIZE 2

Low Fuse Byte
#define FUSE_CKSEL0      ~_BV(0)
#define FUSE_CKSEL1      ~_BV(1)
#define FUSE_CKSEL2      ~_BV(2)
#define FUSE_CKSEL3      ~_BV(3)
#define FUSE_SUT0        ~_BV(4)
#define FUSE_SUT1        ~_BV(5)
#define FUSE_BODEN       ~_BV(6)
#define FUSE_BODLEVEL    ~_BV(7)
#define LFUSE_DEFAULT (FUSE_SUT0 & FUSE_CKSEL3 & FUSE_CKSEL2 & FUSE_CKSEL1)

High Fuse Byte
#define FUSE_BOOTRST     ~_BV(0)
#define FUSE_BOOTSZ0     ~_BV(1)
#define FUSE_BOOTSZ1     ~_BV(2)
#define FUSE_EESAVE      ~_BV(3)
#define FUSE_CKOPT       ~_BV(4)
#define FUSE_SPIEN       ~_BV(5)
#define FUSE_WDTON       ~_BV(6)
#define FUSE_RSTDISBL    ~_BV(7)
#define HFUSE_DEFAULT (FUSE_SPIEN & FUSE_BOOTSZ1 & FUSE_BOOTSZ0)

Lock Bits
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
*/

#endif // _AST_FUSE_SET_ATMEGA8_H_
Die defines sind aus der iom8.h. Muss man sich eben für jeden Typ extra raussuchen.

sast