diff --git a/config/common.nix b/config/common.nix
index cd510f933441d02774b8fb8ac4f6a528f54f78f0..dfee2efba77f7ffb611bd013b48d04248ce57224 100644
--- a/config/common.nix
+++ b/config/common.nix
@@ -1278,6 +1278,20 @@
                     };
                   };
                 };
+                gcc = lib.mkOption {
+                  type = lib.types.submodule {
+                    options = {
+                      enabled = lib.mkOption {
+                        type = lib.types.bool;
+                        default = false;
+                        example = true;
+                        description = ''
+                          Whether or not gcc has been installed.
+                        '';
+                      };
+                    };
+                  };
+                };
                 nodejs = lib.mkOption {
                   type = lib.types.submodule {
                     options = {
diff --git a/pkgs/dev/default.nix b/pkgs/dev/default.nix
index a42440680ea7247a0cb266b88801e30bc0e3caef..4747e3c3fb056bdd991bd32912c6450641f1cb4d 100644
--- a/pkgs/dev/default.nix
+++ b/pkgs/dev/default.nix
@@ -11,5 +11,6 @@
     ./java
     ./glab
     ./lab
+    ./gcc
   ];
 }
diff --git a/pkgs/dev/gcc/config.nix b/pkgs/dev/gcc/config.nix
new file mode 100644
index 0000000000000000000000000000000000000000..465d6d5d7056000922699710bf1ab26e74649d21
--- /dev/null
+++ b/pkgs/dev/gcc/config.nix
@@ -0,0 +1,4 @@
+{ config, ... }:
+{
+  config.provides.dev.gcc.enabled = true;
+}
diff --git a/pkgs/dev/gcc/default.nix b/pkgs/dev/gcc/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c843d57c0e345b35122411fa77a34ca8bdc20a63
--- /dev/null
+++ b/pkgs/dev/gcc/default.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }:
+{
+  imports = [
+    ../common.nix
+    ./config.nix
+  ];
+
+  environment.systemPackages = with pkgs; [
+    gcc
+  ];
+}