diff --git a/av1/encoder/global_motion.c b/av1/encoder/global_motion.c
index 80cf685..2a62049 100644
--- a/av1/encoder/global_motion.c
+++ b/av1/encoder/global_motion.c
@@ -40,7 +40,7 @@
          best_erroradvantage * params_cost < ERRORADV_COST_PRODUCT_THRESH;
 }
 
-void convert_to_params(const double *params, int32_t *model) {
+static void convert_to_params(const double *params, int32_t *model) {
   int i;
   int alpha_present = 0;
   model[0] = (int32_t)floor(params[0] * (1 << GM_TRANS_PREC_BITS) + 0.5);
@@ -81,7 +81,8 @@
 // Adds some offset to a global motion parameter and handles
 // all of the necessary precision shifts, clamping, and
 // zero-centering.
-int32_t add_param_offset(int param_index, int32_t param_value, int32_t offset) {
+static int32_t add_param_offset(int param_index, int32_t param_value,
+                                int32_t offset) {
   const int scale_vals[3] = { GM_TRANS_PREC_DIFF, GM_ALPHA_PREC_DIFF,
                               GM_ROW3HOMO_PREC_DIFF };
   const int clamp_vals[3] = { GM_TRANS_MAX, GM_ALPHA_MAX, GM_ROW3HOMO_MAX };
@@ -107,7 +108,7 @@
   return param_value + (is_one_centered << WARPEDMODEL_PREC_BITS);
 }
 
-void force_wmtype(WarpedMotionParams *wm, TransformationType wmtype) {
+static void force_wmtype(WarpedMotionParams *wm, TransformationType wmtype) {
   switch (wmtype) {
     case IDENTITY: wm->wmmat[0] = 0; wm->wmmat[1] = 0;
     case TRANSLATION:
@@ -237,7 +238,8 @@
 }
 
 #if CONFIG_HIGHBITDEPTH
-unsigned char *downconvert_frame(YV12_BUFFER_CONFIG *frm, int bit_depth) {
+static unsigned char *downconvert_frame(YV12_BUFFER_CONFIG *frm,
+                                        int bit_depth) {
   int i, j;
   uint16_t *orig_buf = CONVERT_TO_SHORTPTR(frm->y_buffer);
   uint8_t *buf = malloc(frm->y_height * frm->y_stride * sizeof(*buf));
diff --git a/av1/encoder/global_motion.h b/av1/encoder/global_motion.h
index c1d7061..e6a1dc4 100644
--- a/av1/encoder/global_motion.h
+++ b/av1/encoder/global_motion.h
@@ -26,13 +26,6 @@
 
 int is_enough_erroradvantage(double erroradv, int params_cost);
 
-// Adds some offset to a global motion parameter and handles
-// all of the necessary precision shifts, clamping, and
-// zero-centering.
-int32_t add_param_offset(int param_index, int32_t param_value, int32_t offset);
-
-void force_wmtype(WarpedMotionParams *wm, TransformationType wmtype);
-
 double refine_integerized_param(WarpedMotionParams *wm,
                                 TransformationType wmtype,
 #if CONFIG_HIGHBITDEPTH
