Fix GCC 4.7 errors

GCC 4.7.2 fail overriding constructors defined with virtual and default.
Debian build also fails linking  without -lrt.
INT64_C is not defined on Debian with 4.7.2. "ll" should be enough.

Change-Id: Ia779f094ed64fc3b1941429485e81520d017c2f5
Reviewed-on: https://weave-review.googlesource.com/1671
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/include/weave/command.h b/include/weave/command.h
index 08ea782..0a7d545 100644
--- a/include/weave/command.h
+++ b/include/weave/command.h
@@ -79,7 +79,7 @@
   virtual bool Cancel(ErrorPtr* error) = 0;
 
  protected:
-  virtual ~Command() = default;
+  virtual ~Command() {}
 };
 
 }  // namespace weave
diff --git a/include/weave/device.h b/include/weave/device.h
index cbcc193..5e86dfd 100644
--- a/include/weave/device.h
+++ b/include/weave/device.h
@@ -32,7 +32,7 @@
 
 class Device {
  public:
-  virtual ~Device() = default;
+  virtual ~Device() {}
 
   // Returns reference the current settings.
   virtual const Settings& GetSettings() const = 0;
diff --git a/include/weave/provider/bluetooth.h b/include/weave/provider/bluetooth.h
index e8f3b3c..6a47e92 100644
--- a/include/weave/provider/bluetooth.h
+++ b/include/weave/provider/bluetooth.h
@@ -14,7 +14,7 @@
   // TODO(rginda): Add bluetooth interface methods here.
 
  protected:
-  virtual ~Bluetooth() = default;
+  virtual ~Bluetooth() {}
 };
 
 }  // namespace provider
diff --git a/include/weave/provider/config_store.h b/include/weave/provider/config_store.h
index 53c1128..1b7988f 100644
--- a/include/weave/provider/config_store.h
+++ b/include/weave/provider/config_store.h
@@ -75,7 +75,7 @@
   virtual void SaveSettings(const std::string& settings) = 0;
 
  protected:
-  virtual ~ConfigStore() = default;
+  virtual ~ConfigStore() {}
 };
 
 }  // namespace provider
diff --git a/include/weave/provider/dns_service_discovery.h b/include/weave/provider/dns_service_discovery.h
index fa9d50e..37bf84b 100644
--- a/include/weave/provider/dns_service_discovery.h
+++ b/include/weave/provider/dns_service_discovery.h
@@ -91,7 +91,7 @@
   virtual void StopPublishing(const std::string& service_type) = 0;
 
  protected:
-  virtual ~DnsServiceDiscovery() = default;
+  virtual ~DnsServiceDiscovery() {}
 };
 
 }  // namespace provider
diff --git a/include/weave/provider/http_client.h b/include/weave/provider/http_client.h
index deb127a..bf01022 100644
--- a/include/weave/provider/http_client.h
+++ b/include/weave/provider/http_client.h
@@ -78,7 +78,7 @@
     virtual std::string GetContentType() const = 0;
     virtual std::string GetData() const = 0;
 
-    virtual ~Response() = default;
+    virtual ~Response() {}
   };
 
   using Headers = std::vector<std::pair<std::string, std::string>>;
@@ -92,7 +92,7 @@
                            const SendRequestCallback& callback) = 0;
 
  protected:
-  virtual ~HttpClient() = default;
+  virtual ~HttpClient() {}
 };
 
 }  // namespace provider
diff --git a/include/weave/provider/http_server.h b/include/weave/provider/http_server.h
index 622785b..1c28d63 100644
--- a/include/weave/provider/http_server.h
+++ b/include/weave/provider/http_server.h
@@ -109,7 +109,7 @@
  public:
   class Request {
    public:
-    virtual ~Request() = default;
+    virtual ~Request() {}
 
     virtual std::string GetPath() const = 0;
     virtual std::string GetFirstHeader(const std::string& name) const = 0;
@@ -141,7 +141,7 @@
   virtual base::TimeDelta GetRequestTimeout() const = 0;
 
  protected:
-  virtual ~HttpServer() = default;
+  virtual ~HttpServer() {}
 };
 
 }  // namespace provider
diff --git a/include/weave/provider/network.h b/include/weave/provider/network.h
index 651155a..0fb147d 100644
--- a/include/weave/provider/network.h
+++ b/include/weave/provider/network.h
@@ -47,7 +47,7 @@
                              const OpenSslSocketCallback& callback) = 0;
 
  protected:
-  virtual ~Network() = default;
+  virtual ~Network() {}
 };
 
 }  // namespace provider
