ATtiny85v Error Compiling

I am getting an error compiling when attempting to use both SoftwareSerial and OneWire/DallasTemperature. It literally just says “Error Compiling”. If I comment out either all uses of SoftwareSerial, or all uses of OneWire or DallasTemperature, it compiles and gives me a size roughly over 3k. I am attempting to compile this for an ATtiny85. Compiles fine for the Arduino (although you would need to change WDTCR to WDTCSR). Also, some code may seem “extra” because I am in the middle of troubleshooting. Any ideas what the problem is? Thank you!

Here are the error details:

c:/users/administrator.optimus/desktop/arduino-1.0.4/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25/crttn85.o: In function `__vector_default':
(.vectors+0xa): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_5' defined in .text.__vector_5 section in core.a(wiring.c.o)
c:/users/administrator.optimus/desktop/arduino-1.0.4/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25/crttn85.o:(.init9+0x0): relocation truncated to fit: R_AVR_13_PCREL against symbol `main' defined in .text.main section in core.a(main.cpp.o)
c:/users/administrator.optimus/desktop/arduino-1.0.4/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25/crttn85.o:(.init9+0x2): relocation truncated to fit: R_AVR_13_PCREL against symbol `exit' defined in .fini9 section in c:/users/administrator.optimus/desktop/arduino-1.0.4/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/avr25\libgcc.a(_exit.o)
OneWire\OneWire.cpp.o: In function `OneWire::read_bit()':
C:\Users\Administrator.OPTIMUS\Desktop\arduino-1.0.4\libraries\OneWire/OneWire.cpp:208: relocation truncated to fit: R_AVR_13_PCREL against symbol `delayMicroseconds' defined in .text.delayMicroseconds section in core.a(wiring.c.o)
C:\Users\Administrator.OPTIMUS\Desktop\arduino-1.0.4\libraries\OneWire/OneWire.cpp:210: relocation truncated to fit: R_AVR_13_PCREL against symbol `delayMicroseconds' defined in .text.delayMicroseconds section in core.a(wiring.c.o)
C:\Users\Administrator.OPTIMUS\Desktop\arduino-1.0.4\libraries\OneWire/OneWire.cpp:213: relocation truncated to fit: R_AVR_13_PCREL against symbol `delayMicroseconds' defined in .text.delayMicroseconds section in core.a(wiring.c.o)
OneWire\OneWire.cpp.o: In function `OneWire::write_bit(unsigned char)':
C:\Users\Administrator.OPTIMUS\Desktop\arduino-1.0.4\libraries\OneWire/OneWire.cpp:180: relocation truncated to fit: R_AVR_13_PCREL against symbol `delayMicroseconds' defined in .text.delayMicroseconds section in core.a(wiring.c.o)
ATtiny_DigitalTemperature_Test_8MHz.cpp.o: In function `__static_initialization_and_destruction_0':
C:\Users\Administrator.OPTIMUS\Desktop\arduino-1.0.4/ATtiny_DigitalTemperature_Test_8MHz.ino:9: relocation truncated to fit: R_AVR_13_PCREL against symbol `SoftwareSerial::SoftwareSerial(unsigned char, unsigned char, bool)' defined in .text._ZN14SoftwareSerialC1Ehhb section in SoftwareSerial\SoftwareSerial.cpp.o
ATtiny_DigitalTemperature_Test_8MHz.cpp.o: In function `SleepyTime(int)':
C:\Users\Administrator.OPTIMUS\Desktop\arduino-1.0.4/ATtiny_DigitalTemperature_Test_8MHz.ino:69: relocation truncated to fit: R_AVR_13_PCREL against symbol `Print::println(char const*)' defined in .text._ZN5Print7printlnEPKc section in core.a(Print.cpp.o)
ATtiny_DigitalTemperature_Test_8MHz.cpp.o: In function `loop':
C:\Users\Administrator.OPTIMUS\Desktop\arduino-1.0.4/ATtiny_DigitalTemperature_Test_8MHz.ino:48: relocation truncated to fit: R_AVR_13_PCREL against symbol `Print::print(char const*)' defined in .text._ZN5Print5printEPKc section in core.a(Print.cpp.o)
C:\Users\Administrator.OPTIMUS\Desktop\arduino-1.0.4/ATtiny_DigitalTemperature_Test_8MHz.ino:49: additional relocation overflows omitted from the output

Here is my code:

#include <OneWire.h>
#include <DallasTemperature.h>
#include <avr/power.h>
#include <avr/sleep.h>
#include <avr/wdt.h>
#include <SoftwareSerial.h>


SoftwareSerial mySerial(5, 1); // RX, TX  // Create the serial connection
// TX on ATtiny85v's Pin 1 (MISO) and RX is set to 5, which is nothing and not needed

// Data wire of the DS18B20 is plugged into pin 4
#define ONE_WIRE_BUS 4

// Setup a oneWire instance to communicate with the Dallas 18B20
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature
DallasTemperature sensors(&oneWire);

ISR (WDT_vect) // watchdog interrupt
{
  wdt_disable();  // disable watchdog
}

void setup() {

  ADCSRA = 0;  // Disables ADC
  power_all_disable();  // Disable all timers and ADC to reduce power consumption
  //power_adc_disable();
  //power_timer0_disable();  // Timer 0 is needed for delay() commands
  //power_timer1_disable();
  //power_usi_disable();

  for (int i=0; i<=4; i++) {  // Set all pins #0 - 4 to OUTPUT and LOW to save power
    pinMode(i, OUTPUT);
    digitalWrite(i, LOW);
  }

  mySerial.begin(9600);  // Begin serial connection for troubleshooting

  sensors.begin();  // Start up the sensor
}

void loop() {

  sensors.requestTemperatures(); // Send the command to get temperatures
  mySerial.print("Temperature is: ");
  mySerial.println((sensors.getTempCByIndex(0) * 9)/5 + 32); // 0 refers to the first IC on the wire

  SleepyTime(8);  // Power down sleep mode for 8 seconds
}

void SleepyTime(int TimeToSleep) {  // This will power down the MCU for 8 seconds

  MCUSR = 0;     // clear various "reset" flags
  WDTCR = _BV (WDCE) | _BV (WDE);  // allow changes, disable reset
  switch (TimeToSleep) {
  case 25:
    WDTCR = _BV (WDIE) | _BV (WDP2);    // set WDIE, and 0.25 seconds delay
    mySerial.println("Using 0.25 Sleep Time");
    break;
  case 4:
    WDTCR = _BV (WDIE) | _BV (WDP3);    // set WDIE, and 4 seconds delay
    mySerial.println("Using 4 Sleep Time");
    break;
  case 8:
    WDTCR = _BV (WDIE) | _BV (WDP3) | _BV (WDP0);    // set WDIE, and 8 seconds delay
    mySerial.println("Using 8 Sleep Time");
    break;
  }
  wdt_reset();  // pat the dog
  set_sleep_mode (SLEEP_MODE_PWR_DOWN);  // Configure sleep to full power down mode
  sleep_enable();  // Enable sleep feature
  sleep_cpu ();  // Actually go to sleep and wait for watchdog timer to end
  sleep_disable();    // Cancel sleep as a precaution
}

Linker bug... http://code.google.com/p/arduino-tiny/issues/detail?id=58&can=1&q=R_AVR_13_PCREL http://arduino.cc/forum/index.php/topic,116674.0.html

Edit: Added the second link / solution.

Thanks. Using the ERW instead, and working fine.