$g \colon \mathbb{R} \to \mathbb{R}$ is a continuous function satisfying $g(0)=0$ and, for all $x \neq 0$, $g(x)g(-x)>0$. Solve for functions $f \colon \mathbb{R} \to \mathbb{R}$ satisfying $gf(x+y)=gf(x)+gf(y)$.
If $gf$ is continuous at any point, then I found that the only solution is $f \equiv 0$. But how can I solve for the case where $gf$ is not necessarily continuous (or in other words, where $f$ is not necessarily continuous?)
The only solution is in fact the one you've mentioned: $ f $ must be constantly equal to $ 0 $ and $ g $ can be any continuous function with $ g ( 0 ) = 0 $ such that $ g $ is either positive everywhere else or negative everywhere else.
To see this, note that since $ g $ is continuous, if there were $ x , y > 0 $ with $ g ( x ) g ( y ) < 0 $, then by intermediate value theorem there would be a $ z > 0 $ between them with $ g ( z ) = 0 $, which can't happen since $ g ( z ) g ( - z ) > 0 $. Thus $ g $ takes the same sign on the positive real numbers. Using $ g ( x ) g ( - x ) > 0 $, we find out that it takes the same sign on the negative reals, too. Now, this shows that $ g f $ is either bounded below or bounded above. It's well-known that additive functions with this property are exactly linear functions. Thus there is a constant real number $ c $ such that $ g f ( x ) = c x $. But if $ c \ne 0 $ then $ g $ can take different signs, which contradicts what we've shown. Therefore $ c $ must be equal to $ 0 $. As $ g ( x ) $ can only take the value $ 0 $ when $ x = 0 $, this shows that $ f $ is constantly equal to $ 0 $.