diff --git a/include/weave/provider/task_runner.h b/include/weave/provider/task_runner.h
index 0804a10..095910b 100644
--- a/include/weave/provider/task_runner.h
+++ b/include/weave/provider/task_runner.h
@@ -28,7 +28,7 @@
                                base::TimeDelta delay) = 0;
 
  protected:
-  virtual ~TaskRunner() = default;
+  virtual ~TaskRunner() {}
 };
 
 }  // namespace provider
diff --git a/include/weave/provider/wifi.h b/include/weave/provider/wifi.h
index 111bf3c..48ac651 100644
--- a/include/weave/provider/wifi.h
+++ b/include/weave/provider/wifi.h
@@ -29,7 +29,7 @@
   virtual void StopAccessPoint() = 0;
 
  protected:
-  virtual ~Wifi() = default;
+  virtual ~Wifi() {}
 };
 
 }  // namespace provider
diff --git a/include/weave/stream.h b/include/weave/stream.h
index 19d38a0..14cc7f0 100644
--- a/include/weave/stream.h
+++ b/include/weave/stream.h
@@ -15,7 +15,7 @@
 // Interface for async input streaming.
 class InputStream {
  public:
-  virtual ~InputStream() = default;
+  virtual ~InputStream() {}
 
   // Callback type for Read.
   using ReadCallback = base::Callback<void(size_t size, ErrorPtr error)>;
@@ -31,7 +31,7 @@
 // Interface for async input streaming.
 class OutputStream {
  public:
-  virtual ~OutputStream() = default;
+  virtual ~OutputStream() {}
 
   using WriteCallback = base::Callback<void(ErrorPtr error)>;
 
@@ -47,7 +47,7 @@
 // Interface for async bi-directional streaming.
 class Stream : public InputStream, public OutputStream {
  public:
-  ~Stream() override = default;
+  ~Stream() override {}
 
   // Cancels all pending read or write requests. Canceled operations must not
   // call any callbacks.
diff --git a/libweave_standalone.gyp b/libweave_standalone.gyp
index d6418db..d36d208 100644
--- a/libweave_standalone.gyp
+++ b/libweave_standalone.gyp
@@ -12,6 +12,7 @@
       '-lgmock',
       '-lgtest',
       '-lpthread',
+      '-lrt',
     ],
   },
   'targets': [
diff --git a/src/backoff_entry.h b/src/backoff_entry.h
index 2df0d8a..002fb8d 100644
--- a/src/backoff_entry.h
+++ b/src/backoff_entry.h
@@ -57,7 +57,7 @@
   // Lifetime of policy must enclose lifetime of BackoffEntry. The
   // pointer must be valid but is not dereferenced during construction.
   explicit BackoffEntry(const Policy* const policy);
-  virtual ~BackoffEntry() = default;
+  virtual ~BackoffEntry() {}
 
   // Inform this item that a request for the network resource it is
   // tracking was made, and whether it failed or succeeded.
diff --git a/src/commands/cloud_command_update_interface.h b/src/commands/cloud_command_update_interface.h
index 9538960..ed3aa7a 100644
--- a/src/commands/cloud_command_update_interface.h
+++ b/src/commands/cloud_command_update_interface.h
@@ -21,7 +21,7 @@
                              const DoneCallback& callback) = 0;
 
  protected:
-  virtual ~CloudCommandUpdateInterface() = default;
+  virtual ~CloudCommandUpdateInterface() {}
 };
 
 }  // namespace weave
diff --git a/src/commands/command_instance.h b/src/commands/command_instance.h
index 60620a1..32a93a9 100644
--- a/src/commands/command_instance.h
+++ b/src/commands/command_instance.h
@@ -37,7 +37,7 @@
     virtual void OnStateChanged() = 0;
 
    protected:
-    virtual ~Observer() = default;
+    virtual ~Observer() {}
   };
 
   // Construct a command instance given the full command |name| which must
diff --git a/src/notification/notification_channel.h b/src/notification/notification_channel.h
index 5fb7993..ef152a8 100644
--- a/src/notification/notification_channel.h
+++ b/src/notification/notification_channel.h
@@ -17,7 +17,7 @@
 
 class NotificationChannel {
  public:
-  virtual ~NotificationChannel() = default;
+  virtual ~NotificationChannel() {}
 
   virtual std::string GetName() const = 0;
   virtual bool IsConnected() const = 0;
diff --git a/src/notification/notification_delegate.h b/src/notification/notification_delegate.h
index 719d76d..263c2f3 100644
--- a/src/notification/notification_delegate.h
+++ b/src/notification/notification_delegate.h
@@ -24,7 +24,7 @@
   virtual void OnDeviceDeleted(const std::string& cloud_id) = 0;
 
  protected:
-  virtual ~NotificationDelegate() = default;
+  virtual ~NotificationDelegate() {}
 };
 
 }  // namespace weave
diff --git a/src/notification/xmpp_channel.h b/src/notification/xmpp_channel.h
index e6185d9..50e84d2 100644
--- a/src/notification/xmpp_channel.h
+++ b/src/notification/xmpp_channel.h
@@ -33,7 +33,7 @@
   virtual void SendMessage(const std::string& message) = 0;
 
  protected:
-  virtual ~XmppChannelInterface() = default;
+  virtual ~XmppChannelInterface() {}
 };
 
 class XmppChannel : public NotificationChannel,
diff --git a/src/notification/xmpp_stream_parser.h b/src/notification/xmpp_stream_parser.h
index 41faaff..b8f5723 100644
--- a/src/notification/xmpp_stream_parser.h
+++ b/src/notification/xmpp_stream_parser.h
@@ -49,7 +49,7 @@
     virtual void OnStanza(std::unique_ptr<XmlNode> stanza) = 0;
 
    protected:
-    virtual ~Delegate() = default;
+    virtual ~Delegate() {}
   };
 
   explicit XmppStreamParser(Delegate* delegate);
diff --git a/src/privet/cloud_delegate.h b/src/privet/cloud_delegate.h
index 8763fbe..6396519 100644
--- a/src/privet/cloud_delegate.h
+++ b/src/privet/cloud_delegate.h
@@ -45,7 +45,7 @@
 
   class Observer {
    public:
-    virtual ~Observer() = default;
+    virtual ~Observer() {}
 
     virtual void OnDeviceInfoChanged() {}
     virtual void OnCommandDefsChanged() {}
diff --git a/src/privet/security_delegate.h b/src/privet/security_delegate.h
index 1d28ba3..40f297f 100644
--- a/src/privet/security_delegate.h
+++ b/src/privet/security_delegate.h
@@ -19,7 +19,7 @@
 // Interface to provide Security related logic for |PrivetHandler|.
 class SecurityDelegate {
  public:
-  virtual ~SecurityDelegate() = default;
+  virtual ~SecurityDelegate() {}
 
   // Creates access token for the given scope, user id and |time|.
   virtual std::string CreateAccessToken(const UserInfo& user_info,
diff --git a/src/privet/security_manager.h b/src/privet/security_manager.h
index c99201b..bb513e6 100644
--- a/src/privet/security_manager.h
+++ b/src/privet/security_manager.h
@@ -41,7 +41,7 @@
 
   class KeyExchanger {
    public:
-    virtual ~KeyExchanger() = default;
+    virtual ~KeyExchanger() {}
 
     virtual const std::string& GetMessage() = 0;
     virtual bool ProcessMessage(const std::string& message,
diff --git a/src/privet/wifi_delegate.h b/src/privet/wifi_delegate.h
index ae5e520..9bd5157 100644
--- a/src/privet/wifi_delegate.h
+++ b/src/privet/wifi_delegate.h
@@ -18,7 +18,7 @@
 class WifiDelegate {
  public:
   WifiDelegate() = default;
-  virtual ~WifiDelegate() = default;
+  virtual ~WifiDelegate() {}
 
   // Returns status of the WiFi connection.
   virtual const ConnectionState& GetConnectionState() const = 0;
diff --git a/third_party/chromium/base/time/time_posix.cc b/third_party/chromium/base/time/time_posix.cc
index b625af6..2825ce5 100644
--- a/third_party/chromium/base/time/time_posix.cc
+++ b/third_party/chromium/base/time/time_posix.cc
@@ -117,7 +117,7 @@
 //   => Thu Jan 01 00:00:00 UTC 1970
 //   irb(main):011:0> Time.at(-11644473600).getutc()
 //   => Mon Jan 01 00:00:00 UTC 1601
-static const int64 kWindowsEpochDeltaSeconds = INT64_C(11644473600);
+static const int64 kWindowsEpochDeltaSeconds = 11644473600ll;
 
 // static
 const int64 Time::kWindowsEpochDeltaMicroseconds =
diff --git a/third_party/chromium/base/time/time_unittest.cc b/third_party/chromium/base/time/time_unittest.cc
index 43373e7..508244a 100644
--- a/third_party/chromium/base/time/time_unittest.cc
+++ b/third_party/chromium/base/time/time_unittest.cc
@@ -584,7 +584,7 @@
   exploded.millisecond = 0;
   Time t = Time::FromUTCExploded(exploded);
   // Unix 1970 epoch.
-  EXPECT_EQ(INT64_C(11644473600000000), t.ToInternalValue());
+  EXPECT_EQ(11644473600000000ll, t.ToInternalValue());
 
   // We can't test 1601 epoch, since the system time functions on Linux
   // only compute years starting from 1900.